Copilot로 테스트 및 코드 품질 관리

GitHub Copilot을 활용한 소프트웨어 개발

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

학습 내용 정리

 

  • 코드 자동 완성 — 입력 중 제안
  • Copilot Chat — 질문, 설명 요청, 코드 리팩터링
  • 에이전트 모드 — 자율적 다단계 작업
  • 커스텀 도구 — Copilot 기능 확장
GitHub Copilot을 활용한 소프트웨어 개발

이제 적용해 봅시다

nanobanana: half: 코드 편집기에서 배포된 애플리케이션까지 이어지는 경로에 테스트, 보안, 성능을 나타내는 마일스톤 아이콘이 있는 개발자 여정, 플랫 벡터 일러스트

 

  • 테스트 — 프로덕션 배포 전 버그 발견
  • 보안 — 취약점 조기 발견
  • 성능 — 확장 가능한 코드 작성
GitHub Copilot을 활용한 소프트웨어 개발

Copilot으로 테스트 쉽게 하기

nanobanana: half: 개발자 화면에 테스트 코드를 생성하는 AI 어시스턴트와 테스트 결과 옆의 초록색 체크 표시, 플랫 벡터 일러스트

 

  • ✔ 전체 테스트 스위트 생성
  • 💡 엣지 케이스 발견
  • 🤖 보일러플레이트 처리
GitHub Copilot을 활용한 소프트웨어 개발

놓치기 쉬운 엣지 케이스

 

def calculate_discount(price, discount_pct):
    discount = price * (discount_pct / 100)
    return price - discount

calculate_discount(50, 20)  # → 40.0 ✓

 

그렇다면...

  • 음수 price
  • discount_pct > 100
  • 수량 0인 주문
GitHub Copilot을 활용한 소프트웨어 개발

[screencast]

GitHub Copilot을 활용한 소프트웨어 개발

[screencast]

GitHub Copilot을 활용한 소프트웨어 개발

더 깊이 다뤄야 할 때

nanobanana: half: AI 채팅 인터페이스에서 메시지를 작성하는 개발자

간단한 경우

  • /tests

 

특수한 경우

calculate_discount에 대한 pytest 단위 테스트를 작성하세요. 음수 가격, 할인율 > 100%, 빈 항목 목록을 포함하며, 엣지 케이스에는 parametrize를 사용하세요.

GitHub Copilot을 활용한 소프트웨어 개발

단위 테스트를 넘어서

nanobanana: half: 세 개의 수평 레이어로 이루어진 테스트 피라미드. 넓은 하단은 단위 테스트, 중간은 통합 테스트, 좁은 상단은 엔드투엔드 테스트로 표시됨

 

  • 단위 — /tests 또는 간단한 프롬프트
  • 통합 — 컴포넌트 연결 방식 설명
  • 엔드투엔드 — 전체 코드베이스 컨텍스트 활용
GitHub Copilot을 활용한 소프트웨어 개발

통합 테스트

 

  • #file:로 관련 파일 첨부
  • 상호작용 및 모킹 전략 설명
  • 테스트 실패 시 /fixTestFailure 사용

 

체크아웃 플로우에 대한 통합 테스트를 작성하세요. #file:cart.py와 #file:payment.py를 사용하고, 결제 게이트웨이를 모킹하여 주문 상태가 올바르게 업데이트되는지 검증하세요.

GitHub Copilot을 활용한 소프트웨어 개발

엔드투엔드 테스트

 

  • @workspace로 관련 코드 자동 검색
  • Playwright 및 Cypress와 잘 연동됨
  • 실패 디버깅 시 #terminalLastCommand 사용

 

@workspace 사용자 등록 플로우에 대한 Playwright 엔드투엔드 테스트를 작성하세요. 확인 이메일이 발송되는지 검증하세요.

GitHub Copilot을 활용한 소프트웨어 개발

[screencast]

GitHub Copilot을 활용한 소프트웨어 개발

연습해 봅시다!

GitHub Copilot을 활용한 소프트웨어 개발

Preparing Video For Download...