테스트 계획 - f-lab-edu/jshop GitHub Wiki

테스트는 개발 단계에서 버그를 찾아내 코드의 품질을 높이고, 유지보수 비용을 절감할 수 있는 방법이다.

테스트를 통해 개발자가 자신의 코드에 대한 신뢰도를 더욱 높일 수 있다.

이번 프로젝트에서는 테스트를 적극적으로 활용해 품질을 높이려고 한다. 크게 클래스별 단위테스트와, 통합 테스트를 진행하려고 한다.

단위 테스트

비즈니스 로직을 검증하기 위해 단위 테스트를 수행할 계획이다.

단위테스트에는 의존관계 없이 독립적으로 수행해야 하므로 테스트 더블을 사용해 의존관계를 해결하려 한다.

좋은 단위테스트를 작성하기 위해 다음과 같은 규칙을 따르기로 했다.

  1. Fast : 테스트 코드 수행시간이 길다면 점차 손이 가지 않을것이다. 빠른 수행이 중요하다.
  2. Independent : 각 테스트는 의존관계에 있어서는 안된다. 즉 하나의 테스트 함수가 다른 테스트의 영향을 주면 안된다.
  3. Repeatable : 테스트는 언제라도 반복할 수 있어야 한다.
  4. Self-Validatiing : 테스트는 자체적으로 검증할 수 있어야 한다. 즉 성공 / 실패만 존재해야 한다.
  5. Timely : 테스트는 적시에 작성해야 한다.

통합 테스트