GitHub Copilot으로 테스트 코드 자동 생성해 배포 안정성 높이기
사용한 도구GitHub Copilot
GitHub Copilot을 사용하면 함수와 클래스에 대한 유닛 테스트를 주석만으로 빠르게 만들 수 있습니다. 테스트 작성 시간을 줄이고, 엣지 케이스까지 챙긴 테스트 스위트를 구성해 배포 전 버그를 미리 잡을 수 있습니다.
만들 수 있는 것
- Jest, Pytest, JUnit 등 프레임워크에 맞춘 유닛 테스트 파일
- 로그인, 결제, 데이터 검증 함수에 대한 정상/비정상 케이스 테스트
- 빈 값, null, 음수 입력 등 엣지 케이스를 포함한 테스트 스위트
- API 엔드포인트나 React 컴포넌트에 대한 테스트 코드
필요한 스킬/도구
- GitHub Copilot (무료 플랜 있음, 많이 쓰면 유료): 주석 기반 테스트 코드 자동 생성
- VS Code 또는 IntelliJ, Neovim 등 Copilot 지원 IDE: 확장 프로그램 실행 환경
- 테스트 프레임워크 (Jest, Pytest, JUnit 등): 생성된 테스트 실행
- 기본 프로그래밍 지식: 생성된 코드 검토 및 수정
- GitHub 계정: Copilot 활성화 및 로그인
만드는 순서
- VS Code에서 Extensions 메뉴로 들어가 "GitHub Copilot" 검색 후 설치하고, GitHub 계정으로 로그인합니다. 무료 플랜이나 유료 구독을 활성화해야 사용할 수 있습니다.
- 테스트를 작성하려는 함수나 클래스가 있는 파일을 엽니다. 예를 들어
utils.js에calculateDiscount함수가 있다면 그 파일을 먼저 확인합니다. - 같은 폴더나
__tests__폴더에 테스트 파일을 새로 만듭니다. JavaScript라면utils.test.js, Python이라면test_utils.py같은 이름으로 만듭니다. - 테스트 파일 맨 위에 주석으로 어떤 테스트가 필요한지 한 줄씩 적습니다. "정상 입력 테스트", "잘못된 입력 테스트", "빈 값 처리 테스트" 같은 식으로 구체적으로 적으면 Copilot이 더 정확한 코드를 제안합니다.
- Copilot이 회색 글씨로 테스트 코드를 제안하면 Tab 키로 수락합니다. 여러 케이스가 필요하면 다음 줄에 주석을 추가로 적고 같은 방식으로 받습니다.
- 터미널에서
npm test나pytest같은 명령으로 생성된 테스트를 실행해 통과하는지 확인합니다. 실패하면 테스트 코드나 원본 함수를 수정합니다. - GitHub Actions, GitLab CI 등 CI/CD 설정 파일에 테스트 실행 단계를 추가해, 코드를 푸시할 때마다 자동으로 테스트가 돌아가게 만듭니다.
바로 쓰는 프롬프트
4단계에서 테스트 파일에 작성하는 주석 (JavaScript/Jest 예시):
// test calculateDiscount function with valid amount and percentage
// test calculateDiscount with zero amount
// test calculateDiscount with negative percentage
// test calculateDiscount with amount exceeding maximum limit
4단계에서 테스트 파일에 작성하는 주석 (Python/Pytest 예시):
# test validate_email with valid email address
# test validate_email with invalid format
# test validate_email with empty string
# test validate_email with None input
팁
- 주석을 "유효한 입력", "잘못된 입력", "엣지 케이스"로 나눠 적으면 Copilot이 더 다양한 테스트를 만들어 줍니다.
- 생성된 테스트는 논리가 맞는지, 실제로 버그를 잡을 수 있는지 반드시 눈으로 확인하세요. 가끔 형식만 맞고 내용이 부실한 테스트가 나올 수 있습니다.
- 테스트 커버리지 도구(Jest의
--coverage, Pytest의pytest-cov)를 함께 쓰면 어느 부분이 테스트되지 않았는지 한눈에 볼 수 있습니다.
여러분은 테스트 코드 작성에 어떤 어려움이 있나요?
운영자가 정리한 AI 활용 가이드입니다. 메뉴 이름과 요금제는 바뀔 수 있으니 아래 링크에서 함께 확인해 주세요.
