• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2018 Fiscal Year Annual Research Report

Crowd Knowledge Ecosystems for Automatic Bug Fixing

Research Project

Project/Area Number 18H04097
Research InstitutionKyushu University

Principal Investigator

鵜林 尚靖  九州大学, システム情報科学研究院, 教授 (80372762)

Co-Investigator(Kenkyū-buntansha) 趙 建軍  九州大学, システム情報科学研究院, 教授 (20299580)
亀井 靖高  九州大学, システム情報科学研究院, 准教授 (10610222)
佐藤 亮介  九州大学, システム情報科学研究院, 助教 (10804677)
Project Period (FY) 2018-04-01 – 2022-03-31
Keywords人工知能 / 群衆知 / 自動バグ修正 / デバッグ / 深層学習
Outline of Annual Research Achievements

ソフトウェア工学における重要研究課題の一つに、人工知能に基づいたソフトウェア開発の自動化がある。その中でも自動バグ修正は近年最も注目されている研究分野である。一方、現状の自動バグ修正技術は発展途上にあり、決定打となる手法はまだ確立されていない。現時点では様々なアプローチから可能性を探る必要がある。そのため、初年度は以下に示すように広くテーマを設定し研究に取り組んだ。

1) 群衆知ベースの自動バグ修正機構: OSSリポジトリからバグ混入時コードとバグ修正後コードの差分を抽出し、Q&A形式の群衆知(バグ修正ノウハウ)に変換する仕組みを試作した。今後、深層学習を用いて、群衆知から自動バグ修正モデルを生成する。
2) 形式検証ベースの自動バグ修正機構: 形式検証ツールの一つであるモデル検査器から出力される反例を使用した「バグ同定」「コード修正(現状は条件式のみ)」「モデル検査器による再検証」の繰り返しサイクルからなる自動バグ修正機構を考案した。モデル検査器から反例が出力されなくなった時点でバグ修正が完了する。今後、ツールの試作に入る。
3) 機械学習システムへの適用: 現在、機械学習を含むシステム開発が急増している。本研究でも、この分野における自動バグ修正に取り組むことにした。バグ修正能力はテストの網羅率や質に左右されるため、初年度は機械学習システムにおけるテスト技術について研究した。今後、これらのテスト技術を用いた自動バグ修正技術の開発を行う。
4) 実証評価: 1) 2) 3) の技術開発と並行して、現状の自動バグ修正ツールがどの程度有効なのかについてOSSと企業ソフトウェアを対象に実証評価を実施した。評価の結果、現状の自動バグ修正ツールには様々な課題が存在することが判明した。今後、評価結果を 1) 2) 3) にフィードバックし、自動バグ修正技術をブラッシュアップしていく。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

本研究では特に「群衆知ベースの自動バグ修正機構」の開発に主軸を置いており、初年度は当初の予定通りOSSリポジトリから群衆知(現時点ではバグ修正時のコード差分情報)を抽出することができた。計画では2019年度以降の予定になっていたが、提案アプローチの実現可能性を探るため、抽出した群衆知を学習データとして深層学習による自動バグ修正モデルを一部試行的に作成してみた。さらにどの程度の修正能力を持つのか、どのような課題があるのかについても調査した。その結果、「自動抽出による群衆知にはノイズが多数存在する」「抽出可能な知識の分布は偏っている」等が分かった。2019年度以降、これらの問題を緩和する方法について検討する。

Strategy for Future Research Activity

当初の予定通り、2019年度以降、群衆知に基づいた自動バグ修正モデルの開発に取り組む。なお、研究計画書には明確に含まれていなかったが、「自動バグ修正ツール適用に関する実証的評価」「昨今大きく注目されている機械学習システムにおける自動バグ修正」についても研究開発に取り組むことにした。自動バグ修正に関する研究はまだ揺籃期にあり、色々なアプローチを試してみる必要性があると判断した。

  • Research Products

    (20 results)

All 2019 2018

