情報処理学会研究報告
IPSJ SIG Technical Report

ソフトウェア開発者にフィードバックを与えるチャットボットの実現に向けて
平尾 俊貴1,a)

伊原 彰紀1,b)

上田 裕己1,c)

桂川 大輝1,d)Dong Wang1,e)

松本 健一1,f)

概要：近年，ソフトウェア開発プロセスの効率化を目的として，Bamboo や Jenkins などの継続的インテ
グレーション (Contenious Integration) システムが，ソフトウェア開発現場に導入されている．CI システ
ムは，ソフトウェア開発者が設定したビルド・テストを実行して，フィードバックする．しかし CI シス
テムは，ソフトウェア開発者が事前に設定した内容以外の問い合わせに対して，フィードバックすることは難しい．本研究では，予め設定された内容だけではなく，開発者が求める様々な問い合わせに対して，フィードバックするチャットボットの実現を目指している．本論文では，開発中の４つのチャットボットを紹介する．ワークショップでは，チャットボットの活用方法，及び，従来のソフトウェア開発における支援技術と比べた，チャットボットの期待される効果について議論したい．

1. はじめに近年，ソフトウェア開発の効率化を目的として，Bam-boo *1 や Jenkins *2 などの継続的インテグレーション(Contenious Integration) システムが，多くのソフトウェア開発に導入されている [1][2]．CI システムは，ソースコードのビルドやテストを継続的に実行する手法であり，ソフトウェアの潜在的問題を早期に検出が可能となる．CI シ
ステムにより，ソフトウェア品質の検証時間の削減，ソフトウェア開発の生産性の向上が期待される．

CI システムでは，ビルドやテストの内容を開発者が設定する．設定された実行内容に従って，CI システムが自動的

図 1

チャットボットと CI システムの実行例にビルドやテストを実行して，そのフィードバックをソフトウェア開発者に与える．しかし，CI システムは，開発者が設定した内容以外のフィードバックを返すことができない．例えば，バグ修正のためにソースコードを変更した
場合，開発者が事前に設定したテスト内容を実行するが，設定した内容以外のフィードバック（バグ修正方法の妥当性，他の修正方法の提案など）を返すことができない．
本研究で開発するチャットボットでは，ソフトウェア開1a)b)
c)
d)
e)
f)
*1
*2

奈良先端科学技術大学院大学
8916-5, Takayamacho, Ikoma, Nara, 630–0192, Japanhirao.toshiki.ho7@is.naist.jp
akinori-i@is.naist.jp
ueda.yuki.un7@is.naist.jp
katsuragawa.daiki.ka7@is.naist.jp
wang.dong.vt8@is.naist.jp
matumoto@is.naist.jp
https://ja.atlassian.com/software/bamboo
https://jenkins.io/

c 2012 Information Processing Society of Japan⃝

発者間の議論に参加して，ソフトウェア開発者の様々な問い合わせに対して，リアルタイムにフードバックを返すことを目指す．具体的には，我々の研究チームで開発中の 4
つのチャットボット，「レビューコストの自動見積りボット」，「修正指摘内容の自動推薦ボット」「ソフトウェアライブラリの自動推薦ボット」，「重複レビューの自動検出ボット」を紹介する．
本論文では， 2 章でチャットボットのシナリオを説明して， 3 章で開発予定及び開発中の４つのチャットボットを説明する．最後に， 4 章で本研究内容のまとめを述べる．

2. チャットボットのシナリオ
近年のソフトウェア開発プロジェクトでは，主に分散管理システム GitHub を利用して，ソフトウェア開発履歴を1

情報処理学会研究報告
IPSJ SIG Technical Report

管理している [3]．GihHub 上で，ソフトウェア開発者は，ラリを選択することが難しい．当該ボットでは，他の開発ソフトウェア品質の改良を目的としてソースコードを改変プロジェクトのライブラリ利用履歴に基づき，最適なライする．そして，その改変されたソースコード群（パッチ）をブラリを自動推薦する．最適なライブラリを自動的に推薦プルリクエトとして GitHub 上に投稿する．我々が開発すすることで，開発者の負担を軽減することができる．

るチャットボットは，GitHub における開発者のアクション（プルリクエスト，イシュー報告）に反応するものである．

3.4 重複したプルリクエストの自動検出ボット図 1 は，プルリクエストを投稿したパッチ作成者（Patch日々大量のプルリクエストが GitHub に投稿されるため，Owner）に対する，CI システムとチャットボットの実行例

