Skip to main content
QUICK REVIEW

[논문 리뷰] IBIR: Bug Report driven Fault Injection

Ahmed Khanfir, Anil Koyuncu|arXiv (Cornell University)|2020. 12. 11.
Software Testing and Debugging Techniques참고 문헌 64인용 수 6
한 줄 요약

iBiR는 사용자 보고된 버그 리포트에서 코드 복구 템플릿을 역설계함으로써 실제적인, 대상 지정 소프트웨어 결함을 생성하는 결함 주입 도구입니다. 이는 실제 세계의 결함을 모방하는 정밀한 결함 주입을 가능하게 하며, 기존의 변형 테스팅보다 50배 이상 높은 36%의 결함 결합도를 달성하면서도 원래의 결함와 높은 의미적 유사성을 유지합니다.

ABSTRACT

Much research on software engineering and software testing relies on experimental studies based on fault injection. Fault injection, however, is not often relevant to emulate real-world software faults since it "blindly" injects large numbers of faults. It remains indeed challenging to inject few but realistic faults that target a particular functionality in a program. In this work, we introduce IBIR, a fault injection tool that addresses this challenge by exploring change patterns associated to user-reported faults. To inject realistic faults, we create mutants by retargeting a bug report driven automated program repair system, i.e., reversing its code transformation templates. IBIR is further appealing in practice since it requires deep knowledge of neither of the code nor the tests, but just of the program's relevant bug reports. Thus, our approach focuses the fault injection on the feature targeted by the bug report. We assess IBIR by considering the Defects4J dataset. Experimental results show that our approach outperforms the fault injection performed by traditional mutation testing in terms of semantic similarity with the original bug, when applied at either system or class levels of granularity, and provides better, statistically significant, estimations of test effectiveness (fault detection). Additionally, when injecting 100 faults, IBIR injects faults that couple with the real ones in 36% of the cases, while mutants from mutation testing inject less than 1%. Overall, IBIR targets real functionality and injects realistic and diverse faults.

연구 동기 및 목표

  • 코드베이스 전반에 걸쳐 문법적 변형을 무작위로 주입하는 기존의 결함 주입 기법이 현실성 부족을 겪는 문제를 해결하기 위해.
  • 실제 사용자 보고된 버그와 그 복구 패턴에 초점을 맞춤으로써 결함의 대표성을 향상시키기 위해.
  • 버그 리포트에 기술된 특정 功能을 대상으로 함으로써 결함 주입의 비용을 낮추고 관련성을 높이기 위해.
  • 시스템의 소스 코드나 테스트 세트에 대한 깊은 지식이 필요 없는 실용적이고 저비용의 결함 주입 방법을 제공하기 위해.

제안 방법

  • iBiR는 정보 검색(IR) 기반의 결함 위치 특정 기법을 사용하여 주어진 버그 리포트에 언급된 코드 위치를 식별합니다.
  • Nopol과 같은 복구 시스템으로부터 복구 템플릿을 역설계하여 실제 수정 사례를 반영한 현실적인 결함 패턴을 생성합니다.
  • 이러한 복구 변환을 역순으로 적용함으로써 결함를 주입하여 실제 결함을 모방하는 변종(mutants)을 생성합니다.
  • 실제 버그 복구에서의 빈도와 위치를 기반으로 결함 패턴의 우선순위를 정함으로써 다양성과 현실성을 확보합니다.
  • 시스템 또는 클래스 수준의 세부성으로 작동하며, 각 대상 버그 리포트당 100개의 결함을 주입하여 통계적 신뢰성을 확보합니다.
  • 소스 코드나 테스트 세트에 대한 접근이 필요 없이 버그 리포트만으로도 작동하므로 광범위한 적용 가능성을 확보합니다.

실험 결과

연구 질문

  • RQ1버그 리포트 기반 결함 주입이 기존의 변형 테스팅보다 실제 결함과 더 높은 의미적 유사성을 가지는가?
  • RQ2iBiR가 주입한 결함이 실제 결함과 얼마나 높은 결합도를 보이는가(즉, 동일한 테스트 케이스에 의해 탐지되는가)?
  • RQ3iBiR는 기존의 변형 테스팅보다 테스트 효과성(결함 탐지)을 더 정확하게 추정할 수 있는가?
  • RQ4iBiR는 시스템의 소스 코드나 테스트 세트에 대한 깊은 지식 없이도 다양한 현실적인 결함을 생성할 수 있는가?

주요 결과

  • iBiR는 실제 결함과 중앙값 의미적 유사도 0.58을 달성하였으며, 기존의 변형 테스팅이 0.0을 기록한 것과 비교해 유의미하게 높습니다.
  • iBiR가 주입한 결함 중 36%가 실제 결함과 결합되었으며, 기존의 변형 테스팅은 1% 미만이었습니다.
  • iBiR의 결함 결합률은 변형 테스팅 대비 약 50배 높아 실제 결함 행동과의 강한 일치를 시사합니다.
  • iBiR는 결함 탐지 비율을 측정함으로써 테스트 효과성 추정에 통계적으로 유의미한 향상을 제공합니다.
  • 시스템 지식이 최소한으로 필요한 현실적인 결함 주입을 가능하게 하며, 버그 리포트만으로도 작동합니다.
  • iBiR의 접근법은 통제된 실험을 지원하며, 실증 소프트웨어 공학 연구에서 실제 결함의 유효한 대체 수 Mittel로 활용될 수 있습니다.

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

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

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

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