QbookジャーナルQBOOK JOURNAL

AIを活用したテスト自動化ツール4選

最終更新日時:2020.12.10 (公開日:2020.11.27)
AIを活用したテスト自動化ツール4選

ソフトウェア品質の要であるテスト工程。ときに数万ケース以上の項目が必要となるテスト工程で威力を発揮するのがテストの自動化です。

テスト自動化をパワーアップさせるべく、近年はAIを組み合わせたテスト自動化ツールも出てきています。

本記事ではその概要と、海外製品を含め具体的なツールを4つ紹介します。

テスト工数の削減、品質向上にぜひ参考にしてみてください。

なぜテスト自動化ツールにAIが活きるのか

テスト自動化の問題

手動テストの課題であったテストにかかる膨大な工数や、テスト品質のばらつき(人によって実施方法や確認方法が異なるなど)は、テストの自動化によってある程度解決できるようになりました。

しかし、テストを自動化してもいくつか問題が残ったままでした。

もっとも大きな問題は、テストスクリプトの作成を手動でやらなければならない点です。

テストを自動化するとテストスクリプトの実行は自動化されますが、作成はエンジニアが行わなければなりません。初期開発時も改修時にもテストスクリプトの作成工数が必要になるため、場合によっては手動テストの方が、メリットが大きい場合もあります。

例えば、画面操作を伴うソフトウェアで、初期開発時に画面A、B、Cのソフトウェアとテストスクリプトを作成したとします。その後の改修時には、UI(画面や挙動)の変更を伴わなければテストスクリプトをそのまま実行できます。しかし、画面A、B、Cの共通部分であるヘッダーの修正といった改修の場合、全ての画面のテストスクリプトを書き換えなければなりません。

テストスクリプトの運用を決めないままで自動化に踏み切ってしまうと、運用が大変困難な状況に追い込まれてしまうこともあるでしょう。テスト自動化をすべく初期開発を行ったものの、運用時のメンテナンスが十分できず無駄になってしまうのはよくある失敗パターンです。

AIが解決できる問題

そんなときにAIが力を発揮します。ツールによって異なりますが、ソフトウェアの画面を読み込ませればテストスクリプトが作成され、改修時にも自動でテストスクリプトが修正されます。HTMLや改修前後の画面を見て、自動で変更箇所を検出し、修正内容も提案してくれるのです。

ただ、AIの修正箇所にも得意苦手があり、画面上のボタン名変更のようにパーツの変更は得意でも、ボタンが無くなって操作手順が変わってしまうような場合にはエンジニアによるスクリプト修正が必要だったりします。

一般的に、テスト自動化が向いている分野としては、頻繁な改修・リリース作業があるアジャイル型の開発と言われています。改修・リリース作業が頻繁にあるということは、テストもそれだけ頻繁に行わなければなりません。1年かけて作ったソフトウェアも1週間かけて改修したソフトウェアであっても、ある程度の品質は確保しなければなりません。

そこがアジャイル型の開発の難しいところなのですが、AIを活用したテスト自動化ツールがあれば、強力にサポートしてくれます。

もちろんウォーターフォール型の開発の場合でも、改修・リリース作業が何度も予定されている場合はAIを活用したテスト自動化ツールは力を発揮します。

AIを活用したテスト自動化ツール4選

ここからAIを活用したテスト自動化ツールを4つ紹介します。具体的なツールを見て、導入に向けたイメージを膨らませてみてください。

掲載している情報は2020年11月時点のものですので、ツールの詳細についてはリンク先からご確認ください。

Autify

「アジャイルチームのためのQA自動化プラットフォーム」といううたい文句で、究極的にはテストフェーズをなくすべく、開発されたサービスです。2019年には投資ファンドや個人投資家から約2.6億円を調達し、急成長中です。国内ではDeNAやグロービスが利用しています。

E2E(End to End)テストと呼ばれるシステム全体を本番稼働の環境に近い状態で、一気通貫でテストする際に効果を発揮します。

Autifyを使えばブラウザの操作を記録した後、複数ブラウザですぐにテストを実行できます。通常のE2Eテストは、細かい文言やデザインの変更だけでテストスクリプトが異常終了しやすいのですが、改修によるUIの変化を監視し、影響のあるテストスクリプトを自動的にアップデートします。

他社にはない強みとして、テストスクリプトを書かなくてもよい設計になっており、非エンジニアでも使いやすいことが挙げられます。

SlackやJenkinsとの連携もできるので、既存の開発フローの中に組み込むことができればよりスムーズに導入できるでしょう。

Magic Pod

Magic Podは、テストスクリプトの作成からAIが利用されています。画面キャプチャを読み込ませ、そのままドラッグ&ドロップで入力エリアと入力内容を設定するとテストケースが作成されます。作成後に画面構成が変更された場合も、HTMLの変更箇所やOCR(光学文字認識)の情報をもとにテストスクリプトが自動修復されます。

クラウド環境でのモバイルアプリのテスト実行が強みですが、ブラウザテストの実行も可能です。

Seleniumなどのテスト自動化エキスパートによって開発されたサービスですが、エンジニア目線で必要な機能が実装されつつ、非エンジニアでも使いやすいUIが特徴です。

一部プランは無料なので、気軽に試すことができます。

Selenic

Parasoft Selenicはソフトウェアテストでもっとも利用者の多いOSSであるSeleniumを強化するツールです。Seleniumは使い慣れているけど、もう少し使い勝手をよくしたいというエンジニアにおすすめです。ソフトウェアのバグと向き合い続けてきたParasoft社が開発しています。

運用時の最大の課題であるテストスクリプトのメンテナンスにAIを活用しているのが特徴です。

テストスクリプトの作成はこれまで通りSeleniumで行い、テスト完了時にParasoft Selenicのレコメンド機能が過去のテスト履歴などを活用し、修正案を提示してくれます。修正案は1クリックでテストスクリプトに適用できるので、すぐにテストを再実行できます。

また、セルフヒーリング機能を有効にすることで、自動で修正案を適用してテストを再実行することも可能です。修正内容もテスト完了時のレポートで確認できるため、CI/CD(継続的インテグレーション/継続的デリバリー)ビルドを行う際にも適しています。

mabl

mablはシリコンバレー発のスタートアップのツールですが、日本でもnoteやRettyといったサービスで利用されています。

使い方としてはSeleniumと似ており、chromeの拡張機能をインストールして画面操作を記録して、テストスクリプトが作成されます。

mablもAIにより、画面の変更時に自動でテストを完了させることができます。

mablのサイトには、mablの操作方法や使い方のコツなど多くの動画やドキュメントがあります。ユーザーコミュニティの活動も活発なので、英語に抵抗がない方は多くの情報を入手できるでしょう。日本でも勉強会が開催されるなど、少しずつ広がりを見せています。

まだ日本語の情報が少ないですが、海外のサービスが気になる方はぜひ試してみてください。

おわりに

テストツールにもAIがうまく取り入れられていることはご理解いただけたかと思います。

ただ、まだまだAIにテストの全てを任せることはできず、エンジニアにはテストに対する知識・経験が求められます。全体のテスト計画や、AIが生成したテストケースに抜け漏れがないかなどのチェックはまだまだ必要です。

AIを活用したテスト自動化ツールを使いながらも、重要な部分は専門家を頼るなど、柔軟に品質を高めていきましょう。

※ 本記事に記載されている団体名、会社名、製品またはサービスの名称などは、各社、各団体の登録商標または商標です。

ライター:Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。