[Test] 테스트 원칙

박재현·2022년 3월 29일
0
post-custom-banner

🔎 테스트 코드 작성하기

  1. 한번 작성된 테스트 코드는 지속적인 유지보수 필요.
  2. 내부 구현 사항 테스트 X
  3. mock, stub와 같은 별도의 함수 및 테스트용 클래스를 만들어 재사용성 높이기
  4. 배포용 코드 철저히 분리
  5. 구현한 코드의 기능 및 동작을 한 눈에 알아볼 수 있는 문서화 기능

🔎 좋은 테스트의 원칙

📌 F : Fast

  • 테스트 코드는 빠르게 실행되어야 한다.
  • 파일, 데이터베이스, 네트워크 접근의 경우 테스트 코드를 느리게 만들고, 의존 환경을 만들어 테스트에 영향을 끼칠 수 있으므로 mock stub 를 활용한다.

📌 I : Isolated

  • 각각의 테스트는 독립된 환경에서 최소한의 유닛으로 검증해야 한다.

📌 R : Repeatable

  • 실행할 때마다 동일한 결과를 유지해야 한다.
  • 다른 테스트 코드에 의존하거나, 네트워크와 같은 외부 환경에 의존하는 경우 테스트 횟수, 환경에 따라 결과가 달라질 수 있으므로 mock stub를 활용한다

📌 S : Self-Validating

  • 스스로 결과값을 검증하고 확인할 수 있어야 한다.

📌 T : Timely

  • 테스트 코드를 작성하여 사용자에게 배포되기 전에 예상하지 못한 오류를 해결할 수 있어야 한다.

🔎 테스트 범위

Right-BICEP

📌 B : Boundary conditions

  • 모든 코너 케이스에 대해 테스트 하기
  • 잘못된 포멧의 input, null, 특수문자, 잘못된 이메일, 작은 숫자, 큰 숫자, 중복, 순서성 등

📌 I : Inverse relationship

  • 반대 경우를 적용하여 결과값을 확인
  • 덧셈 - 뺼셈, 추가 - 제거

📌 C : Cross-check

  • 다른 수단을 통해 결과값이 맞는지 확인
  • 추가된 과일 == 전체 과일 - 예전 과일 갯수, A 알고리즘 == 라이브러리 B 알고리즘

📌 E : Error conditions

  • 예측된 에러 사항에 대한 테스트 코드 작성
  • 네트워크 에러, 메모리 부족, 데이터 베이스 중지 등

📌 P : Performance characteristics

  • 테스트를 통해 성능을 확인하고, 개선의 척도를 확인

참조

post-custom-banner

0개의 댓글