Nexus AI agent '테스트 케이스 생성' 기능은 업로드된 기획서 또는 테스트 대상 애플리케이션의 동작을 설명하는 문서를 기반으로 테스트 케이스를 생성합니다.
'첨부된 파일에서 테스트 케이스를 생성해주세요'와 같이 매우 단순한 프롬프트만으로도 어느 정도 포괄적인 테스트 케이스 세트를 만들 수 있습니다.
또한, 구체적인 프롬프트를 작성하여 생성되는 테스트 케이스의 세분성(granularity), 포괄성(comprehensiveness) 및 테스트 관점을 조정할 수 있습니다.
이 문서는 '테스트 케이스 생성' 기능의 기본 사용법과 출력 결과를 튜닝하는 방법을 소개합니다.
1.기본 사용법
입력으로 적합한 기획서
테스트 실행 엔진으로서 넥서스(Nexus)가 가장 잘하는 테스트 유형은 사용자 관점에서의 화면 테스트(E2E 테스트)입니다. 따라서 넥서스 AI가 생성에 능숙한 테스트 역시 E2E 테스트입니다.
E2E 테스트를 만드는 데 가장 유용한 문서는 사용자 동작을 설명하는 문서입니다. 이는 기본 설계서, 개요 설계서, 화면 설계서 등이 될 수 있습니다. 기능 추가 시 사용자 동작을 기술한 티켓 관리 시스템상의 티켓이나, 신규 기능 개요를 요약한 메모 등도 적합한 입력입니다.
반면에, 사용자 동작이 아닌 시스템의 메커니즘에 초점을 맞춘 정보(예: 상세 설계서나 데이터베이스 기획서)는 E2E 테스트 생성 정보로 적절하지 않습니다. 따라서 이러한 정보를 업로드하면 충분한 테스트 케이스가 출력되지 않을 가능성이 높습니다.
기본 생성 시도하기
먼저 가지고 있는 기획서 문서를 업로드하고 테스트 케이스 생성을 시도해 보세요.
시나리오 창을 열고 'AI로 생성' 버튼을 클릭한 후, 표시되는 드롭다운에서 '테스트 케이스 생성'을 선택하여 'AI 에이전트' 창을 실행합니다.
'AI 에이전트' 창에 기획서를 업로드하고, 프롬프트로 "첨부한 파일에서 테스트 케이스를 생성해주세요"를 입력한 후 '전송 버튼'을 클릭합니다.
AI 에이전트가 테스트 케이스를 자동으로 생성하며, CSV 파일이 다운로드 폴더에 저장됩니다.
생성 결과 평가하기
생성된 테스트 케이스를 다음 관점에서 평가해 보세요.
전체적인 세분성 (Granularity)
예상보다 너무 상세한지 (예: 타당하지만 너무 미세하거나 과도하게 많은지) 또는 너무 광범위한지 (예: 정상 경로 위주이며 준정상/예외 경로 테스트가 적은지).
정확도 (Accuracy)
환각(Hallucination) 현상이 있는지 (예: 존재하지 않는 기능이나 불필요한 테스트가 있는지).
예상했던 테스트 관점이 포괄적으로 다루어졌는지.
근거의 충분성/유용성 (Sufficiency/Usefulness of Rationale)
해당 테스트 케이스가 출력된 근거가 올바르고 타당한지.
이 기본 생성 결과를 평가한 후, 다음 단계에서는 프롬프트를 수정하여 원하는 테스트 케이스에 더 잘 맞도록 출력을 튜닝해 나갑니다.
2.세분성 조정
기본 생성을 시도했을 때 출력 결과가 예상과 다르다면, 가장 흔한 차이점은 세분성에 있습니다.
세분성의 차이에는 다음과 같은 경우가 포함될 수 있습니다.
고수준의 사용자 인수 테스트(UAT) 유형 시나리오를 기대했지만, 상세한 단위 테스트(UT) 또는 통합 테스트(IT) 수준의 테스트가 나온 경우 (혹은 그 반대).
하나의 시나리오가 전체 사용자 스토리를 포괄하는 시나리오 테스트를 원했지만, 시나리오당 하나의 관점만 확인하는 테스트가 나온 경우 (혹은 그 반대).
특정 항목에 대해 정상 경로 테스트 케이스는 출력되었지만, 준정상 경로나 예외 경로가 충분히 다루어지지 않았거나 부족한 경우 (혹은 그 반대).
다음 두 가지 방법을 사용하여 이를 조정할 수 있습니다.
테스트 케이스 수 지정
프롬프트에 생성해야 할 테스트 케이스의 수를 명시적으로 지정하면, 이에 따라 테스트 케이스의 세분성도 조정됩니다.
예를 들어, 기본 생성 시 대략 50개 정도의 테스트 케이스가 생성되는 경우를 가정해 보겠습니다 (반복 생성 시 개수가 조금씩 달라지므로 평균이라고 가정).
이때 더 상세한 테스트를 생성하고 싶다면 다음과 같이 프롬프트할 수 있습니다.
첨부한 파일에서 테스트 케이스를 생성해주세요. 이때, 최소 150개의 테스트 케이스가 필요합니다.평균보다 훨씬 큰 숫자를 지정하여 생성하면, AI는 그만큼 더 미세한 세분성과 더 상세한 관점으로 테스트를 생성하려고 시도합니다. 이 경우, 생성되는 테스트 케이스 세트의 전반적인 세분성이 미세해집니다.
상세 지정
특정 항목, 예를 들어 항목 A가 특히 중요해서 더 포괄적인 테스트 케이스가 필요하다면, 해당 항목에 대한 상세한 정보를 제공하여 테스트 케이스의 세분성을 조정할 수 있습니다.
다음과 같은 상세 프롬프트가 효과적일 수 있습니다.
첨부한 파일에서 테스트 케이스를 생성해주세요. 항목 A에 대해서는 정상 경로 외에 생각할 수 있는 모든 예외 경로도 포함해주세요.다만, 위 프롬프트가 반드시 완전히 포괄적인 테스트 케이스 생성을 보장하지는 않습니다. 필요한 경우, 출력된 테스트 케이스를 기반으로 다른 기법(예: 쌍체 검사(pairwise testing)를 통한 커버리지 매트릭스 생성)을 사용하여 테스트 케이스를 확장해 볼 수 있습니다.
3.정확도 향상
세분성을 맞추더라도 원하는 테스트 케이스가 정확히 생성되지 않을 수 있습니다.
특히, 생성 AI 고유의 문제인 환각 (예: 존재하지 않는 기능 출현, 불가능한 조합 발생)이나 필요한 테스트 케이스 누락 등의 문제를 억제해야 할 수 있습니다. 이 경우 다음 방법들이 유용할 수 있습니다.
부가 정보 제공
먼저, 다루어져야 할 기능이나 테스트 관점 등 고수준 정보가 누락된 경우, 사람이 이를 보충해 주면 후속으로 출력되는 테스트 케이스의 정확도를 높일 수 있습니다.
첨부된 파일은 애플리케이션 A의 기획서입니다. 여기에는 다음 기능들이 포함되어 있습니다:
- 기능 X
- 기능 Y
- 기능 Z.
이를 고려하여 이 기획서로부터 테스트 케이스를 생성해주세요.예시에서는 기능 X, Y, Z를 사용했지만, 테스트 관점과 같은 정보를 보충하거나 해당 정보가 포함된 별도의 파일을 기획서와 함께 업로드하는 것도 효과적입니다.
테스트 케이스 생성 대상 좁히기
위와 같이 기능이나 테스트 관점 등의 정보를 보충하면 AI가 기획서에 대한 이해를 높여 더 나은 테스트 케이스 생성을 할 수 있게 됩니다.
그러나 입력 크기가 커질수록 AI는 주의력이 분산되어 테스트 케이스의 밀도가 낮아지는 경향이 있습니다. 이를 피하기 위해, 테스트 케이스의 생성 대상을 좁혀서 AI의 주의력을 집중시키면 결과적으로 생성되는 테스트 케이스의 정확도를 높일 수 있습니다.
첨부된 파일은 애플리케이션 A의 기획서입니다. 이 기획서에 포함된 기능 X에 대해 테스트 케이스를 생성해주세요.이 프롬프트를 사용하면 기능 X, Y, Z 세 가지가 있을 때 기능 X에 대한 테스트 케이스만 생성됩니다. 나머지 기능을 모두 커버하려면 별도의 세션에서 기능 Y에 대한 테스트 케이스를, 또 다른 세션에서 기능 Z에 대한 테스트 케이스를 생성한 후 이들을 병합해야 합니다.
이는 수고가 더 들지만, 모든 기능의 테스트를 한 번의 프롬프트로 생성하는 것보다 기능을 좁혀 3번 생성하고 병합하는 것이 더 좋은 테스트 케이스를 만들 가능성이 높습니다.
유의 사항
생성 결과는 매번 다릅니다.
생성 AI의 특성상 동일한 입력이라도 결과는 매번 다릅니다. 여러 번 시도하여 가장 품질이 높은 테스트 케이스를 선택하세요.
입력 크기에 제한이 있습니다.
AI가 한 번에 처리할 수 있는 텍스트 양(토큰 수)에는 제한이 있습니다. 대규모 문서를 사용하는 경우, 대상 범위를 좁히는 등의 방법을 활용하세요.
문서의 품질이 결과에 영향을 미칩니다.
입력 문서의 품질 (예: 구조화되고 정리된 "AI-Ready" 상태인지 여부)이 결과에 영향을 미칩니다.