살충제 패러독스와 테스트 케이스의 지속적 진화
살충제 패러독스의 원인과 품질 위험을 짚고, 테스트 케이스 갱신·기법 다각화·탐색적 테스팅으로 대응하는 방법을 정리한다.
2026-08-14 · 최초 발행 2026-04-17
반복 테스트가 새 결함을 놓치는 이유
살충제 패러독스(Pesticide Paradox)는 같은 테스트 케이스를 계속 실행할수록 시스템에 남아 있거나 새로 유입된 결함을 발견하기 어려워지는 현상이다. 특정 살충제를 반복 사용하면 해충이 내성을 갖는다는 비유에서 나온 표현이다.
보리스 바이저(Boris Beizer)는 저서 Software Testing Techniques에서 이 개념을 소개했다. 기존 테스트를 통과하도록 수정된 소프트웨어는 동일한 입력과 동일한 경로로는 더 이상 결함을 드러내지 않을 수 있다. 테스트 역시 소프트웨어 변화에 맞춰 설계와 범위를 바꿔야 한다는 뜻이다.
이 현상은 주로 다음 조건에서 나타난다.
- 결함을 수정하는 과정에서 해당 테스트 케이스가 지나는 입력값과 경로에 대한 방어 로직이 강화된다.
- 고정된 테스트 세트는 시스템 전체 경로 가운데 일부만 확인한다. 수정으로 생긴 결함이나 다른 경로의 결함은 그대로 남을 수 있다.
- 같은 데이터 셋만 사용하면 특정 조건은 검증할 수 있어도, 달라진 경계값이나 예외적 데이터 조합에서의 오류는 찾기 어렵다.
통과 결과가 만드는 품질 착시
테스트가 계속 Pass를 반환하면 시스템이 완전하다는 인상을 받기 쉽다. 그러나 이는 결함이 없다는 증거가 아니라, 현재의 테스트가 결함을 찾지 못한다는 신호일 수 있다. 이 상태에서 배포하면 운영 환경의 사용자가 새로운 결함을 처음 발견하는 상황으로 이어질 수 있다.
새 버그를 찾지 못하는 테스트를 반복하는 일은 인적·물적 자원을 소모한다. 자동화 환경에서도 의미가 약해진 테스트는 실행 시간을 늘리고 유지보수 비용을 키운다. 투자 대비 효과(ROI)를 높이려면 과거의 확인에 머무르지 않고 새로운 결함을 탐색할 수 있는 테스트 설계에 자원을 써야 한다.
테스트 세트를 변화에 맞추는 방법
기존 테스트 케이스가 현재 요구사항과 시스템 구조를 반영하는지 정기적으로 검토할 필요가 있다. 의미가 사라졌거나 중복된 케이스는 제거하고, 수정되거나 새로 추가된 기능을 검증할 케이스를 보강한다. 같은 시나리오라도 입력 데이터 조합을 바꾸면 기존 경로만으로는 보이지 않던 동작을 확인할 수 있다.
단일 기법에 의존하지 않는 것도 중요하다. 화이트박스와 블랙박스를 함께 사용하면 구조적 결함과 기능적 결함을 서로 다른 관점에서 다룰 수 있다. 경계값 분석과 동등 분할은 데이터 오류 가능성이 높은 지점을 겨냥하며, 오류 추정(Error Guessing)은 테스터의 경험을 바탕으로 결함 가능성이 있는 지점을 탐색한다.
탐색적 테스팅(Exploratory Testing)은 미리 작성된 스크립트에만 따르지 않고, 테스터가 시스템을 조작하면서 테스트를 설계하고 실행하는 방식이다. 정형화된 케이스가 놓치기 쉬운 사용자 시나리오와 비정형 경로를 찾는 데 활용할 수 있다. 수행 중 얻은 지식으로 다음 테스트를 즉시 더 정교하게 설계할 수 있다는 점도 특징이다.
자동화 역시 단순 반복에서 확장될 수 있다. 데이터 주도 테스팅(DDT)은 외부 데이터 소스를 활용해 수만 가지 조합을 자동으로 테스트한다. 모델 기반 테스팅(MBT)은 시스템 모델에서 테스트 케이스를 생성해 경로 누락을 줄이는 접근이다.
반복과 갱신이 만드는 순환
다른 테스트 원칙과 함께 보는 관점
살충제 패러독스는 소프트웨어 테스트 7원칙과도 연결된다. 테스트는 결함이 존재함을 보여줄 수 있지만 결함이 없음을 증명할 수는 없다. 따라서 같은 방식의 확인만 반복하기보다, 계속 새 결함을 찾을 수 있도록 접근을 바꿔야 한다.
완벽한 테스팅은 불가능하다. 모든 경로를 확인할 수 없기 때문에 선택과 집중이 필요하며, 그 선택은 시스템 변화에 따라 갱신되어야 한다. 초기 테스팅(Early Testing)도 같은 맥락이다. 결함을 이르게 발견할수록 수정 비용이 적게 들므로, 개발 단계마다 테스트를 갱신해야 한다.
결함 집중(Defect Clustering) 원칙은 결함이 모이는 모듈과 그 주변을 더 세밀하게 살피게 한다. 오류-부재의 궤변(Absence-of-errors Fallacy)은 버그가 없더라도 사용자 요구를 만족하지 못하면 소프트웨어가 가치 없을 수 있음을 말한다. 테스트 케이스의 갱신은 버그 탐지를 넘어 사용자 가치 검증까지 포함해야 한다.
Sources
- Beizer, Boris. Software Testing Techniques. Van Nostrand Reinhold.
- ISTQB Foundation Level Syllabus.
- Myers, Glenford J. The Art of Software Testing. Wiley.