見出し画像

An Empirical Study of Feature Engineering on Software Defect Prediction

邦訳:ソフトウェア不具合予測における特徴量エンジニアリングの実証的研究

近藤将成

(九州大学大学院システム情報科学研究院 助教)

画像3

------------------ keyword ------------------
バグ予測
ソフトウェアの特徴量
人工知能

----------------------------------------------

【背景】ソフトウェアのバグは大きな事故を引き起こす可能性がある
【問題】バグを取り除くための開発リソースは不足している
【貢献】効率的なバグの発見に寄与する特徴量を調査した

 ソフトウェアはすでに社会インフラになりつつあり,私たちの生活になくてはならないものである.そのため,ソフトウェアにもし不具合(バグ)が含まれている場合,大規模な経済的損失を引き起こす可能性や,多くの人に影響を与える可能性がある.たとえば,証券取引所における取引のソフトウェアにバグがあれば,取引を中止するなどの対応をとらねばならず,大きな経済的損失を引き起こす可能性がある.より身近なところでは,人気のスマートフォンのアプリケーションにバグがあり,一時的に利用できなくなれば,多くの人に影響を与えることになる.

 しかし,ソフトウェアへのバグの混入は避けられない.この理由の1つとして,ソフトウェアの大規模化が挙げられる.たとえば,Googleが管理しているソフトウェアの部品の規模は,2015年時点で86TBと報告されている [1].このような大規模なソフトウェアの部品すべてに対して完璧なバグの有無のチェックを行うことは事実上難しい.

この問題を解決する1つの方法として研究されているのがバグ予測手法である [2].バグ予測手法とは,バグを含んでいると考えられるソフトウェアの部品を人工知能技術などを用いて予測することで,バグをより多く取り除こうとする手法である.たとえば,他の部品と比べてサイズが大きい部品や,休日の前に作成された部品が統計的に多くバグを含んでいるのかどうかを,深層学習手法などを用いて分析し,どういったソフトウェアの部品がバグを含んでいるかの情報を得る.その情報を用いて予測を行えるようにする.これらの情報のことを,ソフトウェアの特徴量と呼ぶ.以下に,バグ予測手法の模式図を示す.はじめにソフトウェアの部品から特徴量を取り出し,それをもとに人工知能技術などを用いて,ソフトウェアの部品がバグを含んでいるかどうかを予測する.

 本研究では,より効率的なバグ予測を行うためには,どのようなソフトウェアの特徴量がバグの予測に有用であるのか調査した.たとえば,人工知能技術の1つである深層学習手法を用いることで,ソフトウェアの部品への変更からソフトウェアの特徴量を自動抽出することができ,またその特徴量がバグの予測に有用であることを示した.また,ソフトウェアはソースコードと呼ばれる特殊な言語で記述されたコードを利用して作成される場合が多く,ソフトウェアへの変更もコードの書き換えによって行われる場合が多い.この際のコードに対する書き換えが行われた個所の文脈情報を利用することも,バグを予測する上で有用であることを示した.これらの結果を利用することで,どういった特徴量を利用することで,より多くのバグを見つけることができるのかについての知見を与えた.この研究を発展させていき,将来的にはバグのないソフトウェアを開発できるような世界にしたいと考えている.

画像3


[1] R. Potvin and J. Levenberg:Why Google Stores Billions of Lines of Code in a Single Repository, Communications of the ACM, Vol.59, pp.78-87 (
2016).
[2] O. Mizuno, S. Ikami, S. Nakaichi, and T. Kikuno:Fault-Prone Filtering: Detection of Fault-Prone Modules Using Spam Filtering Technique, In Proc. 1st International Symposium on Empirical Software Engineering and Measurement (ESEM2007), pp.374-383 (Sep. 2007).

(2021年5月26日受付)
(2021年8月15日note公開)

ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
 取得年月日:2021年3月
 学位種別:博士(工学)
 大学:京都工芸繊維大学

ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー

推薦文:(ソフトウェア工学研究会)
本論文では,ソフトウェアバグ予測技法の精度に強くかかわる特徴量についての大規模な調査を実施し,既存研究では見逃されていた変更されたソースコードの文脈を考慮する手法の提案や,深層学習手法による特徴量の自動抽出による予測精度向上を実現している.先駆的な内容であり,今後の産業界への応用と貢献が大きく期待できる.


近藤将成(正会員)

研究生活:高等専門学校で初めて研究というものに触れてから,その面白さに魅了され,研究をする職業につきたいと強く思い,博士号の取得を決意しました.研究の分野では英語を話す,聞く,書く,読むのすべての技能が非常に重要なのですが,英語があまり得意ではなかったことから英語には苦労しました.しかし,大学および大学院での研究生活の中で徐々に克服していき,今ではある程度自信を持って英語を使うことができるようになっています.また,この体験は自分の中であれほど苦手であった英語でも克服できたという自信にも繋がりました.もし研究が面白いなと少しでも思うのでしたら,ぜひ博士号の取得を検討してみることをお勧めします.博士課程での研究は,皆さんのさまざまな能力を大きく伸ばしてくれるはずです.

最後になりましたが,大学及び大学院で指導をしてくださった水野修教授をはじめ,多くの方にサポートしていただき博士号を取得することができました.大変感謝しております.