김듀니 2022. 1. 30. 17:35
728x90

 

  • Fast
    • 테스트는 빠르게 동작해야 한다. 프로젝트 규모에 따라 테스트 코드도 늘어나게 되고, 많은 테스트 코드는 시간을 소요하게 된다. 테스트 코드는 빠르게 확인하고, 수정할 있어야 의미가 있다.
  • Independent/Isolated
    • 각 각의 테스트는 독립적으로 동작하며, 서로 의존해선 안된다. 코드간 의존성이 높으면 테스트가 실패 했을 경우 원인을 찾는것에 어려움을 겪을 수 있으며 테스트 진행에 차질을 불러오기도 한다.
  • Repeatable
    • 테스트는 언제나 같은 결과를 내야한다. 매번 예상한 결과대로 테스트가 진행되게 해야한다.
  • Self-Validating
    • 테스트의 성공 여부는 테스트 코드 내부에서 스스로 검증 가능해야 한다. 
  • Timely
    • 테스트 코드는 실제 코드를 구현 하기 직전 구현해야만 효율적이다. 실제 코드를 작성 하고 난 후 테스트 코드를 작성하려 한다면 이미 테스트하기 어려운 설계가 되어있을 지도 모른다.
728x90