위키득계정 ↗
기술

Jazzer

Jazzer기술
대상
JVM 플랫폼
기반
libFuzzer
연동
JUnit
입력 예
기본형 문자열 배열
Jazzer는 JVM 프로그램을 대상으로 하는 프로세스 내부 커버리지 유도 퍼저다. JUnit과 연결해 단위 테스트 옆에 퍼징 테스트를 작성할 수 있다.

테스트 메서드에 입력 생성 연결

퍼징 테스트로 표시한 메서드에 다양한 인자를 생성하고 변형한다. 문자열이나 배열처럼 구조가 있는 값도 다룬다. 테스트 코드에는 대상 호출과 확인할 조건을 작성하며, 생성 가능한 타입과 제약 표현은 지원 범위에 맞춰 사용한다.

커버리지에 따른 탐색

실행에서 얻은 정보가 다음 입력 변형을 안내한다. 같은 종류의 경로만 반복하기보다 새로운 동작을 탐색하도록 구성하는 방식이다. 잘못된 값에 대한 기대 예외를 어떻게 처리하는지도 테스트의 실패 판정에 영향을 준다.

기존 검사와 함께 유지

일반 테스트와 퍼징 테스트를 같은 프로젝트에서 관리할 수 있다. 발견한 실패 입력을 재현하고 회귀 검사에 포함하면 수정이 유지되는지 확인하기 쉽다. 퍼징 실행 시간과 탐색한 입력 범위를 넘어 모든 JVM 동작이 증명되었다고 해석해서는 안 된다.

관련 문서

FuzzTest / Jcstress / Lincheck / Java PathFinder