All Journal Article (5 results) (of which Int'l Joint Research: 4 results,  Peer Reviewed: 5 results,  Open Access: 1 results) Presentation (15 results)

  • [Journal Article] DeepCT: Tomographic Combinatorial Testing for Deep Learning Systems2019

    • Author(s)
      Lei Ma, Felix Juefei-Xu, Minhui Xue, Bo Li, Li Li, Yang Liu, Jianjun Zhao
    • Journal Title

      26th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2019), ERA Track

      Volume: - Pages: 535-539

    • DOI

      10.1109/SANER.2019.8668044

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] Stack Overflowを利用した自動バグ修正の検討2018

    • Author(s)
      廣瀬 賢幸, 鵜林 尚靖, 亀井 靖高, 佐藤 亮介
    • Journal Title

      日本ソフトウェア科学会誌 コンピュータソフトウェア

      Volume: 35-4 Pages: 144-150

    • DOI

      https://doi.org/10.11309/jssst.35.144

    • Peer Reviewed / Open Access
  • [Journal Article] DeepGauge: Multi-Granularity Testing Criteria for Deep Learning Systems2018

    • Author(s)
      Lei Ma, Felix Juefei-Xu, Fuyuan Zhang, Jiyuan Sun, Chunyang Chen, Ting Su, Minhui Xue, Bo Li, Li Li, Yang Liu, Jianjun Zhao, Yadong Wang
    • Journal Title

      33th IEEE/ACM Conference on Automated Software Engineering (ASE 2018)

      Volume: - Pages: 120-131

    • DOI

      10.1145/3238147.3238202

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] DeepMutation: Mutation Testing of Deep Learning Systems2018

    • Author(s)
      Lei Ma, Fuyuan Zhang, Jiyuan Sun, Minhui Xue, Bo Li, Felix Juefei-Xu, Chao Xie, Li Li, Yang Liu, Jianjun Zhao, Yadong Wang
    • Journal Title

      29th IEEE International Symposium on Software Reliability Engineering (ISSRE 2018)

      Volume: - Pages: 100-111

    • DOI

      10.1109/ISSRE.2018.00021

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] DeepGraph: A PyCharm Tool for Visualizing and Understanding Deep Learning Models2018

    • Author(s)
      Qiang Hu, Lei Ma, Jianjun Zhao
    • Journal Title

      25th Asia-Pacific Software Engineering Conference (APSEC 2018), ERA Track

      Volume: - Pages: 628-632

    • Peer Reviewed / Int'l Joint Research
  • [Presentation] 企業内ソースコードへの自動バグ修正技術適用に向けて2019

    • Author(s)
      池田 翔
    • Organizer
      情報処理学会ソフトウェア工学研究会 ウィンターワークショップ2019・イン・福島飯坂
  • [Presentation] 自動バグ修正におけるソースコード修正履歴の影響理解2019

    • Author(s)
      首藤 巧
    • Organizer
      情報処理学会ソフトウェア工学研究会 ウィンターワークショップ2019・イン・福島飯坂
  • [Presentation] 関数型プログラムのための反例による条件式の自動修正2019

    • Author(s)
      松井 健
    • Organizer
      情報処理学会ソフトウェア工学研究会 ウィンターワークショップ2019・イン・福島飯坂
  • [Presentation] 関数型プログラムの条件式のための反例を用いた自動修正2019

    • Author(s)
      松井 健, 佐藤 亮介, 鵜林 尚靖, 亀井 靖高
    • Organizer
      電子情報通信学会 ソフトウェアサイエンス研究会 信学技報 SS2018-80
  • [Presentation] 企業内ソースコードに対する自動バグ修正技術適用の試み2019

    • Author(s)
      池田 翔, 中野 大扉, 亀井 靖高, 佐藤 亮介, 鵜林 尚靖, 吉武 浩, 矢川 博文
    • Organizer
      電子情報通信学会 ソフトウェアサイエンス研究会 信学技報 SS2018-84
  • [Presentation] ソースコード修正履歴が自動バグ修正の結果に与える影響の分析2019

    • Author(s)
      首藤 巧, 亀井 靖高, 鵜林 尚靖, 佐藤 亮介
    • Organizer
      情報処理学会 ソフトウェア工学研究会 研究報告 2019-SE-201, No.16
  • [Presentation] 関数型プログラムの条件式に関するバグの自動修正2019

    • Author(s)
      松井 健, 佐藤 亮介, 鵜林 尚靖, 亀井 靖高
    • Organizer
      情報処理学会 第81回全国大会, 5M-03
  • [Presentation] Stack Overflow 記事の充実に向けたソースコード変更履歴の利用可能性評価2019

    • Author(s)
      西中 隆志郎, 佐藤 亮介, 亀井 靖高, 鵜林 尚靖
    • Organizer
      情報処理学会 第81回全国大会, 6N-08
  • [Presentation] ソースコード修正履歴を用いた自動バグ修正手法の性能理解2019

    • Author(s)
      首藤 巧, 亀井 靖高, 佐藤 亮介, 鵜林 尚靖
    • Organizer
      情報処理学会 第81回全国大会, 7N-03
  • [Presentation] 自動バグ修正技術の企業内ソースコードへの適用に向けて2019

    • Author(s)
      池田 翔, 中野 大扉, 亀井 靖高, 佐藤 亮介, 鵜林 尚靖, 吉武 浩, 矢川 博文
    • Organizer
      情報処理学会 第81回全国大会, 7N-04
  • [Presentation] 機械学習工学が解決すべき8つの研究課題2018

    • Author(s)
      鵜林 尚靖
    • Organizer
      日本ソフトウエア科学会 第1回機械学習工学ワークショップ (MLSE 2018)
  • [Presentation] StackOverflow投稿を用いた深層学習による自動バグ修正(ポスター)2018

    • Author(s)
      高橋 裕太, 佐藤 亮介, 亀井 靖高, 鵜林 尚靖
    • Organizer
      情報処理学会 ソフトウェアエンジニアリングシンポジウム2018 (SES 2018)
  • [Presentation] ソースコード履歴情報によるStackOverflow記事の充実に向けて(ポスター)2018

    • Author(s)
      西中 隆志郎, 佐藤 亮介, 亀井 靖高, 鵜林 尚靖
    • Organizer
      情報処理学会 ソフトウェアエンジニアリングシンポジウム2018 (SES 2018)
  • [Presentation] Stack Overflow投稿を用いた深層学習による自動バグ修正にむけて2018

    • Author(s)
      高橋 裕太, 佐藤 亮介, 亀井 靖高, 鵜林 尚靖
    • Organizer
      情報処理学会 ソフトウェア工学研究会 研究報告 2018-SE-200, No.3
  • [Presentation] ソースコード変更履歴によるStack Overflow記事の充実に向けて2018

    • Author(s)
      西中 隆志郎, 佐藤 亮介, 亀井 靖高, 鵜林 尚靖
    • Organizer
      情報処理学会 ソフトウェア工学研究会 研究報告 2018-SE-200, No.10

URL: 

Published: 2019-12-27  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi