
TDD의 사이클
- 실패하는 테스트 코드 작성하기
- 테스트 통과시키기
- 이전 두 단계에서 추가되거나 변경된 코드 개선하기
통합 테스트는 필수적이지만 설계하고 유지 보수하기가 까다롭다.
단위 테스트에서 검증하는 로직을 최대화 하는 방향으로 통합 테스트 개수와 복잡도를 최소화 해야한다.
단위테스트 표준
- 코드를 체크인하기 전에 어떤 테스트를 실행해야 할지 여부
- 테스트 클래스와 메서드의 이름 짓는 방식
- 햄크레스트 혹은 전통적인 단언 사용 여부
- AAA사용 여부
- 선호하는 목 도구 선택
- 체크인 테스트를 실행할 때 콘솔에 출력을 허용할지 여부
- 단위 테스트 스위트에서 느린 테스트를 분명하게 식별하고 막을 방법
리뷰로 표준 준수 높이기
- Fagan inspections
- Pull request : 메인브렌치에 통합하려는 작업 내용에 대해 풀 리퀘스트를 제출하고 다른 팀원은 요청에 주석을 달고 결과적으로 변경사항을 메인브렌치에 병합할 것을 결정함.
Test Code Coverage
coverage는 어느 정도여야할까?
제프 코드 커버러지 이론 : 낮은 커버리지의 영역에서 나쁜 코드의 양도 증가한다.
테스트 커버러지를 높이기 위해 단언은 거의 없는 형태가 될 수 있고, 이해하고 유지 보수하기 어려우며 가치 있는 단언을 포함하지 않은 나쁜 테스트를 작성했을 수 있다.
Code coverage : 얼마나 많은 코드가 테스트 되었는가?