API 테스트 케이스 작성 자동화! Apidog AI 기능으로 개발 효율 3배 향상

배고픈코알라·2025년 10월 16일
post-thumbnail

새로운 API를 구현할 때마다 항상 같은 고민을 한다.

"정상 케이스는 작성했는데, 예외 케이스는? 경계값은?" "펫 ID가 비어있는 경우, 잘못된 형식인 경우, 존재하지 않는 ID인 경우... 패턴이 너무 많다"

펫 검색 API, 펫 등록 API, 재고 관리 API... 기능이 늘어날 때마다 테스트 케이스도 함께 증가한다. 솔직히 이 작업이 가장 번거롭다고 느꼈다.

그러던 중 Apidog에 AI 기능이 추가되었다는 소식을 접했다. "테스트 케이스를 자동으로 생성할 수 있다"고 한다. 지금까지 수동으로 작성하던 작업을 얼마나 효율화할 수 있을지 직접 테스트해보기로 했다.

결론부터 말하자면, 이건 쓸만하다. 완벽하지는 않지만 확실히 작업 시간이 줄어들었다.

수동으로 테스트 케이스를 작성하는 것이 왜 이렇게 힘든가

먼저 평소 느꼈던 문제점들을 정리해보자.

완전성 확보가 어렵다
정상 케이스는 작성할 수 있어도, 예외 케이스나 경계값을 모두 커버하려고 하면 누락이 발생한다. 특히 여러 파라미터가 얽혀있는 경우, 조합 패턴을 생각하는 것만으로도 지친다.

사양 변경 대응이 번거롭다
API 사양이 변경될 때마다 테스트 케이스도 전부 재검토해야 한다. 어디를 수정해야 하는지 찾는 것만으로도 시간이 소요된다.

팀 내 작성 방식이 제각각이다
A는 상세하게 작성하지만, B는 최소한만 작성한다. 리뷰할 때 "이 정도면 충분한가?"라고 고민하는 경우가 많다.

예외 케이스를 미루게 된다
정상 케이스를 작성하고 만족해버려서, 예외 케이스는 "나중에 작성하자"고 생각한 채 잊어버린다. 그리고 프로덕션에서 버그가 발견되는 악순환이 반복된다.

이런 문제들을 안고 매번 테스트 케이스를 작성해왔다.

Apidog의 AI 기능을 실제로 사용해보다

사용법은 놀라울 정도로 간단하다

Apidog의 AI 기능을 실제로 사용해보다

API 정의를 작성한 후 "test case" 탭을 연다. 화면 중앙에 "Generate with AI" 버튼이 있으니 클릭하기만 하면 된다.

다음 화면에서 생성하고 싶은 테스트 타입을 선택할 수 있다:

  • Positive (정상 케이스)
  • Negative (예외 케이스)
  • Boundary Values (경계값)
  • Security (보안)

처음에는 전부 선택해서 일괄 생성해봤다.

생성된 테스트 케이스의 내용

몇 초 기다리면 테스트 케이스가 쭉 표시된다.

이번에는 펫샵 데모 프로젝트에서 "펫 ID로 검색하는 API"를 예시로 테스트해봤다:

정상 케이스

  • 유효한 펫 ID로 검색 성공 (200 OK)
  • 존재하는 펫 ID로 펫 정보를 올바르게 조회
  • 응답에 필요한 필드(name, status, category)가 포함됨

예외 케이스

  • 펫 ID가 비어있는 경우, 400 에러
  • 잘못된 ID 형식(문자열 등)인 경우, 400 에러
  • 존재하지 않는 펫 ID인 경우, 404 에러
  • 삭제된 펫 ID인 경우, 410 에러

경계값

  • 펫 ID = 0 (최소값)
  • 펫 ID = 1 (최소값+1)
  • 펫 ID = 999999 (최대값)
  • 펫 ID = -1 (음수)

보안

  • SQL 인젝션 대응 (' OR '1'='1 등)
  • 권한 체크 (다른 사용자의 펫 정보 접근)

솔직히 "여기까지 생각해주다니"라고 놀랐다. 특히 경계값이나 보안 패턴은 수동으로 작성하면 누락하기 쉬운 부분이라 도움이 된다.

※스크린샷: 생성된 테스트 케이스 목록

채택·삭제 판단이 중요하다

생성된 테스트 케이스는 그대로 사용할 수 있는 것도 있고, 수정이 필요한 것도 있다.

각 테스트 케이스에는 "Accept" "Discard" 버튼이 있어서 내용을 확인하면서 선택할 수 있다.

참고로 생성 수는 자동 모드와 수동 모드가 있다:

  • 자동 생성: AI가 적절한 수를 판단 (이번에는 21개 생성됨)
  • 수동 설정: 최대 80개까지 생성 수 지정 가능

자동 생성을 선택했더니 21개의 테스트 케이스가 생성되었다. 내용을 확인하면서 선택했다:

  • 정상 케이스: 거의 그대로 채택
  • 예외 케이스: 비즈니스 로직에 맞춰 일부 수정
  • 경계값: API 사양에 맞춰 수치 조정
  • 보안: SQL 인젝션이나 XSS 케이스는 채택

