353
9
장
테스트
최적안을 찾고자 테스트 유형별 테스트 수를 알맞게 조절해야 할 경우가 많다. 테스트 집합이
실행하는 데 너무 오래 걸리는가? 서비스 또는 엔드투엔드 테스트와 같은 더 넓은 범위의 테스
트가 실패하면 더 작은 범위의 단위 테스트를 작성해 실패한 부분을 더 빨리 찾아야 한다. 범위
가 더 큰 (그리고 더 느린) 일부 테스트를 범위가 더 작고 더 빠른 단위 테스트로 대체하라. 반
면에 버그가 운영 단계로 넘어가면 테스트를 놓치고 있다는 신호일지도 모른다.
따라서 이러한 테스트에 모두 장단점이 있다면 테스트 유형별로 얼마나 많은 테스트를 원하는
가? 경험에 따르면, 피라미드 아래로 내려갈수록 훨씬 더 많은 테스트를 원한다. 따라서 다양
한 유형의 자동 테스트가 있다는 사실을 알아야만 하고, 현재 테스트 수 비율이 문제가 되는지
반드시 파악해야 한다!
예를 들어 필자는
4
,
000
개의 단위 테스트,
1
,
000
개의 서비스 테스트,
60
개의 엔드투엔드 테
스트를 보유한 모놀리식 시스템에서 작업했다. 필자와 동료들은 피드백 관점에서 서비스 테스
트와 엔드투엔드 테스트가 너무 많아서(엔드투엔드 테스트는 피드백 루프에 가장 나쁜 영향을
끼쳤다 ) 더 작은 범위의 테스트로 대체하려고 상당한 노력을 했다.
흔히 안티패턴은
테스트 아이스크림콘테스트 아이스크림콘
test
snow
cone
또는 역피라미드라고 한다. 이 패턴에는 작은
범위의 테스트가 거의 (또는 전혀 ) 없으며 넓은 범위의 테스트에서 모든 영역을 커버하고 있
다. 이와 같은 프로젝트는 ...