1.1 단위 테스트를 작성하는 이유
팻은 방금 코드 20여 줄을 시스템에 추가하는 작은 작업을 마쳤습니다. 그는 자신이 변경한 코드에 대해 상당히 자신 있었지만, 배포된 시스템에는 오랜만에 변경된 코드를 적용해 보았습니다. 팻은 빌드 스크립트를 실행하여 변경된 코드를 패키징하고 로컬 웹 서버에 배포했습니다. 애플리케이션을 실행하고 웹 브라우저에서 적절한 화면으로 이동하여 약간의 데이터를 입력하고 제출했습니다. 앗! 스택 트레이스1가 나왔네요.
팻은 한동안 화면을 바라보고 코드를 쳐다봅니다. 아하! 필드를 초기화하는 것을 잊었네요. 그 부분을 고치고 다시 빌드 스크립트를 실행합니다. 애플리케이션을 실행하고 데이터를 넣어 다시 제출합니다. 음, 결괏값이 다르네요. 이번에는 문제를 해결하는 데 좀 더 시간이 걸립니다. 디버거를 연 팻은 몇 분 후 배열을 인덱싱할 때 한 끗 차이 오류(off-by-one error)2가 있음을 발견합니다. 다시 고치고 배포하고 화면을 이동하여 데이터를 넣고 결과를 확인합니다.
다행히 세 번째 시도는 성공했습니다. 하지만 그는 코드를 세 번 수정(수동 테스트)하는 데 15분 정도를 소모했습니다.
데일은 조금 다르게 일합니다. 그녀는 코드를 작성할 때마다 시스템에 추가되는 작은 변화를 검증할 수 있는 단위 테스트도 작성합니다. 그다음 모든 단위 테스트를 실행합니다. 그것은 몇 초 안에 실행되고 다음으로 넘어갈지 여부를 결정하는 데 그리 오래 걸리지 않습니다.