JavaFuzz 활용 가이드

프로젝트 구성 및 디렉터리 구조

JavaFuzz는 Java Reflection API를 기반으로 한 클래스 퍼지 테스트 도구이다. 프로젝트의 전체적인 디렉터리 구성은 다음과 같다.

javafuzz/
├── examples/                  # 샘플 코드 모음
├── javafuzz-maven-plugin/     # Maven 플러그인 소스
├── .gitignore                 # Git 추적 제외 설정
├── LICENSE                    # 라이선스 (Apache-2.0)
├── README.md                  # 프로젝트 개요 및 사용법
├── javafuzz.iml               # IntelliJ IDEA 설정
└── pom.xml                    # Maven 빌드 설정
경로설명
examples/JavaFuzz를 이용한 퍼지 테스트 예제 코드
javafuzz-maven-plugin/Maven 플러그인 구현체
pom.xml의존성 및 빌드 라이프사이클 정의

실행 방법 및 옵션

JavaFuzz는 javafuzz.jar를 직접 실행하여 동작시킬 수 있다. CLI에서 다음과 같이 호출한다.

java -jar javafuzz.jar [-v] -c 대상클래스 [-e 타입] [-l 문자열길이]
옵션필수 여부기능
-v선택상세 모드: 예외 스택 트레이스를 모두 출력
-c필수퍼지 테스트 대상 클래스 지정
-e선택테스트할 타입 필터링
-l선택생성할 문자열의 최대 길이 설정

빌드 설정 파일

프로젝트의 핵심 설정은 pom.xml에서 관리된다. 아래는 주요 구성 요소를 담은 예시이다.

<?xml version="1.0" encoding="UTF-8"? >
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                        http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.fuzzitdev</groupId>
    <artifactId>javafuzz</artifactId>
    <version>0.7.5</version>

    <dependencies>
        <!-- 외부 라이브러리 의존성 -->
    </dependencies>

    <build>
        <plugins>
            <!-- 컴파일, 패키징, 배포 플러그인 -->
        </plugins>
    </build>
</project>
엘리먼트역할
modelVersionPOM 스키마 버전
groupId / artifactId / version프로젝트 식별자 (GAV)
dependencies필요한 외부 모듈 선언
build플러그인 및 빌드 단계 커스터마이징

태그: java JavaFuzz Fuzzing reflection maven

8월 28일 11:22에 게시됨