AI活用で実現している機能
オーティファイでは、人間がより創造性の高い仕事に従事できるように、Autify for Webをリリースした約4年半前から要素の特定にAI活用を進めてきた。WebアプリケーションのE2Eテストコードを記述する場合、クリックすべきボタンなど、テストすべき要素の特定情報を入力する必要がある。
だがAutifyでは、ユーザーがそれを入力する必要がない。これが可能なのは、「クリックや選択した要素の特徴情報を記憶し、テスト実行時にAIがその要素の特徴情報と同じ要素を特定しているからです」と松浦氏は説明する。
要素特定にAIを活用する理由は、ユーザーの入力手間を省くからだけではない。テスト対象は変わり続ける性質であることも理由だ。「例えば住所が頻繁に変わる人の場合、住所の代わりにヒゲが生えている、メガネをかけているみたいなところで人を特定するのと同じようなことです」(松浦氏)
例えば、Webデザインを少しだけ変更することは頻繁に起こりうることだ。だが、そうするとHTMLのコードも変わる。自分でテストスクリプトを書いている場合、前回のまま使用してしまうとテストは失敗してしまう。Autifyであれば、デザインの変更により特徴情報の一部が変わっても、前回のテスト実行時との要素認識のずれを検知するセルフヒーリングという仕組みを持つ。「類似度が比較的高ければ、そのままテストを実行できる」と言い切る。
類似度が低かったり、要素がなくなったりする場合は失敗し、人間に確認を促す。一方、モバイルアプリのテストには、特有の問題がある。モバイルアプリの場合はHTMLで要素の状態が記述されていないため、HTMLを使った要素の特定ができない。そこでAutifyでは、スクリーンショットに注目し、画像情報から必要な情報を抽出することに取り組んでいる。
画像情報をもとに、指定した要素をAIが判断し、抽出・特定する。またセルフヒーリング同様、画像情報を基に変化があった要素を探索できる。「私たちが独自開発したAIモデルを使って実現しています」(松浦氏)
さらにユニークなAI活用の仕組みとして松浦氏が紹介したのは、チェックボックスの認識である。一般的なチェックボックスは<input>というタグを使って表現する。だが昨今のチェックボックスは<input>タグではないもので実装されることも多い。つまり実装がさまざまで人間が見ても分からないことが多いのだ。
このような異なる実装のチェックボックスが存在すると、その違いを認識できずテストが失敗することになる。そこでAutifyでは、チェックボックスの見た目から選択・非選択を判断するAIモデルを作成。「このモデルが実現できたのは、私たちがたくさん積み重ねてきたテスト実行の事例があったからです」と松浦氏は話す。この仕組みにより、チェックボックスのテストが非常に楽になる。「このように私たちはいろいろなところでテストの自動化をスムーズにするAIを開発しています」(松浦氏)
とはいえ、これらの仕組みは容易に実現できたわけではない。AIモデルの作成には機械学習で行うが、それには大量のデータが必要になる。だがテスト自動化に使えるデータセットはあまりないという問題があった。たとえデータが大量にあったとしても、学習させるには正解情報をつける(アノテート)必要がある。「この正解情報をつける作業は非常に手間がかかる」と松浦氏は明かす。しかも間違った情報をつけてしまうと、それ自体高精度である必要があるのだ。
高精度を保つため、Autifyではさまざまな工夫を行っている。例えば、文字認識もその一つ。800〜5000万といった日本語と数字が混ざって表示されているケースをOCRで読み取るのは非常に難しい。だがAutifyは特化したデータで学習させているため、精度高く認識できる。
また問題が発生した場合も、顧客からの問い合わせや失敗したテストケースを分析することで、問題にあわせてモデルをチューニングしている。もちろんリグレッションがないようにテストも入念に行っているそうだ。