본문으로 건너뛰기

LLM을 이용한 테스트 자동 생성

소스코드를 분석하여 GPT를 통해 테스트를 자동 생성하는 itdoc의 강력한 기능입니다.

기능 설명

프로젝트에 Itdoc을 적용하려는데 문서화할 API가 너무 많아 수작업으로 테스트를 작성하기 힘든가요?

const app = require("./expressApp")
const { describeAPI, itDoc, HttpStatus, field, HttpMethod } = require("itdoc")

describeAPI(
HttpMethod.POST,
"/signup",
{
summary: "User Registration API",
tag: "Auth",
description: "Registers a new user with username and password.",
},
app,
(apiDoc) => {
// 여러 테스트 케이스들
// ....
// ....
// ....
});

그렇다면 itdoc의 LLM 기능을 사용해보세요! 본 기능을 통해 위와 같은 itdoc 테스트 코드를 자동으로 생성할 수 있습니다.

LLM 기능을 사용하기 전과 후를 비교해보겠습니다.

Express 앱 소스코드

app.js
const express = require("express")
const authenticationRouter = require("./authentication")

const app = express()

app.use(express.json())
app.use("/auth", authenticationRouter);
module.exports = app

수작업으로 작성해야 했던 테스트 코드

// 개발자가 직접 분석하고 작성해야 함
// 시간이 많이 소요되고 실수 가능성 높음
// ...

기능 사용을 위한 요구 사항

  • CLI 명령어를 사용하기 위해 itdoc이 설치되어 있어야 합니다.

  • 이 기능은 ChatGPT API를 사용합니다. 다음과 같이 OpenAI API 키를 설정해야 합니다.

    아래 처럼 .env 파일에 키를 입력하세요
    echo OPENAI_API_KEY={ENTER_YOUR_GPT_KEY} > .env

    아니면, 아래와 같이 OPENAI_API_KEY가 들어있는 .env 파일의 특정경로를 입력할 수도 있습니다.

    itdoc --e {YOUR_ENV_FILE_PATH}
    itdoc --env {YOUR_ENV_FILE_PATH}
API 키 보안 주의사항

.env 파일을 .gitignore에 추가하여 Git 저장소에 업로드되지 않도록 하세요

.gitignore에 추가해야 할 내용
.env
  • .env 파일은 기본적으로 현재 작업 디렉토리에서 찾습니다. 다른 위치에 있다면 -e 옵션을 사용하여 지정할 수 있습니다.
  • OpenAI API 키는 OpenAI 계정에서 발급받을 수 있습니다.
  • API 사용량에 따라 비용이 발생하니 OpenAI 요금표를 확인하세요.
    • 보통의 작은 크기의 앱의 경우 1달러 이하로 충분히 모든 테스트를 생성할 수 있습니다.

사용법

소스코드 기반으로 테스트를 생성 하는 방법

먼저 확인하세요!

현재 소스코드 기반 테스트 자동 생성 기능은 Express 프레임워크에만 지원됩니다. 만약 다른 프레임워크를 사용하고 있다면, API Spec Markdown 기반으로 작성하여 테스트를 생성하는 방법을 사용하세요.

itdoc generate -a {YOUR_APP_FILE_PATH}
itdoc generate --app {YOUR_APP_FILE_PATH}
옵션설명
--app (-a)root app 소스코드 파일 경로

명령어를 실행하면 {YOUR_APP_FILE_PATH}에 정의된 Express 애플리케이션을 분석하여, 해당 애플리케이션의 API 엔드포인트에 대한 테스트를 자동으로 생성합니다.

itdoc은 소스코드를 외부 서버에 전송하지 않습니다

자체적인 AST 분석을 통해 API Spec Markdown을 만들고, 이를 ChatGPT에 전달하여 테스트 케이스를 생성합니다. 따라서, 여러분의 소스코드를 외부 서버에 전송하지 않으니 안심하고 사용하세요.

API Spec Markdown 기반으로 테스트를 생성 하는 방법

아래 명령어로 API Spec Markdown 파일을 기반으로 테스트를 자동 생성할 수 있습니다.

itdoc generate -p {API_Spec_Markdown_FILE_PATH}
itdoc generate --path {API_Spec_Markdown_FILE_PATH}
옵션설명
--path (-p)API Spec Markdown 파일 경로

이때 문서의 형식은 다음과 같은 형식이어야 합니다.

api-specs.md
`HTTP 메서드` `엔드포인트`
- Test Case: 테스트 케이스 제목
- Request: 요청에 대한 설명
- Response: 응답에 대한 설명

여러 API 케이스에 대해서 작성 예시를 보여드리겠습니다.

인증 API 예시
GET /secret
- Test Case: 올바른 인증으로 비밀 메시지에 접근
- Request: 올바른 인증 헤더와 함께 GET 요청을 보낸다.
- Response: 상태 코드 200, 비밀 메시지를 담은 JSON 응답과 특정 헤더 포함
- Test Case: 인증되지 않은 접근
- Request: 잘못된 인증 헤더와 함께 GET 요청을 보낸다.
- Response: 상태 코드 401를 반환한다.