위키득계정 ↗
기술

Stryker NET

Stryker NET기술
분야
변이 테스트
대상
닷넷 프로젝트
방법
임시 코드 변경과 테스트
관찰점
변경을 발견하는 검사
Stryker NET은 닷넷 코드에 작은 변경을 가한 뒤 기존 테스트가 이를 발견하는지 확인하는 변이 테스트 도구다. 실행된 코드의 양을 넘어 테스트의 검출 능력을 살펴보는 데 쓰인다.

테스트를 시험하는 방법

일반적인 테스트는 프로그램이 기대한 동작을 하는지 확인한다. 변이 테스트는 프로그램 일부를 의도적으로 바꿔 기존 검사가 그 차이를 알아채는지 살핀다. Stryker NET은 이러한 변경과 검사 실행을 자동화한다. 변경 후에도 검사가 통과하면 확인이 부족한 영역을 조사할 단서가 된다.

살아남은 변경의 해석

테스트가 실패한 변경은 검사에 의해 발견된 사례다. 반대로 통과한 변경이 모두 누락된 버그를 뜻하지는 않는다. 원래 코드와 관찰 가능한 동작이 같은 변경도 있을 수 있다. 결과를 읽을 때 변경의 의미와 테스트의 단언을 함께 확인해야 하며 숫자를 높이는 일만 목표로 삼지 않는다.

다른 검사와의 관계

커버리지는 코드가 실행되었는지 보여 주지만 실행 결과를 충분히 확인했는지까지 알려 주지는 않는다. 변이 테스트는 이 차이를 조사하는 데 도움이 된다. 변경마다 검사를 반복하므로 일반 테스트보다 실행 비용이 커질 수 있다. 우선 핵심 로직의 작고 안정적인 검사에서 결과를 해석하고 적용 범위를 정하는 방식이 유용하다.

관련 문서

Coverlet / ReportGenerator / NUnit / MSTest