본문으로 건너뛰기

테스트 코드가 주는 혜택

디버깅 감소

테스트를 한 번 작성해두면 프로젝트의 생존 주기동안 값비싼 결함을 예방해 준다.
또한 전체적인 결함이 해결되어 디버깅에서 해방시켜준다.
소프트웨어 장인 정신 이야기에서 언급된 TDD heuristics 15. 디버거 사용을 피하라 와 연결되는 내용이다.

자신 있게 변경

소프트웨어는 항상 변경된다.
리팩터링할 때 자신감을 가지고 변경 사항을 반영할 수 있다.

더 나은 문서 자료

하나의 행위만 집중해 검증하는 테스트는 실행 가능한 문서와 같다.
이 때 테스트는 명확하고 간결해야지만 문서 자료로서의 역할을 훌륭히 수행할 수 있다.

더 단순한 리뷰

정확성, 극단 상황, 오류 상황 등의 다양한 측면에서 코드를 검사해주는 테스트가 준비되어 있다면 리뷰어가 검증하는 시간을 크게 줄여준다.

사려 깊은 설계

새로 작성한 코드의 테스트를 작성하는 일은 실질적으로 해당 코드의 API가 잘 설계되어 있는지를 시험하는 행위다.
테스트하기 어려운 코드는 너무 많은 책임을 가지고 있거나, 의존성이 복잡한 경우가 많다.
잘 설계된 코드라면 모듈화가 잘 되어있어야 한다.

고품질의 릴리스를 빠르게

자동화된 테스트를 갖춘다면 새로운 버전을 릴리스할 때 불안에 떨지 않아도 된다.

참고 자료

구글 엔지니어는 이렇게 일한다, 타이터스 윈터스, 톰 맨쉬렉, 하이럼 라이트 p.288