Core Concepts
실제 소프트웨어 프로젝트에서 다중 결함을 식별하기 위해 테스트 케이스 이식과 결함 위치 변환 기법을 사용하여 Defects4J와 BugsInPy 데이터셋을 확장하였다.
Abstract
이 논문은 Defects4J와 BugsInPy 데이터셋을 확장하여 실제 소프트웨어 프로젝트에서 다중 결함을 식별하는 방법을 제안한다.
Defects4J와 BugsInPy 데이터셋은 각각 Java와 Python 프로젝트에서 추출한 버그 정보를 제공하지만, 대부분 단일 결함만을 포함하고 있다. 이는 실제 소프트웨어 프로젝트에서 발견되는 다중 결함 문제를 반영하지 못한다.
이 연구에서는 테스트 케이스 이식과 결함 위치 변환 기법을 사용하여 Defects4J와 BugsInPy 데이터셋에 다중 결함 정보를 추가하였다.
Defects4J 데이터셋의 경우 311개 버전에서 평균 9.2개의 결함을, BugsInPy 데이터셋의 경우 501개 버전에서 평균 18.6개의 결함을 식별하였다.
이렇게 확장된 데이터셋은 다중 결함 식별, 위치 추적, 테스트 케이스 추출 등의 기능을 제공하여 결함 위치화 및 프로그램 수정 기법 평가에 활용될 수 있다.
Stats
Defects4J 데이터셋의 경우 각 버전당 평균 9.2개의 결함이 식별되었다.
BugsInPy 데이터셋의 경우 각 버전당 평균 18.6개의 결함이 식별되었다.
Quotes
"실제 소프트웨어 프로젝트(Defects4J와 BugsInPy에 사용된 프로젝트 포함)는 일반적으로 상호작용하고 숨길 수 있는 다중 결함을 포함하고 있다."
"단일 결함 평가 데이터셋의 사용은 평가 자체의 타당성에 대한 중대한 위협을 초래한다."