欠陥限局および自動プログラム修正のための自動テスト生成と実行経路を用いたテスト選択

抄録

デバッグ作業の負担を軽減することを目的として,欠陥限局に関する研究が盛んに行われている.欠陥限局とはプログラム中の欠陥箇所を特定する技術である.Spectrum-Based Fault Localization(以下SBFL)は欠陥限局の手法の1つで,各テストケースの成否と実行経路をもとに欠陥箇所を特定する.SBFLの精度はテストケースの品質に影響され,テストケースを追加することでSBFLの精度は向上する.しかし,SBFLは自動プログラム修正にも利用されるため,無作為にテストケースを追加するとバグ修正に時間がかかったり時間切れにより修正できなかったりする可能性がある.そのためSBFLに役立つテストケースのみを利用するべきである.本研究では,既存のテストケースと自動生成されたテストケースから実行経路が重複しないようにテストケースを選択することで,テストの実行時間の増加を抑えつつ,欠陥限局の精度を向上させる手法を提案する.実バグのデータセットDefects4Jを対象に実験を行い,提案手法により選択されたテストケースを用いることで,56.8\%の欠陥において精度が向上することを確認した.テストの実行時間の増加は中央値で最大でも7.0秒の増加に抑えられ,既存のテストケースと自動生成されたテストケースを全て用いた場合と比べて4.9秒短縮できた.また提案手法により選択されたテストケースを用いることで,既存のテストケースと自動生成されたテストケースを全て用いた場合と比べて,より多くのバグにおいてパッチを生成できることを確認した.

収録刊行物

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