同じ変更内容を持つ重複したプルリクエストが投稿されるを示す．はじめに，Patch Owner が GitHub 上にプルリク可能性がある．当該ボットでは，プルリクエストのタイトエストを投稿した．当該パッチは，現在使用しているライル・説明文・検証者からのコメントから，特徴的なキーワーブラリを変更していることを述べている．その変更内容にドを抽出して，重複したプルリクエストを検出する．重複対して，CI ボットが事前に設定された内容に従って，自したプルリクエストが投稿されたときに，当該チャット動テストを実行した．その後，チャットボットがライブラボットがパッチ投稿者に警告することで，不要なレビューリの変更に反応し，他のライブラリを推薦している．図 1を防ぐことができる．のように，我々が目指すチャットボットは，ソフトウェア開発者が CI システムに設定されている動作検証に限らず，4. おわりに他プロジェクトの比較内容（例えば，最適なライブラリの本論文では，現在，我々の研究チームで開発予定及び開推薦）などをソフトウェア開発者にフィードバックする．

発中の４つのチャットボット「レビューコストの自動見積

3. チャット Bot 開発内容
我々が現在開発に取り組んでいる４つのチャットボットの開発内容を紹介する．

りボット」，「修正指摘内容の自動推薦ボット」「ソフトウェアライブラリの自動推薦ボット」，「重複レビューの自動検出ボット」を紹介した．我々は，本研究を進めることで，今後のソフトウェア工学分野に貢献できると考えている．
近年のソフトウェア工学分野では，ソフトウェア開発

3.1 コードレビュー時間の自動見積ボット

プロセスの一部を自動化する研究が数多く発表されていコードレビューは，ソフトウェア開発に要する時間の約る．その一方で，その研究成果を実際の開発現場で活用す50%を占めており，膨大な時間的コストを要することがわるプラットフォームが用意されていない．本研究で提案すかっている [4]．しかし，従来の CI システムでは，レビューるチャットボットに，研究成果を追加機能として実装できに要する時間的コストについてリアルタイムにフィードるプラットフォームを提供することで，研究成果をソフトバックを与える機能は備わっていない．我々が提案するウェア開発現場に素早く適用できると期待する．

チャットボットでは，投稿されたプルリクエストに対して，今後は，これまでの CI システムによる限られた内容の時間的コストの見積もり結果を通知することで，膨大な時テストにチャットボットを加えていき，プロジェクトや開間的コストを要する変更に対するレビューを防ぐことが期

発者個人に沿った最適なフィードバックを提供できるシス

待される．

テムの実現を目指す．

3.2 修正指摘内容の自動推薦ボット

参考文献

CI システムを利用することで，ソースコードの妥当性を検証することができる．しかし，大規模なソフトウェア開発プロジェクトでは，検証する項目が多いことから，膨大な時間的コストを要する．本開発では，パッチに含まれるソースコードを分析し，未完成のソースコードに対して修正すべき内容を推薦するチャットボットを開発する．本チャットボットは，開発者の開発能力に合わせたフィードバックを出力することで，コード理解の補助が期待される．

3.3 ライブラリの自動推薦ボット
ソフトウェア開発の生産性の向上を目的として，開発者はソフトウェアライブラリを活用する．既存の機能を再利[1]Daniel Ståhl, Jan Bosch, “Industry Application of Continuous Integration Modelling: A Multiple-Case Study, ”Proc. of the 38th IEEE International Conference on Software Engineering Companion (ICSE), pp.270-279, 2016.
[2] Tony Savor, Mitchell Douglas, Michael Gentili, Laurie
Williams, Kent Beck, Michael Stumm, “Continuous Deployment at Facebook and OANDA, ” Proc. of the 38thIEEE International Conference on Software Engineering
Companion (ICSE), pp.21-30, 2016.
[3] Georgios Gousios, Martin Pinzger, Arie van Deursen, “Anexploratory study of the pull-based software developmentmodel,” Proc. of the 36th International Conference on Software Engineering, pp.345-355, 2014.
[4] David S. Alberts, “The Economics of Software Quality
Assurance” , Proc. of the National Computer Conferenceand Exposition,” pp.433-442, 1976,

用するため，開発時間を削減できる一方で，最適なライブ

c 2012 Information Processing Society of Japan⃝2