본문 바로가기

부스트캠프/챌린지

[부스트캠프 웹모바일 9기] 챌린지 Day 7 학습 정리

단위 테스트 

정의

프로그램의 작은 단위인 함수나 메서드가 제대로 동작하는지 확인하는 과정

개발자가 작성한 코드가 예상대로 작동하는지 체크한다.

 

 

AAA 테스트 패턴

  • Arrange (준비): 테스트를 위한 데이터와 환경 준비.
  • Act (실행): 테스트할 코드 실행.
  • Assert (단언): 실행 결과가 기대한 대로 나왔는지 확인.

 

Given-When-Then 테스트 패턴

  • Given (준비): 테스트를 위한 초기 조건을 설정.
  • When (실행): 테스트할 동작이나 이벤트를 실행.
  • Then (단언): 실행 결과가 예상한 대로 나왔는지 확인.

 

given - when - then 테스트 패턴과 AAA 테스트 패턴은 매우 유사하다. 

given(arrange), when(act), then(assert)

 

다만 차이점이 있다면 표현 방식과 맥락에 차이가 있다.

 

차이점

  • 표현 방식
    • AAA : 각 단계의 행동을 설명하는 데 초점을 맞춘다.
    • Given-When-Then : 상황과 결과를 이야기하듯이 설명한다.
  • 사용 사례
    • AAA : 주로 단위 테스트에서 많이 사용된다.
    • Given-When-Then : 주로 행동 기반 개발(BDD: Behavior-Driven Development)에서 사용된다.

 

 

 

무엇을 테스트하는가? - BICEP 원칙

  • Right: 결과가 올바른지 확인.
  • B (Boundary conditions): 경계 조건 테스트.
  • I (Inverse relationships): 역 관계 테스트.
  • C (Cross-check using other means): 다른 방법으로 결과 검증.
  • E (Force error conditions): 에러 조건 강제로 생성.
  • P (Performance characteristics): 성능 특성 테스트.

 

 

좋은 테스트의 특성 - A-TRIP 원칙

  • A (Automatic): 자동적이어야 함.
  • T (Thorough): 철저해야 함.
  • R (Repeatable): 반복 가능해야 함.
  • I (Independent): 독립적이어야 함.
  • P (Professional): 전문적이어야 함.