Fault Injection (예: Mutation Test)
▶ Mutation Test
- 뮤턴트(mutant): 결함이 있는 프로그램 (대상의 일부를 변경시켜서 만든다.)
:P(프로그램)과 M(뮤턴트)를 구분해주는 결과값을 내는 뮤턴트를 찾아서, 결함을 감지해내는지 테스트한다.
--> P와 M에 대해 다른 결과가 나오면(뮤턴트를 한 번 제대로 이용하고 나면): M is killed.
예: Mutant operator: SRV(scalar variable replacement)
▶ SRV(scalar variable replacement)
: 변수를 다른 값으로 바꿔서 뮤턴트를 만든다.
- muant operator: mutant operator를 이용하면, 다양한 뮤턴트를 만들 수 있다.
- Mutant score: 전체 뮤턴트 중, 결함 검출에 성공한 뮤턴트 비율
Mutation Test
: Mutation test는 뮤턴트를 굉장히 많이 만들어야 하기 때문에, 오버헤드가 커서 잘 사용하지 않는 방법이다.
- Muatation test 이용 예: 자동차 --> 사전에 예외적인 상황을 결함으로 만들어서 테스트한다.
출처: 이화여자대학교 박지현교수님 소프트웨어공학