위키득계정 ↗
기술

EvoSuite

EvoSuite기술
대상 언어
Java
출력
JUnit 테스트 모음
탐색 방식
유전 알고리즘
목표 예
분기 커버리지
EvoSuite는 Java 클래스의 JUnit 테스트 모음을 자동 생성하는 도구다. 유전 알고리즘을 이용한 탐색으로 분기 커버리지 같은 기준을 높이는 테스트를 찾는다.

테스트 모음을 탐색하기

하나의 정해진 입력 목록보다 테스트들의 구성을 탐색 대상으로 삼는다. 실행 결과를 평가하면서 커버리지 기준을 만족시키는 방향으로 테스트 모음을 개선한다. 어떤 커버리지 기준을 선택했는지에 따라 탐색이 집중하는 부분이 달라진다.

가독성과 회귀 단언

생성한 단위 테스트를 줄여 읽기 쉽게 만들고 대상 클래스의 현재 행동을 기록하는 단언문을 추가한다. 이러한 단언은 이후 변경을 감지하는 데 유용하지만, 현재 구현이 요구 사항에 맞다는 보증 자체는 아니다. 중요한 기대값은 별도 검토가 필요하다.

대상과 클래스패스

검사할 클래스나 패키지, 클래스패스 항목을 지정해 실행할 수 있다. 대상이 사용하는 의존성이 제대로 연결되어야 의미 있는 생성이 가능하다. 결과를 재현하려면 프로젝트 버전뿐 아니라 생성 옵션과 실행 환경도 함께 관리한다.

관련 문서

Randoop / Pynguin / Jazzer / Lincheck