米フェイスブック(Facebook)ではいよいよ、AI(人工知能)がソフトウエアのバグ修正まで始めた。AIが自動でアプリケーションをテストしてバグを見つけ出し、修正パッチを開発。新しいテストケースを作って再テストしたうえで、人間のエンジニアにレビューを要求する。同社はこれらのシステム一式をOSS(オープンソースソフトウエア)として公開する計画だ。
デバッグ自動化の詳細は、フェイスブックが2018年9月13日にシリコンバレーで開催した大規模システム開発の勉強会「@Scale Conference」で明らかにした。新たに発表したのは、Android用アプリケーションのバグを修正するパッチを自動生成する「SapFix」というシステムだ。
フェイスブックはこれとは別に、テストの自動化ツールも以前から自社開発している。2018年5月に発表した「Sapienz(サピエンス)」は、AndroidやiOS用のモバイルアプリのテストを自動化するツール。2015年6月には静的コード解析ツールの「Infer」をOSSとして公開している。
テストから修正までをAIで自動化
今回、バグ修正を自動化できるSapFixを追加したことで、フェイスブックはAIによるデバッグの完全な自動化を実現した。SapienzとInferがバグを自動的に見つけ出し、SapFixがそのバグ修正を開発。SapFixが作った修正にバグが無いかをSapienzとInferがテストし、テストが通ったら人間のエンジニアにレビューを要求する。
フェイスブックは2017年9月からSapienzによるモバイルアプリの自動テストを開始し、現在は「Facebook」や「Instagram」、「Workplace」、「Messenger」といった様々なサービス用のAndroidアプリに適用している。2018年8月からはAndroid用のFacebookアプリのバグ修正にSapFixを適用し始めた。
同社は2018年9月13日に公開した技術ブログで「これほどの規模でAIを使ったテストとデバッグの自動化を実運用している事例は、我々が初めてだろう」とした。同社は今後、SapienzとSapFixの両方をOSSとして公開する意向も示す。
では、Sapienzがバグをどのように見つけ出し、SapFixがそのバグをどう修正しているのか。もう少し詳しく見ていこう。