研究課題/領域番号 |
18H04097
|
研究機関 | 九州大学 |
研究代表者 |
鵜林 尚靖 九州大学, システム情報科学研究院, 教授 (80372762)
|
研究分担者 |
趙 建軍 九州大学, システム情報科学研究院, 教授 (20299580)
亀井 靖高 九州大学, システム情報科学研究院, 准教授 (10610222)
佐藤 亮介 九州大学, システム情報科学研究院, 助教 (10804677)
|
研究期間 (年度) |
2018-04-01 – 2022-03-31
|
キーワード | 人工知能 / 群衆知 / 自動バグ修正 / デバッグ / 深層学習 |
研究実績の概要 |
ソフトウェア工学における重要研究課題の一つに、人工知能に基づいたソフトウェア開発の自動化がある。その中でも自動バグ修正は近年最も注目されている研究分野である。一方、現状の自動バグ修正技術は発展途上にあり、決定打となる手法はまだ確立されていない。現時点では様々なアプローチから可能性を探る必要がある。そのため、初年度は以下に示すように広くテーマを設定し研究に取り組んだ。
1) 群衆知ベースの自動バグ修正機構: OSSリポジトリからバグ混入時コードとバグ修正後コードの差分を抽出し、Q&A形式の群衆知(バグ修正ノウハウ)に変換する仕組みを試作した。今後、深層学習を用いて、群衆知から自動バグ修正モデルを生成する。 2) 形式検証ベースの自動バグ修正機構: 形式検証ツールの一つであるモデル検査器から出力される反例を使用した「バグ同定」「コード修正(現状は条件式のみ)」「モデル検査器による再検証」の繰り返しサイクルからなる自動バグ修正機構を考案した。モデル検査器から反例が出力されなくなった時点でバグ修正が完了する。今後、ツールの試作に入る。 3) 機械学習システムへの適用: 現在、機械学習を含むシステム開発が急増している。本研究でも、この分野における自動バグ修正に取り組むことにした。バグ修正能力はテストの網羅率や質に左右されるため、初年度は機械学習システムにおけるテスト技術について研究した。今後、これらのテスト技術を用いた自動バグ修正技術の開発を行う。 4) 実証評価: 1) 2) 3) の技術開発と並行して、現状の自動バグ修正ツールがどの程度有効なのかについてOSSと企業ソフトウェアを対象に実証評価を実施した。評価の結果、現状の自動バグ修正ツールには様々な課題が存在することが判明した。今後、評価結果を 1) 2) 3) にフィードバックし、自動バグ修正技術をブラッシュアップしていく。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本研究では特に「群衆知ベースの自動バグ修正機構」の開発に主軸を置いており、初年度は当初の予定通りOSSリポジトリから群衆知(現時点ではバグ修正時のコード差分情報)を抽出することができた。計画では2019年度以降の予定になっていたが、提案アプローチの実現可能性を探るため、抽出した群衆知を学習データとして深層学習による自動バグ修正モデルを一部試行的に作成してみた。さらにどの程度の修正能力を持つのか、どのような課題があるのかについても調査した。その結果、「自動抽出による群衆知にはノイズが多数存在する」「抽出可能な知識の分布は偏っている」等が分かった。2019年度以降、これらの問題を緩和する方法について検討する。
|
今後の研究の推進方策 |
当初の予定通り、2019年度以降、群衆知に基づいた自動バグ修正モデルの開発に取り組む。なお、研究計画書には明確に含まれていなかったが、「自動バグ修正ツール適用に関する実証的評価」「昨今大きく注目されている機械学習システムにおける自動バグ修正」についても研究開発に取り組むことにした。自動バグ修正に関する研究はまだ揺籃期にあり、色々なアプローチを試してみる必要性があると判断した。
|