研究課題/領域番号 |
26280025
|
研究機関 | 国立研究開発法人産業技術総合研究所 |
研究代表者 |
森 彰 国立研究開発法人産業技術総合研究所, 情報技術研究部門, 研究グループ長 (30311682)
|
研究分担者 |
橋本 政朋 国立研究開発法人理化学研究所, 計算科学研究機構, 研究員 (60357770)
|
研究期間 (年度) |
2014-04-01 – 2018-03-31
|
キーワード | 差分デバッギング / 木差分計算 / ソースコード変更解析 / 構文解析木 |
研究実績の概要 |
本年度は、木差分計算により得られるバージョンごとの構文解析木の間の木編集系列を、違いに独立なグループに分割した上で二分探索を行うことにより、回帰バグの原因となったソースコード編集箇所を、ピンポイントで同定する差分デバッギングの開発に取り組んだ。分割された変更グループを選択的に適用して、仮想的な中間バージョンを構成して実行し、問題となっているテストの結果を確認していくことが必要になるが、オブジェクト指向プログラミング言語であるJavaを対象としたため、変更の依存関係を考慮したグループ化を行わなければ、生成された中間バージョンがビルド・実行可能なものにならないという状況が頻発した。この問題を回避するために、オブジェクト指向言語に特有のさまざまな依存性を考慮した分割ルールを定義した。およそ100個に登るこうしたルールを適用することで、高い頻度でビルド・実行可能な中間バージョンを生成できるようになり、結果として、ソースコード行数10万行を超えるような実用規模のプロジェクトに対して、回帰バグの発生箇所を正確に同定できることがわかった。並行して、本技術の他言語への応用を試みる過程で、ハードウェア記述言語HDLの構文解析器を開発し、その類似コード検知への応用を試みた。また、構文解析木をベースとした畳み込みニューラルネットによる学習アルゴリズムの調査を行い、教師なし学習によって、構文解析木のノードにある記号のベクトル表現を自動抽出する技術の再現実験を行なった。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
差分デバッギング技術の研究については、変更の依存関係を考慮した木編集系列のグループ化を可能にするルールの定義に時間を要したため、成果をとりまとめて学会等へ投稿する時間がなくなった。同様に、自動バグ予測技術の研究についても、既存研究の差再現実験に止まっている。これらについては、期間を延長して次年度に取り組むこととした。
|
今後の研究の推進方策 |
差分デバッギング技術については、他の複数の事例について実験を行い、開発ツールの性能向上を図るとともに、実験結果の評価をまとめて国際会議への投稿を行う。自動バグ予測や変更予測の技術については、木構造を対象にした機械学習技術の応用をもとに研究を進める。
|
次年度使用額が生じた理由 |
技術開発に時間を要し、年度内に成果をとりまとめて発表することができなかったため、予定していた旅費を使用することができなかったた。
|
次年度使用額の使用計画 |
成果をとりまとめて、国内の研究会(2件)と国外の国際会議(2件)で発表するための旅費として使用する。
|