다음에 할 일은 무엇인가
메타포
코드 매트릭스
프로세스
테스트의 질
- Money 코드 아직 중복 존재. 공통되는 코드를 담을 적절한 곳이 필요.
- "다음에 할 일은 무엇인가" == "어떤 테스트들이 추가로 필요한가"
- 실패해야 하는 테스트가 성공할때, 이유를 찾아야 한다.
- 실패해야 하는 테스트가 실패할 때, 제한사항 / 작업 등의 의미를 기록하자.
- 할 일 목록이 빌 때가, 설계한 것을 검토하기 적절한 시기이다.
- 강력한 메타포.
- 세세한 문제에서 해방 / 명확한 코드 작성
코드에 대한 통계
- 실제 코드와 테스트 사이의 코드의 줄이 비슷하다.
- 테스트 코드 줄 수는 공통된 테스트 픽스처를 뽑아내는 작업을 통해 줄일 수 있다. 하지만 대략 비슷
- 회기성 복잡도 = 흐름 복잡도. 반복이 없기 때문에 복잡도는 1.
- 다형성으로 낮은 복잡도를 가진다.
TDD 주기
- 작은 테스트 추가
- 모든 테스트 실행, 실패 확인하기
- 코드 변화 주기
- 모든 테스트 실행, 성공 확인하기
- 중복 제거를 위한 리팩토링
테스트들은 시스템의 수명이 다할때까지 함께 해야 유용하다. 하지만, 아래 종류의 테스트를 대체하지 않는다
- 성능 테스트
- 스트레스 테스트
- 사용성 테스트
- 테스트 돌아가게 하는 방법 : 가짜로 구현하기 / 삼각 측량법 / 명백하게 구현하기
- 설계 주도 방법 : 테스트 코드와 실제 코드 사이에서 중복을 제거하기
- 길이 미끄러우면 속도를 줄이고, 상황이 좋으면 속도를 높이자. 테스트 사이 간격 조절!
메타포의 의미를 잘 모르겠음..
검색해보니 고객과 개발자간의 소통 ? , TDD 에 대한 수련? 여러개가 나온다.
ㅠㅠ