2017 Fiscal Year Annual Research Report
A Search Based Change Analysis Method for Large-Scale Software
Project/Area Number |
26280025
|
Research Institution | National Institute of Advanced Industrial Science and Technology |
Principal Investigator |
森 彰 国立研究開発法人産業技術総合研究所, 情報・人間工学領域, 研究グループ長 (30311682)
|
Co-Investigator(Kenkyū-buntansha) |
橋本 政朋 千葉工業大学, 人工知能・ソフトウェア技術研究センター, 上席研究員 (60357770)
|
Project Period (FY) |
2014-04-01 – 2018-03-31
|
Keywords | 差分デバッギング / フォールトローカライゼーション / 自動パッチ生成 / 類似コード検索 |
Outline of Annual Research Achievements |
本年度は、これまでの研究成果を用いて、木差分計算で得られる構文解析木の編集系列を二分探索して、不具合の混入箇所を同定する差分デバッギング技術の研究に取り組んだ。Defects4Jと呼ばれるJavaプロジェクトのバグ修正パッチのデータベースを対象に、人手によるパッチ抽出と差分デバッギングによる自動抽出の結果を比べたところ、多くの場合において、人手による修正と遜色ない結果が得られた。人手による作業が信頼できない例や、バグ判定のためのテストが適切でない例も見られ、既存の不具合対策の問題点をあぶり出す結果となった。実際のプロジェクトで発生した縮退バグを修正するパッチ自動生成の実験も行い、成果をまとめてソフトウェア工学のトップ国際会議会議に投稿した。組織内で開発中のロボットシステムへの応用したところ、通常のテキスト差分を用いた手法であっても、Java言語とC++言語の双方で有効であることが確認できた。また、過去の変更履歴データから、不具合修正のパターンを機械学習して、同定された不具合の修正を自動的に行う自動バグ修正技術の研究を試みた。ソースコードをテキストととらえ、自然言語処理で用いられている同意文判定の手法を適用したところ、訓練データ数が不足しているという問題はあったものの、構文的に異なっても意味的に類似しているコードを選ぶ技術として有効であることが確認できた。上述の差分デバッギングの技術を用いて、正しく機能している既存の類似コードをもとに、手元の不具合を修正することができるという点で、重要な技術を開発することができた。関連する類似コード検索の研究として、ハードウェア記述言語を対象とした実験を行い、類似コード検索の手法が、特定のプログラム言語に依存しないことを示した。この研究結果は、国内学会誌にて発表を行なった。
|
Research Progress Status |
29年度が最終年度であるため、記入しない。
|
Strategy for Future Research Activity |
29年度が最終年度であるため、記入しない。
|