콘텐츠로 건너뛰기

테스트 케이스 만들면서 주절주절

테스트 케이스가 뭔지도 모르던 신입사원이

이제 TDD 신봉자가 되어 버렸다.
오늘 코드 중에 오류가 있어서 테스트 케이스를 봤는데,
if ( A == X ) …
else if ( B == Y || C == Z) …
else …
위와 같은 코드에 대해서 테스트 케이스가
A가 X일 때,
B가 Y일 때,
C가 Z일 때
세 가지, 아주 positive하고 cool 한 경우에 대해서만 작성되어 있었다.
일반적으로 저렇게 해서 코드량을 줄이기도 하는데…
문제는 A가 X 이면서 C가 Z인 경우가 발생할 때이다.
코드 상으로 순서가 제약되지 않는데, 로직 상으로 순서가 필요한 경우 난감하다.
물론 실제 코드를 그렇게 만들지 않는 것이 중요하겠지만, (Legacy는 어쩔…)
어쨌거나 테스트 케이스로 오리지널 코드를 방어하려면
(if문 개수) x 2 개의 테스트가 필요하다. (위의 경우 8개 테스트)
오늘은 코드 수정없이 사용자 시나리오에 따라서 테스트 케이스만 짰는데,
딱 두군데서 에러가 발생하고 있다. (당연히 오류 리포팅된 내용이다)
역시 테스트 중요하다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다