테스트를 시험하는 방법
일반적인 테스트는 프로그램이 기대한 동작을 하는지 확인한다. 변이 테스트는 프로그램 일부를 의도적으로 바꿔 기존 검사가 그 차이를 알아채는지 살핀다. Stryker NET은 이러한 변경과 검사 실행을 자동화한다. 변경 후에도 검사가 통과하면 확인이 부족한 영역을 조사할 단서가 된다.
살아남은 변경의 해석
테스트가 실패한 변경은 검사에 의해 발견된 사례다. 반대로 통과한 변경이 모두 누락된 버그를 뜻하지는 않는다. 원래 코드와 관찰 가능한 동작이 같은 변경도 있을 수 있다. 결과를 읽을 때 변경의 의미와 테스트의 단언을 함께 확인해야 하며 숫자를 높이는 일만 목표로 삼지 않는다.
다른 검사와의 관계
커버리지는 코드가 실행되었는지 보여 주지만 실행 결과를 충분히 확인했는지까지 알려 주지는 않는다. 변이 테스트는 이 차이를 조사하는 데 도움이 된다. 변경마다 검사를 반복하므로 일반 테스트보다 실행 비용이 커질 수 있다. 우선 핵심 로직의 작고 안정적인 검사에서 결과를 해석하고 적용 범위를 정하는 방식이 유용하다.
관련 문서
Coverlet / ReportGenerator / NUnit / MSTest