디자인 방향을 이끌기
TDD를 채택한 사람들은 소프트웨어의 어떤 부분을 잘 테스트할 수 있는 경우에 그 부분을 유지보수하고 개선하기도 쉽다는 점을 공통적으로 느끼곤 한다. 한마디로 테스트하기 어려운 코드보다 테스트하기 쉬운 코드의 품질이 더 높다. 테스트 가능한 쉬운 코드를 작성하기는 힘들다. 코드를 쉽게 테스트할 수 있도록 보장하는 최고의 방법은 처음부터 테스트를 작성하는 것이다.
테스트는 애플리케이션 디자인을 단순하게 유지하는 데도 도움을 준다. 테스트에 귀를 기울이면 코드를 개선할 수 있는 더 나은 방법을 깨닫는 경우가 많다. 이는 함수형 패러다임이든 객체 지향 패러다임이든 똑같다.
조에게 묻는다 테스트에 귀를 기울인다는 것이 무슨 뜻인가?
물론 테스트가 말을 하지는 않는다!
하지만 디자인에 대한 의사 결정을 할 때마다 항상 테스트하기 쉬운 방향을 선택하기 위해 노력하면 테스트가 디자인을 이끌었다고 말할 수 있다. 테스트는 크게 소리를 지르는 것이 아니라 나지막이 속삭이고 있다는 사실을 항상 기억하라.