[논문 리뷰] Issues with SZZ: An empirical assessment of the state of practice of defect prediction data collection.
이 논문은 결함 예측 연구에서 결함 유발 커밋을 레이블링하는 데 표준으로 사용되는 SZZ 알고리즘을 실증적으로 평가하며, 심각한 정확도 부족을 발견한다: SZZ가 식별한 버그 수정 커밋 중 실제로 버그를 수정하는 것은 50%에 불과하며, 릴리스 수준의 결함 레이블링에서 참 양성(false positive)의 비율이 참 음성과 거의 동일하다. 본 연구는 수동 검증과 개선된 히우리스틱을 통해 결함 레이블링을 향상시켜 널리 사용되는 결함 예측 데이터셋에 잠재적인 심각한 결함을 드러낸다.
Defect prediction research has a strong reliance on published data sets that are shared between researchers. The SZZ algorithm is the de facto standard for collecting defect labels for this kind of data and is used by most public data sets. Thus, problems with the SZZ algorithm may have a strong indirect impact on almost the complete state of the art of defect prediction. Recent research uncovered potential problems in different parts of the SZZ algorithm. Within this article, we provide an extensive empirical analysis of the defect labels created with the SZZ algorithm. We used a combination of manual validation and adopted or improved heuristics for the collection of defect data to establish ground truth data for bug fixing commits, improved the heuristic for the identification of inducing changes for defects, as well as the assignment of bugs to releases. We conducted an empirical study on 398 releases of 38 Apache projects and found that only half of the bug fixing commits determined by SZZ are actually bug fixing. Moreover, if a six month time frame is used in combination with SZZ to determine which bugs affect a release, one file is incorrectly labeled as defective for every file that is correctly labeled as defective. In addition, two defective files are missed. We also explored the impact of the relatively small set of features that are available in most defect prediction data sets, as there are multiple publications that indicate that, e.g., churn related features are important for defect prediction. We found that the difference of using more features is negligible.
연구 동기 및 목표
- 결함 예측 연구의 실제 표준인 SZZ 알고리즘이 생성한 결함 레이블의 정확도를 평가하기 위해.
- SZZ의 결함 유발 커밋 레이블링 및 릴리스에 결함를 할당하는 방법론의 결함을 식별하고 수정하기 위해.
- 기존 결함 예측 데이터셋의 기능 집합이 제한되어 있을 경우의 영향을 평가하기 위해, 특히 변화량(chnage) 관련 기능에 중점을 두고.
- 수동 검증과 개선된 히우리스틱을 활용해 더 신뢰할 수 있는 결함 예측 데이터의 기준(true ground truth)을 설정하기 위해.
제안 방법
- 38개의 Apache 프로젝트 398개 릴리스에 걸쳐 실증 연구를 수행하여 SZZ의 결함 레이블링 정확도를 평가하였다.
- 수동 검증을 통해 버그 수정 커밋의 기준(true ground truth)을 확립하고, SZZ의 잘못된 레이블링을 수정하였다.
- 시간 기반 및 변경 기반 기준을 활용하여 유도 변경 사항을 식별하고 릴리스에 결함를 할당하는 데 대한 히우리스틱을 개선했다.
- 특정 릴리스에 영향을 주는 결함를 평가하기 위해 6개월 간격의 윈도우를 적용하고, SZZ의 출력 결과를 기준과 비교하였다.
- 기능 집합 크기가 예측 성능에 미치는 영향을 평가하였으며, 특히 변화량 관련 기능에 중점을 두었다.
- SZZ 레이블링 데이터의 참 양성 및 참 음성 비율을 정량화하여 신뢰도를 측정하였다.
실험 결과
연구 질문
- RQ1실제로 SZZ가 식별한 버그 수정 커밋 중 실제로 결함을 수정하는 비율은 얼마이며, 그 비율은 어떠한가?
- RQ2특정 릴리스에서 파일을 결함 있는 것으로 레이블링할 때 SZZ를 사용할 경우 참 양성 및 참 음성 비율은 각각 얼마인가?
- RQ3릴리스에 결함를 할당하는 데 사용되는 다양한 히우리스틱은 레이블링 정확도에 어떤 영향을 미치는가?
- RQ4기존 결함 예측 데이터셋의 기능 집합이 제한되어 있을 경우, 그로 인해 예측 성능에 어떤 영향을 미치는가?
- RQ5기타 기능들과 비교했을 때 변화량 관련 기능이 결함 예측에 미치는 영향은 어느 정도인가?
주요 결과
- SZZ가 버그 수정 커밋으로 레이블링한 커밋 중 실제로 결함을 수정하는 것은 50%에 불과하여, 높은 참 양성 비율을 보임을 시사한다.
- 6개월 윈도우를 적용하여 특정 릴리스에서 결함 있는 파일을 판단할 경우, 정확하게 레이블링된 파일 한 건당 잘못 레이블링된 파일 한 건이 발생한다.
- 평가 과정에서 SZZ가 두 개의 결함 있는 파일을 완전히 놓쳤으며, 이는 비차별적인 참 음성 비율을 시사한다.
- 기능 집합이 더 많은 데이터셋과 더 적은 기능을 가진 데이터셋 간의 예측 성능 차이는 거의 없어, 기능 집합을 확장하는 데서 유의미한 이점이 없다는 것을 시사한다.
- 본 연구는 SZZ의 결함 레이블링 프로세스가 근본적으로 결함이 있음을 확인하며, 대부분의 기존 결함 예측 데이터셋의 신뢰성을 떨어뜨린다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.