소프트웨어 테스트를 위한 GenAI 효과적인 프롬프트 만들기

발행: (2025년 12월 13일 오후 08:32 GMT+9)
7 min read
원문: Dev.to

Source: Dev.to

왜 테스트에서 프롬프트 엔지니어링이 중요한가

잘 구조화된 프롬프트는 일반적이고 쓸모 없는 출력과 바로 활용할 수 있는 정확히 목표가 된 테스트 케이스, 자동화 스크립트, 혹은 분석 결과 사이의 차이를 만들 수 있습니다.

효과적인 프롬프트의 6가지 구성 요소

1. 🎭 역할

GenAI 모델이 채택해야 할 페르소나 또는 관점을 정의합니다.

목적: AI가 특정 전문적인 입장을 취하도록 안내

예시

  • “테스터 역할을 수행하세요…”
  • “테스트 매니저 역할을 가정하세요…”
  • “당신은 테스트 자동화 엔지니어입니다…”

이점

  • 응답이 의도된 전문성과 일치하도록 보장
  • 적절한 어조와 상세 수준을 설정
  • 관련 정보를 우선순위에 두는 데 도움

실제 예시

잘못된 예: “테스트 케이스를 생성하세요”

올바른 예: “전자상거래 애플리케이션에서 5년 경력의 시니어 테스터 역할을 수행하고 테스트 케이스를 생성하세요…”

Role illustration

2. 📋 컨텍스트

테스트 시나리오에 대한 배경 정보를 제공합니다.

목적: 작업을 이해하는 데 필요한 배경을 AI에게 제공

예시

  • “우리는 전자상거래 웹사이트의 로그인 기능을 테스트하고 있습니다.”
  • “해당 애플리케이션은 Android 12에서 실행되는 모바일 뱅킹 앱입니다.”
  • “시스템은 사용자 계정을 관리하는 REST API입니다.”

이점

  • AI가 범위와 목적을 이해함
  • 보다 관련성 높은 결과 생성
  • 모호성 감소

Context illustration

팁: 컨텍스트가 구체적일수록 결과도 더 목표 지향적이 됩니다.

3. ⚡ 지시사항

특정 작업을 명확하고 간결하게 설명합니다.

목적: AI가 해야 할 일을 명확히 정의

예시

  • “로그인 기능에 대한 테스트 케이스를 생성하세요.”
  • “다음 코드를 분석하여 잠재적인 보안 취약점을 찾아주세요.”
  • “결제 프로세스를 검증하는 테스트 자동화 스크립트를 작성하세요.”

이점

  • 명확한 방향 제공
  • 모호성 감소
  • 원하는 작업에 집중하도록 보장

Instruction illustration

더 나은 지시 예시

  • ❌ “어떤 테스트를 할 수 있나요?”
  • ✅ “사용자 등록 양식에 대해 긍정 및 부정 시나리오를 포함한 10개의 테스트 케이스를 생성하고, 데이터 검증 및 오류 처리에 초점을 맞추세요.”

4. 📥 입력 데이터

작업 수행에 필요한 정보를 제공합니다.

목적: AI에게 필요한 작업 자료 제공

포함할 내용

  • 사용자 스토리
  • 수용 기준
  • 스크린샷
  • 코드 스니펫
  • 기존 테스트 케이스
  • 출력 예시

이점

  • 보다 정확하고 컨텍스트를 고려한 결과 가능
  • AI가 작업을 수행할 기반 제공
  • 기존 데이터로부터 학습 가능

Input Data illustration

예시

User Story: "As a customer, I want to be able to add items to my shopping cart"
Acceptance Criteria: "The cart should display the correct number of items and the total price"

5. ⚠️ 제약 조건

AI가 따라야 할 제한 사항이나 특별 고려사항을 명시합니다.

목적: AI가 특정 요구 사항을 준수하도록 안내

예시

  • “테스트 케이스는 위험도에 따라 우선순위를 매겨야 합니다.”
  • “코드 분석은 OWASP Top 10 취약점에 초점을 맞춰야 합니다.”
  • “테스트 자동화 스크립트는 Python을 사용한 Selenium WebDriver여야 합니다.”

이점

  • 요구 사항 준수 보장
  • 중요한 측면에 노력 집중
  • 관련 없는 결과 감소

실용적인 제약 예시

  • “JUnit 5와 호환”
  • “동시 사용자 100명 시뮬레이션”
  • “Page Object Model 패턴 사용”

Constraints illustration

6. 📤 출력 형식

응답의 기대 형식과 구조를 지정합니다.

목적: AI가 결과를 어떻게 제시해야 할지 정의

예시

  • “테스트 케이스를 테이블 형식으로 출력하고, 열은 테스트 케이스 ID, 설명, 단계, 기대 결과로 구성합니다.”
  • “코드 분석 결과를 JSON 형식으로 제공하세요.”
  • “테스트 자동화 스크립트를 Python으로 생성하세요.”

이점

  • 출력이 바로 사용 가능하고 이해하기 쉬움
  • 다른 도구와의 통합이 용이
  • 워크플로 효율성 향상

Output Format illustration

🎯 완전한 프롬프트 예시

모든 구성 요소가 어떻게 함께 작동하는지 보여줍니다:

Role: Act as a Test Automation Engineer with 3 years of experience.

Context: We are testing the user registration functionality of a new social media application.

Instruction: Generate a Selenium WebDriver test script in Python to automate the user registration process.

Input Data:
- User Story: "As a new user, I want to be able to register for an account with a valid email address and password."
- Acceptance Criteria: "The system should validate the email address format and password strength."

Constraints:
- The script should use the Page Object Model
- Use Selenium WebDriver with Python 3.9
- Generate test data using the Faker library

Output Format:
- Provide the script in a single .py file
- Include comments for each step
- List any required dependencies in a requirements.txt block
Back to Blog

관련 글

더 보기 »

현실이 사라질 때

2024년 12월, 페이‑페이 리는 가득 찬 스탠포드 강당에 낡은 엽서를 들어 보였다—반 고흐의 *The Starry Night*는 세월에 따라 색이 바래고 주름이 잡혀 있었다. 그녀는 그것을…

알고 계셨나요? (Part 3)

Google Cloud Shell을 환경으로 사용하여 코딩할 수 있습니다! JavaScript, .NET 등 다양한 도구가 포함되어 있습니다. 무엇보다도, 설치할 수 있습니다.