
前回はテスト自動化ツールの選定【前編】~ツールの比較表をどう活用するか | Sqriptsにて、テスト自動化ツールを選ぶ際のツール比較表の活用方法について説明しました。
今回はテスト自動化ツールの中でも、とくにAI自動テストツールを選ぶ際のポイントについて考えてみたいと思います。
注意点として、本記事中では特定のツールをお勧めしたり、Yes/Noで答えていけば最適なツールが判別できるフローチャートを提示したり、といったことは行いません。ツール選定には、開発しているソフトウェアやサービス、開発スタイル、メンバーのスキル、会社のルールなどさまざまな条件が関係するためです。
誰にでもあてはまる「ツール選びの正解」は存在しませんが、本記事ではツールを選択する際のポイント・考え方を提示して、皆さんがなるべく後悔のないツール選定をするお手伝いができればと思います。
なお、本記事中の「テスト自動化」は前編と同様、E2Eテストなどテスト対象のUI、とくに画面を操作して行うようなテストのことをターゲットとします。
AI自動テストツールとは
最初に確認の意味もこめて、AI自動テストツールについて簡単に説明します。
まず、”AI自動テストツール”というと、
- AIを自動でテストするツール
- AIで自動テストをするツール
の2通りが考えられます。
厳密な定義はありませんが、本記事の執筆時点では一般的に後者の”AIで自動テストをするツール”、つまりAIの力を借りてテストの自動化や自動実行をするツールのことを指して”AI自動テストツール”と呼びます。
テストの自動化や自動実行においてAIを使うことができる場面は複数ありますが、現在の主流はテスト実行やテスト自動修復にAIを用いているものがほとんどです。テスト自動化における問題として「作成した自動テストが動かなくなる、メンテナンスが大変」などが挙げられますが、AIによるテスト自動修復機能があることによってメンテナンスの手間を減らすことができます。その結果、自動テストの運用を継続しやすい、というメリットがAI自動テストツールにはあります。
現在日本語で利用できる主なAI自動テストツールには以下があります。
- mabl
- Autify
- MagicPod
他にもUIが英語のものも多数ありますし、20年以上の歴史を持つ自動化ツールにここ数年でAIが搭載されたりと、昨今のAIの盛り上がりと相まってさまざまな選択肢がある状態です。ツールを選ぶ側にとってはありがたい反面、テスト自動化にこれから取り組もうという組織においては逆にどれを選んだらよいかわからず、手が止まってしまう原因にもなっています。
何を基準に選ぶか
AI自動テストツールを選ぶにあたっては、何を基準にしたらよいのでしょうか。
考慮すべきポイントはたくさんあり、本記事中でもすべては網羅しきれませんが、大きく分けて以下の2つ
- 機能面:ツール自体の持つ機能や特性
- サポート・環境面:ツール会社のサポートや開発・コミュニティの活発度合いなど
について考える必要があります。
それぞれ、詳しくみていきましょう。
機能面
機能面について最初に考えるべきポイントは、「テスト対象の操作と、期待結果との突き合わせができるか」です。
システムテストの自動化ツールは「PCアプリケーション」「Webアプリケーション」「モバイルアプリケーション」のうち1つ以上に対応しています。テスト対象に対応しているアプリケーションを候補として選ぶのが最初のステップです。どの形式のアプリケーションに対応しているかは、公式サイトやパンフレットに必ず記載があるため、調べることは簡単です。
PC、Web、モバイルアプリケーションのうち自分たちが操作したい対象に対応していることが確認できたら、次はテスト対象のバージョンやOS、フレームワークごとの対応状況を調べます。
とくに注意が必要なのは、
- ブラウザの種類
- Safari、IEなどのブラウザが操作できるか
- モバイルOS
- Android、iOSそれぞれ対応しているか
- モバイルアプリのフレームワーク
- Flutterなどのフレームワークに対応しているか
です。意外と見落としがちな点なので、ツールの候補を絞る段階で確認をしましょう。
自動化したいテストケースのうち、これが出来なければ意味がないという重要なテストや、ハッピーパス等と呼ばれるもっとも基本的なテストをいくつかピックアップし、操作手順や結果確認の内容をテストツール会社に確認をしてもらうのもひとつの手です。万が一対応していない操作などがあっても、アップデートによる対応予定などがあれば教えてもらえる可能性もあります。
以上は選定にあたっての必須の事項、これが満たされていなければツールが使えない、という条件です。ツール選定にお困りの方でも、ここまではたどり着けた方が多いかもしれません。
問題はこの先です。必須事項を満たすツールに絞ってもまだいくつもの候補があり、明確な理由を持って選べない、選んだけれども後々使いこなせなかった、といった失敗が起こりがちです。
こうした失敗を避けるためには、自動化する段階にだけ目をむけるのではなく、自動テストを使う段階のことを考えましょう、というのがこれまでツール選定でつまづいた・失敗した事例から私なりに出した結論です。
よく「テスト自動化」や「システムテスト自動化」という言い方がされますが、実際には
- テストを自動化する
- 自動化したテストをメンテナンスしながら使い続ける
の2つの段階があります。
自動テストツールを選択する際、「テストを自動化する」部分、つまりそのツールでテスト対象が動かせるかどうかや、「誰でも簡単に自動化できるか」などを基準に選ぶことが多いです。この点を考慮することはもちろん大切です。
しかし、実際にツールを使うにあたっては後者の「自動化したテストをメンテナンスしながら使い続ける」割合のほうが大きくなります。ここを考慮せずにツールを選ぶと、あとで失敗しやすくなってしまいます。
自分たちが自動化したテストをどのように使うのかを具体的にイメージし、それを自動化ツールが実現可能かどうかについても調べるようにしましょう。
どのように使うのか、とは、たとえば以下の要素を含みます。
- 自動テストをいつ、どのように実行するのか
- 例)週次、日次など決まったタイミングで実行
- 例)CI/CDパイプラインに組み込み、pushをトリガーに実行
- どんな環境で、どんな用途で実行するのか
- 例)本番環境で死活監視的に実行
- 例)ステージング環境で、リリース前のリグレッションテストを実行
- 実行結果を誰が・どのように見るのか
- 例)テストエンジニアがツールのダッシュボードで確認する
- 例)開発者がチャットツールへの通知で確認する
- 例)レポートをPDF出力したものをPdMが確認する
- 自動テストが失敗したとき、検知・分析・テストの修正はそれぞれ誰がどんな流れで行うのか
- 例)テストエンジニアが自動テストの失敗を検知し、原因を分析。テストの問題であればテスト自動化エンジニアに報告し、不具合の可能性が高ければ開発者に報告
- 例)開発者が自動テストの失敗を検知・分析し、必要があればテストの修正まで行う
上記はあくまでも一例ですが、自組織でテスト自動化を行う際の「いつ、誰が、どう使うか」がイメージできたでしょうか?ここがハッキリしていない場合は、ツール選定の基準もあいまいになりがちです。
ツール選定の前に、まずは自分たちのやりたいことを明確にしましょう。
自動テストをCI/CDパイプラインに組み込むのであれば、既存のソースコード管理システムとの連携について調査が必要ですし、実行結果をテストエンジニアがツールのダッシュボードで見るのであれば、ダッシュボードの見やすさが検討ポイントになる。といったように、具体的な使い道を想定して、その実現可否をツール選定のポイントにするという順番で考えると、検討時の漏れを減らせます。
機能面のポイントについてまとめます。
- まずはテスト対象に対して行いたい操作ができる、対応しているツールを絞り込む
- 個別の機能について考える際は、テストを自動化する段階だけでなく自動テストを使う場面を具体的にイメージし、必要な機能を考える
サポート・環境面
前編において、比較表に現れづらい選定ポイントの例として
- 使い勝手
- サポートの質
- 開発・ユーザーコミュニティの活発さ
を挙げました。
このうち、使い勝手の面はトライアルを通じて必ず確認することになるため、選定の過程で漏れる可能性は低いでしょう。
そこで、ここでは考慮から漏れがちな残りの2つ、サポートの質や開発・ユーザーコミュニティの活発さなど、ツール外部の環境面について見ていきます。
サポートの質は、AI自動テストツールに限らず、有償のツールを選定するうえでは大切なポイントです。
昨今ではツールを開発している各社にカスタマーサポートやカスタマーサクセス担当者がおり、手厚くフォローしてもらえるようになっています。
サポートについては、とくに以下の点について確認しておくとよいでしょう。
- 日本語サポートの有無
- 問い合わせの方法
- メール、ツール上でのチャット、専用のSlack、など
- 問い合わせへの返答時間
- サイト上の「*営業日以内」だけでなく、過去の実績値も
- オンボーディングの有無や時間、回数
ツールの導入をはじめて利用が軌道にのるまでは、ツールの効果的な使い方や既存のテストプロセスにどうツールを入れていくかなど、相談したい事項が多数発生します。
ここでサポートの協力を得てスムーズにテスト自動化を立ち上げられるかどうかも、その後の成否に関わってきます。
そのため、どのくらい手厚くサポートが受けられるのか、サポートとのやりとりはスムーズか、などは選定段階でよく見ておきましょう。
そして、サポートの対応だけでなく、開発・ユーザーコミュニティの活発さも大事になってきます。
昨今はどの自動化ツールも、開発している各社が自分たちでユーザーコミュニティを運営もしくは積極的に関わるなどで、そのツールを使っている人・会社同士のコミュニケーションを活発に行うようはたらきかけています。
ツールの操作方法を知るだけであれば、公式ドキュメントなどで十分です。しかし、実際にツールを導入・活用するには、操作方法を知っているだけではうまくいかないことも。
他社での活用事例や社内で普及・推進するための施策など、ユーザー同士で相互に情報交換を行うことができれば、テスト自動化の成功に近づきます。
こうした取り組みの背景には、AI自動テストツールの多くが買い切りではなくサブスクリプション型の料金体系になっていることがあると考えています。つまり、ツールを開発している各社にとっては、自分たちのツールを導入した企業がずっと使い続けてくれることで自社の売上が増えていきます。そのため、なるべくユーザーに解約せず使い続けてもらうために、ユーザーがうまく活用できるための取り組みを手厚く行ってくれるのです。
そこでユーザー側がツールを選ぶ際には、このコミュニティの活発さや開発の関わり度合いに関しても見ておくと役に立ちます。
具体的なポイントは以下です。
- コミュニティの活発さ
- 参加人数(社数)、投稿の頻度、質問に対する回答がついているか
- 開発側の関与の度合い
- コミュニティ内でのQ&Aや、イベント開催などに積極的に関わっているか
- 雰囲気は合うか
- 自分たちも積極的に他ユーザーと関わっていこう、という気になるか
サポート・環境面のポイントについてまとめます。
- サポートのしやすさや返答のスピード感に加えて、とくにテスト自動化のスタート時に重要なオンボーディングの手厚さを確認する
- コミュニティにおけるユーザー間のやりとりも、ツールを活用するうえで必須の要素になっている。コミュニティの活発さや雰囲気を確認する
ツール会社に対する見方を考え直す
ここまで、機能面・サポートや環境面の2つの側面から、AI自動テストツールの選定ポイントを説明してきました。
機能面に関しては、ソフトウェア開発に関わる他のツールに通じるところが多かったのではないか、と思います。
一方で、サポートや環境面について意識していただきたい点があります。
それは、テスト自動化ツールを開発・販売している会社は、ただツールを売っている「ツールベンダー」ではないということです。
前項で説明したように、AI自動テストツールはサブスクリプション型の契約が多く、ツールを使い続けてほしい、と考えています。
そのため、ツールを開発している会社は導入した企業に対してさまざまなフォローを行い、テスト自動化をビジネスの成功につなげてほしいと思っています。
つまり、AI自動テストツールを開発している各社は顧客に対してツールを売っているのではなく、ツールを使って実現できる未来を一緒に目指すビジネスパートナーである、と捉えるべきです。AI自動テストツールを選ぶということは、ビジネスパートナーを選ぶことと同じです。
本記事のタイトルとは一見矛盾するように見えるかもしれませんが、AI自動テストツールを選ぶということは、テストを自動化して達成したい姿・目的があるはずです。達成に向けて「ツールを選ぶ」という視点とともに、ぜひ「パートナーを選ぶ」という視点でも考えてみてください。
まとめ
本記事ではAI自動テストツールを選ぶ際のポイントについて、機能面とサポート・環境面の2側面から説明をしました。
テスト自動化に限らず、ツールを選ぶ際は会社や開発チームの体制などさまざまな条件が複雑に関わってきます。そのため、読んでくださった方全員に共通するような「選び方」はなく、各々が考えなければなりません。
しかし、本記事中でも触れた以下の点、
- テストを自動化する段階だけでなく、自動テストをメンテンナンスしながら運用している状態を具体的にイメージすること
- ツールを開発・販売している会社をツールベンダーではなくビジネスパートナーとして捉え、テストが自動化できた先の理想像を目指す手伝いをしてもらうこと
これらを要として、関連する詳細な条件について検討していただければ、適切なツールを選択できるでしょう。
付録:ツールを選ぶ際のその他の確認点
記事中で触れたポイント以外で見落としがちな点についてリスト化します。
ツール選定時の参考にしてください。
- 自社のルール・規約への適合
- ツール、SaaS利用時のルールを満たすか
- アカウント管理ルール(LDAP連携必須、など)を満たすか
- 最新環境への対応
- モバイルOSの新バージョンに対して、OSリリースからテスト実行可能になるまでの期間はどのくらいか
- 今後の機能拡充予定・製品ロードマップ
- ソフトウェア開発や品質・テストに対する考え方
- ツールの稼働率
- 直近での障害や定期メンテナンス等の状況
連載一覧
テスト自動化ツールの選定【前編】~ツールの比較表をどう活用するか
テスト自動化ツールの選定【後編】~AI自動テストツールを選ぶ時に気をつけるべきポイント
テスト自動化の普及と推進【前編】~阻害要因と対策
テスト自動化の普及と推進【後編】~個人レベルでテスト自動化を学ぶ
テスト自動化とテスト設計【前編】~作成済のテストケースの整理と加工
テスト自動化とテスト設計【後編】~テスト自動化のためのテスト設計