Skip to main content
QUICK REVIEW

[논문 리뷰] Ticket coverage: putting test coverage into context

Jakob Rott, Rainer Niedermayr|arXiv (Cornell University)|2017. 05. 20.
Software Engineering Research참고 문헌 16인용 수 2
한 줄 요약

이 논문은 소프트웨어 티켓 내에서 변경된 메서드 중 자동화된 또는 수동 테스트에 의해 커버되는 비율을 측정하는 티켓 커버리지라는 메트릭을 소개한다. 이는 맥락 기반의 테스트 투명성을 제공한다. 650만 줄의 자바 코드를 포함한 산업 연구에서, 티켓 커버리지가 티켓 수준의 테스트 관행에서 심각한 테스트 갭을 성공적으로 드러냈다.

ABSTRACT

There is no metric that determines how well the implementation of a ticket has been tested. As a consequence, code changed within the context of a ticket might unintentionally remain untested and get into production. This is a major problem, because changed code is more fault-prone than unchanged code. In this paper, we introduce the metric ticket coverage which puts test coverage into the context of tickets. For each ticket, it determines the ratio of changed methods covered by automated or manual tests. We conducted an empirical study on an industrial system consisting of 650k lines of Java code and show that ticket coverage brings transparency into the test state of tickets and reveals relevant test gaps.

연구 동기 및 목표

  • 개별 소프트웨어 개발 티켓의 맥락에서 테스트 커버리지 평가를 위한 메트릭이 부족한 문제를 해결하기 위해.
  • 결함 발생 가능성이 더 높은, 테스트되지 않거나 충분히 테스트되지 않은 코드 변경 사항을 식별하기 위해.
  • 소프트웨어 개발 워크플로우에서 테스트 커버리지와 티켓 수준의 변경 사항을 직접 연결함으로써 테스트 투명성을 향상시키기 위해.
  • 실제 산업 시스템에서 티켓 커버리지가 테스트 갭을 탐지하는 데 효과적인지 경험적으로 평가하기 위해.

제안 방법

  • 메트릭은 티켓 내에서 변경된 메서드 중 자동화된 또는 수동 테스트에 의해 커버되는 비율을 계산한다.
  • 기존 테스트 세트의 버전 제어 및 테스트 커버리지 데이터를 사용하여 각 티켓의 소스 코드 변경 사항을 분석한다.
  • 다른 테스트 관행을 반영하기 위해 자동화된 테스트 커버리지와 수동 테스트 커버리지를 구분한다.
  • 티켓의 변경 사항을 메서드로 매핑하고, 각 변경된 메서드가 어떤 테스트에 의해 커버되는지 확인한다.
  • 정적 분석 및 테스트 인스트루멘테이션을 사용하여 메서드 수준의 커버리지 정보를 추출한다.
  • 실제 산업 시스템(650만 줄의 자바 코드)에서 메트릭을 평가한다.

실험 결과

연구 질문

  • RQ1티켓 내 코드 변경 사항은 어느 정도 실제로 테스트되고 있으며, 이는 티켓 간에 어떻게 다를까?
  • RQ2실제 산업 소프트웨어 개발 환경에서 티켓 커버리지가 테스트 갭을 탐지하는 데 얼마나 효과적인가?
  • RQ3테스트 커버리지의 분포는 어떻게 되며, 부족한 테스트가 반복되는 패턴이 있는가?
  • RQ4전통적인 코드 커버리지 메트릭과 비교해 볼 때, 티켓 커버리지는 의미 있는 테스트 부실함을 어떻게 드러내는가?

주요 결과

  • 티켓 커버리지는 심각한 테스트 갭을 성공적으로 드러내었으며, 많은 변경된 메서드가 여전히 테스트되지 않은 상태임을 보여주었다.
  • 티켓 내 코드 변경 사항의 상당 부분이 어떤 테스트에도 커버되지 않아 결함을 유발할 위험이 높아졌다.
  • 낮은 또는 테스트 커버리지가 없는 티켓을 강조함으로써, 테스트 관행에 대한 실질적인 통찰을 제공하였다.
  • 연구는 전통적인 코드 커버리지 메트릭만으로는 티켓 수준에서의 테스트 적정성을 포착하지 못함을 입증하였다.
  • 티켓 커버리지는 테스트 커버리지가 티켓 간에 균일하게 분포하지 않음을 폭 드러내었으며, 일부 티켓은 코드 변경이 있었음에도 불구하고 테스트 커버리지가 전혀 없었다.
  • 메트릭은 산업 환경에서 개별 티켓의 테스트 상태에 대한 투명성을 제공하는 데 효과적임을 입증하였다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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