AIがソフトウェアのテストを自動化:UIの変更にも追従「Autify」

課題

ソフトウェアのテストはソフトウェア開発会社に欠かせないものです。しかし、人間が実際に操作をしながら動作を確認するソフトウェアの手動のテストはとてもコストがかかります。

しかし、 ソフトウェアのリリースサイクルは短くなってきており、一週間に一度以上をリリースするということも当たり前になってきています。しかし手動のテストは時間がかかルため素早いリリースのボトルネックになっています。

テストを自動化するソフトウェアはたくさんありますが、そのためのエンジニアは不足していますし、自動化されたテストはコードの変更に弱く、すぐに動かなくなってしまいまうため、相当なメンテナンスコストがかかっているのが現状です。

解決方法

オーティファイ株式会社(東京都中央区、代表取締役社長 近澤 良)の開発した「Autify」このシステムではAIを活用して自動テストの作成と、その更新を行うようにしました。

テストしたい操作をブラウザを動かして記録すると、それをAIが自動テスト化し、UIに変更があると自動テストも合わせて更新します。

Autifyではどのような手法が使われているか公表されていませんが、Webアプリケーションテストの自動化では、HTMLのDOM Elementの意味を推定することで、見た目の情報が変わっても大丈夫にする試みの例などがあります。(機械学習を使ってUI自動テストをサイト間で再利用する – DeNA Testing Blog

従来のテストでは例えばメールアドレスの入力欄を指定するには、DOMの要素をツリー全体からの絶対パスや相対パスで指定する必要があり、関係するDOMに少しでも変更があると動かなくなっていましたが、こういった機械学習を使ったアプローチを取ることで「このページに出てくるメールアドレスの入力欄っぽいもの」というような指定の仕方ができるようになり、DOMの変化に強くなります。

どうなったか

このシステムにより、テストのスクリプトを書くより3倍早くテストが自動化できるようになりました。また自動テストのスクリプトを書く必要がないためプログラミングの知識が不要で自動テストが実施できるようになりました。

サービスは現在 Web アプリケーションにのみ対応しているということですが今後はモバイルのアプリケーションなどにも対応していくということです。

まとめ

今回はテストの自動化の Web サービスを紹介しました。 a を変更すると b も変更しないといけないというのは会社の業務でよくあるパターンです。ソフトウェアでなくても、商品に変更があれば、商品カタログ、取扱説明書、ヘルプサイトの更新が必要というものだったり、社員が入社すると、社員名簿や、物品管理の書類などに変更が必要といったりするものです。Autifyが実現したことを考えると、人間が目視でやらないといけないと思い込んでいることも AI に任せることができるような気がしてきます。

参考資料

(Marvin編集部)