단순 삭제의 한계
실패를 일으킨 입력에서 일부 내용을 지우면 문법이나 다른 명세를 어길 수 있다. 이런 입력은 원래 버그의 재현 여부를 확인하는 데 도움이 되지 않을 수 있다.
생성기를 활용한 축소
명세를 알고 있는 생성기로 유효한 작은 입력을 만들도록 접근한다. 입력 자체에 축소 규칙을 적용하는 방식에서 입력을 만들어 낸 과정으로 탐색 대상을 옮긴다.
다른 실행 경로 찾기
주어진 생성기와 버그 입력을 만든 실행을 출발점으로 삼는다. 같은 생성기에서 더 작은 유효 입력을 만드는 다른 실행을 찾아 축소를 진행한다.
구조가 다른 입력의 평가
연구는 그래프와 딥러닝 모델 및 자바스크립트 프로그램 등을 포함한 다섯 평가에서 비교했다. 문법 구조만으로 표현하기 어려운 조건을 가진 입력도 축소 대상으로 다뤘다.
관련 문서
델타 디버깅 / Hypothesis 테스트 도구 / Csmith / libFuzzer / AFL++ / 소프트웨어 테스트