Skip to main content
QUICK REVIEW

[논문 리뷰] JUGE: An Infrastructure for Benchmarking Java Unit Test Generators

Xavier Devroey, Alessio Gambi|arXiv (Cornell University)|2021. 06. 14.
Software Testing and Debugging Techniques인용 수 8
한 줄 요약

JUGE는 2013년부터 개최된 대회를 통해 십여 개 이상의 도구를 포함해 다양한 도구와 기법을 대상으로 재현 가능하고 대규모의 평가를 가능하게 하는 표준화되고 컨테이너 기반의 인프라이다. 이는 벤치마킹 작업의 노력을 줄이고, 복제 가능성을 높이며, 학계와 산업계 간의 지식 공유를 향상시키기 위해 평가 워크플로우, 커버리지, 변형 메트릭스를 표준화한다.

ABSTRACT

Researchers and practitioners have designed and implemented various automated test case generators to support effective software testing. Such generators exist for various languages (e.g., Java, C#, or Python) and for various platforms (e.g., desktop, web, or mobile applications). Such generators exhibit varying effectiveness and efficiency, depending on the testing goals they aim to satisfy (e.g., unit-testing of libraries vs. system-testing of entire applications) and the underlying techniques they implement. In this context, practitioners need to be able to compare different generators to identify the most suited one for their requirements, while researchers seek to identify future research directions. This can be achieved through the systematic execution of large-scale evaluations of different generators. However, the execution of such empirical evaluations is not trivial and requires a substantial effort to collect benchmarks, setup the evaluation infrastructure, and collect and analyse the results. In this paper, we present our JUnit Generation benchmarking infrastructure (JUGE) supporting generators (e.g., search-based, random-based, symbolic execution, etc.) seeking to automate the production of unit tests for various purposes (e.g., validation, regression testing, fault localization, etc.). The primary goal is to reduce the overall effort, ease the comparison of several generators, and enhance the knowledge transfer between academia and industry by standardizing the evaluation and comparison process. Since 2013, eight editions of a unit testing tool competition, co-located with the Search-Based Software Testing Workshop, have taken place and used and updated JUGE. As a result, an increasing amount of tools (over ten) from both academia and industry have been evaluated on JUGE, matured over the years, and allowed the identification of future research directions.

연구 동기 및 목표

  • 자바 단위 테스트 생성기의 대규모 실험 평가를 설계하고 실행하며 재현하기 위해 요구되는 높은 노력을 줄이기 위해.
  • 다양한 테스트 생성 도구와 기법(예: 검색 기반, 무작위, 기호적 실행) 간의 표준화된 벤치마킹 프로세스를 확립하기 위해.
  • 복제, 비교, 장기적 결과 보관을 가능하게 하여 학계와 산업계 간의 지식 이동을 향상시키기 위해.
  • 산업계에서 자동화된 테스트 생성 도구를 도입할 때 근거 기반의 의사결정을 지원하기 위해.
  • 향후 다른 언어와 애플리케이션 도메인에서의 평가를 위한 기초를 마련하기 위해.

제안 방법

  • JUGE는 도커 기반의 컨테이너 기반 실행 환경을 제공하여 단위 테스트 생성기의 실행을 격리하고 표준화한다.
  • 다양한 생성기와의 인터페이스를 위해 플러그인 어댑터 메커니즘을 사용하여 블랙박스, 화이트박스, 그레이박스 도구의 통합을 가능하게 한다.
  • 입력(자바 소스 또는 바이너리), 시간 예산, 출력 분석을 표준화하며, 구조적 코드 커버리지와 변형 점수 메트릭스를 사용한다.
  • 확장성을 위해 병렬 처리를 지원하며, 벤치마크, 생성된 테스트, 중간 결과를 저장하여 복제와 향후 비교를 가능하게 한다.
  • 확장성, 구성 가능성, 프로덕션 준비 상태를 고려해 설계되었으며, 재현 가능성을 보장하기 위해 복제 팩키지 지원 기능을 제공한다.
  • 2013년부터 매년 SBST 워크숍와 공동 개최된 도구 대회를 통해 점진적으로 개선되어 왔다.

실험 결과

연구 질문

  • RQ1어떻게 자바 단위 테스트 생성기의 벤치마킹을 표준화하여 노력과 재현 가능성을 향상시킬 수 있는가?
  • RQ2다양한 기법과 설정 간에 단위 테스트 생성 도구를 비교할 때 발생하는 주요 과제는 무엇인가?
  • RQ3공동 인프라는 소프트웨어 테스팅 연구 분야에서 장기적인 경험적 평가와 복제를 어떻게 지원할 수 있는가?
  • RQ4공통의 벤치마킹 플랫폼이 학계와 산업계 간의 지식 이동을 얼마나 향상시킬 수 있는가?
  • RQ5표준화된 평가가 테스트 생성 및 도구 품질 분야의 향후 연구에 미치는 영향은 무엇인가?

주요 결과

  • JUGE는 SBST 도구 대회 여러 차례에 걸쳐 학계와 산업계 소속의 십여 개 이상의 단위 테스트 생성 도구를 성공적으로 평가하는 데 사용되었다.
  • 구조적 커버리지와 변형 점수와 같은 표준화된 메트릭스를 사용하여 일관성 있고 재현 가능하며 확장 가능한 생성기 평가가 가능했다.
  • 컨테이너화와 플러그인 어댑터 메커니즘의 사용으로 구성 오버헤드가 크게 감소하고 다양한 환경 간 이식성이 향상되었다.
  • 복제 팩키지와 암호화된 결과의 가용성 덕분에 경험적 발견의 투명성과 신뢰성이 향상되었으며, 이는 이전에 결과를 왜곡시켰던 잘못된 설정 문제(예: EvoSuite 연구에서의 사례)를 줄이는 데 기여했다.
  • JUGE는 검색 기반, 무작위, 기호적 실행을 포함한 다양한 기법을 여러 프로젝트와 벤치마크에서 지원함으로써 유연성을 입증했다.
  • 이 인프라는 연구자들이 이전 연구를 더 정확한 설정으로 재검토할 수 있도록 하여, 자동 생성된 테스트에서 테스트 냄새의 빈도가 과대평가되었음을 드러내는 데 기여했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.