프로젝트 구성 및 디렉터리 구조
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>
| 엘리먼트 | 역할 |
|---|---|
modelVersion | POM 스키마 버전 |
groupId / artifactId / version | 프로젝트 식별자 (GAV) |
dependencies | 필요한 외부 모듈 선언 |
build | 플러그인 및 빌드 단계 커스터마이징 |