全1112文字
PR

富士通と三井住友銀行が共同で「潜在バグ」の修正案を提示するAIツールの実証実験を始めた。バグの修正時間を手作業に比べて3割減にできるという。

 DX(デジタルトランスフォーメーション)の取り組みでは素早いサービス開発が欠かせない。足かせになるのが既存システムの保守性の低さだ。プログラムの見通しの悪さや品質の低さをどう改善するか――。

 開発のスピードアップと高い品質の両立という相反する課題を解決するための取り組みが富士通研究所で始まっている。Javaのソースコードを静的解析し、発見された潜在バグの修正案をAI(人工知能)で提示するものだ。潜在バグとは一見正しく動いているが、処理速度を低下させたり、プログラムをある条件で誤動作させたりするバグを指す。

 富士通研究所は潜在バグを正すAIツールのプロトタイプを開発した。2019年8月から三井住友銀行らと同ツールの効果を検証すべく、実証実験に着手した。

 AIツールはJavaの統合開発環境(IDE)である「Eclipse」のプラグインとして利用する(図1)。潜在バグの検出にはオープンソースソフトウエア(OSS)の静的解析ツール「SpotBugs」を使う。SpotBugsがコードを読み込み、処理効率が悪かったり誤動作する可能性があったりするコードを検出する。検出された潜在バグに対してAIツールが修正案を提示する。

図1●Eclipse上でコードを自動修正
図1●Eclipse上でコードを自動修正
(富士通研究所の資料を基に編集部で作成)
[画像のクリックで拡大表示]

 AIにはGitHubに公開されている著名なプロジェクトの修正手順を学習させた。修正前後のコードをそれぞれ読み込ませて比較する。これを繰り返して複数の修正事例からバグが存在しないコードに改善するまでの手順をAIに学ばせる。

手作業に比べて作業時間は3割減

 開発を主導した富士通研究所の菊池慎司インサイトデジタル化PJ主管研究員によれば、三井住友銀行が提供した約20万行のソースコードで検証したところ、「検出した潜在バグの52.7%に対して修正案を提示できた」。しかも提示した修正案の95.3%が正しかったという。

 Eclipseのプラグインとして利用できるため、開発者はコードを記述したらすぐにツールで解析できる。AIツールの活用によって、開発者が潜在バグを発見・修正する作業時間は、手作業と比べて「最大で約3割減らせる」(菊池主管研究員)という。

 三井住友銀行の上岡裕システム統括部上席部長代理は同ツールの実証実験の結果を踏まえて「静的解析ツールではバグを検出するだけだが、今回のAIツールは修正案を提示できる。開発の効率化にとても有用と考えている」と話す。

 富士通は同ツールを改善し、2021年3月までに同ツールを使った開発支援サービスを商用化したい考えだ。