문제가 있다면 데일은 즉시 중단하고 고칩니다. 그녀의 문제는 발견하기 쉽습니다. 실수 위에 수많은 코드를 쌓기보다 코드만 몇 줄 추가했기 때문입니다.
데일은 시스템의 나머지 요소와 함께 테스트를 계속 유지합니다. 그녀 혹은 다른 사람이 같은 영역의 코드를 변경할 때도 테스트는 값어치를 합니다. 이 단위 테스트들이 쌓이면 회귀 테스트(regression testing)를 지원합니다. 즉, 그녀는 더 이상 기존 동작을 깨트리지 않으면서 새로운 변경점을 검증하려고 몇 분을 소모할 필요가 없다는 의미입니다.
또 데일이 하는 테스트는 시스템이 무엇을 하는지 이해하는 데도 팻과 다른 모든 사람의 시간을 현저히 줄여 줍니다. 비즈니스 분석가인 매두는 “X와 Y를 조합하여 입력했을 때 시스템은 무엇을 하죠?”라고 묻습니다. 팻의 대답은 대개 “모르겠는데요. 코드를 좀 볼게요.”입니다. 팻은 때때로 1~2분 내 대답하기도 하지만, 종종 30분 혹은 그 이상이 걸리기도 합니다. 반대로 데일은 그녀의 단위 테스트를 살펴보고는 즉시 대답합니다.
데일의 발자취를 따라 작고 집중된 단위 테스트를 작성하는 방법을 알아봅시다. 먼저 기본적인 JUnit 개념부터 알아보겠습니다.