AIは、過去10年であらゆる業界に革命をもたらしてきました。テスト自動化業界も例外ではありません。AutifyのMLチームでは、最先端AIをどのように利用すればテスト自動化を加速させられるか研究しています。この記事では、Autifyが現在提供している機能、およびこれからリリースする機能に最先端AIをどのように生かしているか紹介します。


MLUI(モバイル)

アプリを使う際、ユーザーが見たり操作したりするのは画面だけであり、ソースコードではありません。一方、テスト自動化ツールでテストシナリオを生成・実行するには、ソースコードを触れなければならないことがほとんどです。Autifyでは、QA担当者がアプリを検証するのと似たような形で検証できるテスト自動化ツールを提供したいと考えております。このような背景から、MLUIプロジェクトが生まれました。

MLUI(Machine Learning-based UI extraction:機械学習によるUI抽出)は、Autifyの主要なAIプロジェクトの1つ。「最先端のディープラーニング技術を用いて、スクリーンショットだけからUI要素の情報を抽出しよう」というもので、人間が行うのに近い自動テストを実現できるようになります。

例として、コードのミスが原因で、ボタンが非表示になってしまうテストシナリオを想像してみましょう。ボタンはまだ存在しますから、テスト自動化ツールはボタンをクリックできるかもしれません。一方、MLUIが見るのはアプリのスクリーンショットだけなので、ボタンが表示されていなければ、MLUIによるテストではボタンが見つからず、テストは失敗します。

MLUIがスクリーンショットだけからUI要素とその属性を抽出するイメージ図。

インテリジェント・アサーション

テスト自動化において、アサーションは極めて重要です。人間のテスターがWebページのQAを行う際、要素の値(会社名など)を検証しなければならない場合と、値のカテゴリを検証しなければならない場合があります(価格が正しく表示されているかなど)。たいてい、要素の値はテスト自動化ツールで容易に検証できますが、カテゴリは検証できません。

「インテリジェント・アサーション」を活用すると、複雑な正規表現を書かなくても、カテゴリとその関連情報を抽出できるようになります。例えば、要素が日付を表示しているか検証するシナリオを想像してみましょう。通常、DateTimeパーサを使うか、やや複雑な形式であれば正規表現を書かなければなりません。ただ、形式が変更されると、要素が日付を表示していてもテストは失敗してしまいます。また、正規表現を更新する羽目になります。

Autifyで近日リリース予定の「インテリジェント・アサーション」を使うと、複雑な正規表現を記述・管理しなくても、要素が日付を表示するか検証できるようになります。DateTimeだけでなく、料金、数値、人名など、さまざまなカテゴリに対応しています。下の画像は、Autifyのインテリジェント・アサーションがテキストをカテゴリ分けし、情報をパース可能な形式に抽出した一例です。

Autifyのインテリジェント・アサーションは、プレーンテキストを意味解析可能な形式に変換します。

テストシナリオの生成

業界リーダーの地位を獲得するため、AutifyではQAの作業効率を10倍向上させたいと考えております。E2Eテスト自動化の究極の目標は、「テストシナリオの生成」です。テストシナリオを生成できるようになれば、QA担当者はAIにテストを任せられるようになります。QA担当者は、AIが生成したテストシナリオを確認するだけです。ウェブアプリ(モバイルアプリを検証する場合はモバイルビルドファイル)の大まかな開始点を指定すると、それをもとにシナリオジェネレーターはアプリケーションのさまざまな部分に遷移し、重要なユーザーインタラクションやパスを見つけ出し、テストシナリオとして保存していきます。このプロジェクトは研究開発段階です。
 
Autifyではこの他にも品質保証やテスト、アジャイル開発に役立つ資料を無料で公開していますので、ぜひこちらからご覧ください。