최종적으로 생성된 21개 중 16개를 채택하고, 5개는 삭제 또는 수정했다.

중요한 것은 자신의 비즈니스 로직에 맞춰 선별하는 것이다. AI가 생성한 케이스를 그대로 사용하는 것이 아니라 필요한 것만 채택한다.

AI 기능을 사용하기 전에 알아야 할 것

API 키 설정이 필요하다

Apidog 자체는 AI 모델을 제공하지 않는다. OpenAI나 Claude 등의 API 키를 직접 설정해야 한다.

설정 방법:
1. Apidog 설정 화면 열기
2. "Enable AI Features" 버튼을 ON으로 전환
3. "Add Provider" 클릭
4. 원하는 LLM 모델(OpenAI, Claude, Gemini 등)을 선택하고 API 키 입력 API 키 설정이 필요하다

AI 기능은 초기 상태에서 꺼져 있다. 처음 사용하는 경우 설정 화면에서 활성화해야 한다.

나는 Claude Sonnet 4를 사용하고 있지만, GPT-4도 문제없이 작동한다.

모델 성능이 생성 정확도에 영향을 준다

여기가 중요한 포인트다.

고성능 모델을 사용하면 실무에 가까운 테스트 케이스가 생성된다. 반대로 성능이 낮은 모델을 사용하면 엉뚱한 케이스가 늘어난다.

내 경험으로는:

  • Claude Sonnet 4/DeepSeek V3.1: 실무 레벨로 사용 가능
  • GPT-5: 마찬가지로 실무 레벨
  • GPT-3.5: 기본적인 케이스는 만들 수 있지만 정확도가 떨어짐

비용과 정확도의 균형을 고려해서 모델을 선택하는 것이 좋다.

실제로 사용해보고 깨달은 3가지 포인트

1. 생성 내용은 어디까지나 "초안"이다

AI가 만들어주는 것은 어디까지나 초안이다. 그대로 프로덕션에 사용하는 것은 위험하다.

특히 비즈니스 로직에 의존하는 부분은 AI만으로는 판단할 수 없다. 예를 들어:

  • "이 API는 관리자 권한이 필요하다"
  • "이 값은 다른 테이블과 정합성을 맞춰야 한다"
  • "이 에러 메시지는 한국어로 반환한다"

이런 사양은 사람이 리뷰해서 추가·수정해야 한다.

2. 시간 절약 효과는 확실히 있다

수동으로 작성하면 1시간 걸리는 작업이 AI를 사용하면 15분에 끝난다.

특히 프로젝트 초기나 대규모 사양 변경 시에는 이 차이가 크다.

내 경우 주당 5~6시간을 테스트 케이스 작성에 사용했는데, AI를 도입한 후 2~3시간으로 줄었다. 남은 시간으로 핵심 로직 테스트를 더 탄탄하게 할 수 있게 되었다.

3. 팀 내 품질이 균일화된다

이전에는 사람마다 테스트 케이스의 세밀도가 제각각이었다.

AI를 사용하면 최소한의 베이스라인이 확보된다. 거기서 각자 필요에 따라 추가·수정하므로 전체적인 품질이 상향 평준화되었다.

신입 엔지니어에게도 "어떤 테스트 케이스를 작성해야 하는가"의 참고가 된다.

나만의 활용 플로우

최종적으로 이런 사용법으로 정착했다:

1. AI로 초안 생성
프로젝트 초기나 대규모 변경 시 먼저 AI로 일괄 생성한다.

2. 리뷰와 조정
생성된 케이스를 확인하고 채택·삭제·수정을 판단한다.

3. 수동으로 보완
비즈니스 로직에 의존하는 부분이나 중요한 경로는 수동으로 추가한다.

4. CI/CD에 통합
확정된 테스트 케이스를 CI/CD 파이프라인에 통합해 지속적으로 실행한다.

5. 정기적으로 재검토
사양 변경이 있으면 AI로 재생성해서 차이를 확인한다.

이 플로우로 바꾼 후 테스트 케이스 작성과 유지보수가 훨씬 편해졌다.

정리: AI는 "협력자"로 사용하는 것이 정답이다

이번에 Apidog의 AI 기능을 사용해보고 가장 느낀 점은 "AI에게 전부 맡기는 것이 아니라 협력자로 사용한다"는 것이다.

AI가 초안을 만들어주기 때문에 나는 사양이나 비즈니스 로직 확인에 집중할 수 있다. 결과적으로 테스트 품질과 작업 속도 모두 향상되었다.

완벽한 도구는 아니지만 확실히 개발 효율은 올라간다.

특히 이런 사람들에게는 시도해볼 가치가 있다:

  • 테스트 케이스 작성에 시간이 너무 많이 걸린다
  • 예외 케이스나 경계값 누락이 많다
  • 팀 내 테스트 품질이 제각각이다
  • 사양 변경 때마다 테스트를 다시 작성하는 것이 번거롭다

한 번 AI로 생성해서 자신의 API에서 얼마나 효율화할 수 있는지 테스트해보길 바란다.


이 글이 도움이 되었다면 공유해주세요.
질문이나 의견이 있으면 편하게 남겨주세요.

0개의 댓글