コンピューターソフトウェアのバグは、軽微な不便から甚大な経済的損失にまで及び、最悪の場合は悲劇的な人命の喪失に至ることもある。
今日、大多数の企業は事業運営をソフトウェアに依存している。サプライチェーン全体から最終顧客に至るまで、あらゆる業務を動かしているのはソフトウェアだ。
Facebookの新しいAndroidアプリは、人工知能を初めて活用し、ソフトウェアのバグを発見して修正しようとしている。
バグは深刻な問題
ソフトウェアのバグがもたらす影響は、広範囲に及ぶ。
例えば2017年、英国の国民保健サービス(NHS)のコンピューターシステムに不具合が起き、医療関連の郵便物70万9,000通が送付されなかった。その結果、定期診察を受け損ねた人もいれば、患者記録、さらにはがん検査の結果を受け取れなかった人もいた。この不具合により、約2,000人の患者が危険にさらされた。
同じ年、Uberのアプリはフランス人男性を窮地に追い込んだ。男性の浮気を妻に知られるきっかけとなったのだ。男性がサービスからログアウトした後も、アプリは居場所を知らせるプッシュ通知を送り続けていた。
2018年、ウィーンに本社を置くソフトウェアテスト会社Tricentisは、報告書を発表し、大規模なソフトウェア障害606件が314社に影響し、資産総額1兆7,000億ドルに及んだと明らかにした。
AIは開発者の時間をどう節約できるか
ソフトウェア開発者は、緊急性の高いものから日常的なものまで、絶えず修正すべき問題を見つけて対処している。バグを知らせるシステムや手順も整っているが、作業の多くはコードを手作業で丹念に調べることを伴う。
Facebookの新しいAIハイブリッドツール(人間の関与が依然として必要なため、ハイブリッドと呼ばれる)は、こうした下準備の一部を軽減するために導入された。
SapFix はFacebookのエンジニアが開発したもので、プログラムのデバッグにエンジニアが費やす時間を大幅に削減することを目指している。また、新しいソフトウェアの展開を迅速化することも目的としている。
このツールは2段階で動作する。まず、SapienzというFacebookのインテリジェントなソフトウェアテストツールがバグを発見する。次にSapFixが修正案を自動生成してエンジニアに提示し、エンジニアが最終確認をしてから修正を適用する。
「8月にSapFixのテストを開始して以来、このツールはパッチの生成に成功しており、人間のレビュアーに承認され、本番環境に反映されています」と同社は述べ、さらにこう付け加えている。
「私たちの知る限り、機械が生成した修正が、自動化されたエンドツーエンドのテストと修復を経て、Facebook規模のコードベースに適用されたのは今回が初めてです。」
仕組みの詳細はこちらで確認できる。Facebookはその間、受け取ったフィードバックを活用して技術革新をさらに向上させるとともに、ツールを「将来的に」オープンソースとして公開すると約束している。
主な特長の一つは、NHSとUberの双方にも役立ったかもしれない点だ。つまり、不具合が起きる前に防ぐことができる。


