Facebookが、バグを発見し自動的に修正するよう開発した新しいツール「SapFix」を開発している。このツールは、Facebookの「Android」版アプリケーションを利用しているデバイスに安定したコードのアップデートを提供するために利用される。Facebookが把握している限り、人工知能(AI)を利用したテストおよびデバッグツールをこれだけの規模で実用向けに実現する初めてのものだという。
SapFixはさまざまな種類のバグとソフトウェアに対応できるよう開発されているため、これによって広範な企業が、高品質なコードの作成を高速化できるようになる可能性がある。
この新ツールは、「Sapienz」があってもなくても実行可能だ。SapienzもFacebookが開発したインテリジェントな自動ツールで、ソフトウェアをテストしてバグを検知する機能を備える。Facebookは「SapFix」を使用して、Sapienzによって検知されたバグが実働環境に到達する前に修正している。
Facebookの説明によると、強力なバグの場合、SapFixはそのバグをもたらしたコード提出を完全、または部分的に元に戻すパッチを作成するという。より複雑なクラッシュの場合、SapFixはテンプレート化されたフィックス集を利用して、パッチを作成する。それがうまくいかない場合、SapFixはミューテーションベースのフィックスを試す。
このツールは、バグごとに複数の潜在的なフィックスを生成し、3つの基準に基づいて品質を評価する。具体的には、コンパイルエラーはあるか、クラッシュは継続的に発生するか、そして、そのフィックスによって新しいクラッシュが引き起こされるか、の3つの基準だ。完全にテストされたパッチは、承認のために人間のレビュアーに送信される。
追加のエンジニアリング作業が完了したら、FacebookはSapienzとSapFixの両方をオープンソース化する意向だ。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。