Core Concepts
ソフトウェアバグの特定において、従来のスペクトラムベースの障害特定手法は、失敗テストの存在を前提としているため、失敗テストがない場合の有効性が低い。本研究では、バグレポートに含まれるスタックトレースを活用することで、失敗テストがない場合でもバグの特定精度を向上させることができる。
Abstract
本研究は、ソフトウェアバグの特定における従来手法の課題と、スタックトレースを活用した新しい手法の提案を行っている。
主な結果は以下の通り:
バグレポートに含まれるクラッシュレポートの中で、わずか3.33%しか失敗テストを持っていない。このため、従来のスペクトラムベースの障害特定手法は有効に機能しない。
98.3%のバグフィックスの意図がスタックトレースの例外と直接関連しており、78.3%のバグメソッドがスタックトレースから平均0.34メソッドコールで到達可能である。これはスタックトレースがバグ位置の特定に有用な情報を提供することを示している。
提案手法のSBESTは、従来のスタックトレースランキングに比べ、Mean Average Precision(MAP)を32.22%、Mean Reciprocal Rank(MRR)を17.43%向上させることができた。これは、スタックトレース情報とテストカバレッジデータを統合することで、バグ位置の特定精度が向上したことを示している。
Stats
失敗テストを持つバグレポートは全体の3.33%しかない
バグフィックスの98.3%がスタックトレースの例外と直接関連
78.3%のバグメソッドがスタックトレースから平均0.34メソッドコールで到達可能
Quotes
"ソフトウェアバグの特定において、従来のスペクトラムベースの障害特定手法は、失敗テストの存在を前提としているため、失敗テストがない場合の有効性が低い。"
"98.3%のバグフィックスの意図がスタックトレースの例外と直接関連しており、78.3%のバグメソッドがスタックトレースから平均0.34メソッドコールで到達可能である。"
"提案手法のSBESTは、従来のスタックトレースランキングに比べ、Mean Average Precision(MAP)を32.22%、Mean Reciprocal Rank(MRR)を17.43%向上させることができた。"