テスト自動化を成功させるためには、しっかりと計画を立てることが重要です。計画なしで進めると、「特定の画面が自動化できない」「操作がうまくいかない」などの問題が途中で発覚し、せっかく作成したシナリオが無駄になってしまうことがあります。また、どのテストケースを自動化すべきかが見えず、重要な機能が自動化されないまま、逆に優先度の低い部分にリソースを過剰に割いてしまうこともあります。このような問題が積み重なると、テスト自動化の効率が低下し、最終的には成果物の品質に悪影響を及ぼします。このような事態を避けるためにも、計画段階で慎重に検討することが不可欠です。
本記事では、テスト自動化を成功させるための計画立案のポイントについて解説します。
テスト自動化とは?
テスト自動化は、ソフトウェアやアプリケーションのテストプロセス全体を自動化することを指します。
これまで手動でおこなっていたテスト作業を自動化することで、効率的にテストを実行し、品質を向上させることが目的となります。
前回のテスト自動化通信では、初めてテスト自動化に取り組む方に向けて、テスト自動化の概要、メリット・デメリット、テスト自動化の向き・不向きについてご紹介しました。
今回の記事では、前回ご紹介したUIテスト自動化の全体像の最初のフェーズである、テスト自動化におけるテスト計画について解説します。

テスト自動化の計画とは?
テスト自動化の計画とは、テスト自動化の戦略、ゴール、範囲などの指標を定義し、スケジュールを立てることです。 この計画をしっかりと練ることが、その後の開発やテストのクオリティに直結します。もし自動化シナリオを作成し始めてから、「特定の画面が自動化できない」「キーとなる操作が自動化できない」と判明すると、最悪の場合、これまでに作成したシナリオが無駄になる可能性があるため、計画段階での十分な準備が不可欠です。
また、計画の段階では、自動化の目的や自動化したいテストについて掘り下げていくため、テスト対象アプリやテスト仕様書に関する詳しい情報が必要な場面があります。自分が開発したのではないアプリケーションを自動化対象とする場合は、計画段階で開発チームの力を借りることも検討するとよいでしょう。
テスト自動化の計画の流れ
テスト自動化の計画は、以下の流れで実施することで、計画を適切に立てることができます。

Step1. テスト自動化ツールがテスト対象アプリに適用できるかを確認する
まず、テスト自動化ツールがテスト対象アプリの自動化をおこなえるかを確認します。
以下のポイントは必ずチェックしておきましょう。
- テスト自動化環境がツールの稼動要件を満たしていること
テスト自動化シナリオの作成・実行をおこなう環境が、ツールの稼動要件を満たしていることを確認します。- OS 環境 (Windows、Mac、Linux)
- ハードウェア要件 (プロセッサ、メモリー、ディスク容量など)
- テスト対象アプリのテクノロジーがツールのサポート対象であること
- テクノロジーの種類 (デスクトップ、Web、モバイルなど)
- テクノロジーのバージョン
- テスト対象アプリのUI要素が認識ができること
実際にツールを使って、テスト対象アプリの画面のUI要素が認識できるかを確認します。アプリの内部構造を読み取って UI 要素を特定するツールの場合、ボタンやテキストボックスといった操作したい UI 要素の情報が取得できるかをチェックしてください。
※Ranorex の稼働環境と対応アプリについては、以下をご参照ください。
稼働環境、対応アプリの一覧
Step2. 対象のテストが自動化に適しているかどうかを確認する
アプリのテストには様々な種類・フェーズのテストがありますが、その中で UI テスト自動化に「適したテスト」と「適していないテスト」があります。自動化の対象と考えているテストが、そもそも自動化に適しているかをここで確認します。
自動化に適したテストの例
- 手順が決まっていて、同じ内容を繰り返すテスト
- 現在リリース前に毎回おこなっている リグレッションテスト(回帰テスト)
- 同じシナリオを毎回実施している 受入テスト
- 開発段階の結合テスト・シナリオテストの中で、今後の保守フェーズでのリグレッションテストに使用できるケース
- 反復テストのように同じ操作を100回繰り返して問題が発生しないかをチェックするケース など
※Webアプリケーションで、同時に多数のアクセスをおこなうような負荷テストは含まれません
- シナリオが同じで、データパターンを変更して複数回実施する必要があるテスト
- 入力項目が10個ある登録画面で、各項目の入力パターンが10通り(10項目 * 10通り = 100ケース)あるテスト など
ヒント
テスト仕様書が存在しない(文書化していない)場合、これらを文書化するところから始めましょう。
自動化に適していないテストの例
- 1~2回しか実行しないテスト
テスト自動化は、シナリオ作成に一定の工数がかかるため、そのテストを一般的に3~4回実行して、はじめて費用対効果が出ます。1回か2回しか実行しないテストはその効果が得られないことから、自動化の対象とすべきではありません。
- テスト対象アプリが完成していない状態でのテスト
開発中のアプリケーションで、不具合修正で画面の変更が頻繁に入るようなケースでは、画面の変更が入った際にはツールで作成したシナリオも修正する必要が出てきます。画面が出来上がっていない段階の結合テストのフェーズを自動化するような使い方は、避けた方がよいでしょう。
- 人の判断が必要なテスト
「使いやすさ(ユーザービリティ)に問題がないこと」や「レイアウトが崩れていないこと」というような、人の目で見て判断するようなテストは自動化に向いていません。
- モンキーテスト(手順が決まっていないランダムなテスト)
テスト自動化シナリオは、操作順を明示的に指定する必要があるため、手順がランダムになるようなテストには適していません。
補足メモ
テスト仕様書が存在しない(文書化していない)場合、これらを文書化するところから始めましょう。
Step3. テスト自動化の目的(ゴール)を決める
ここでは、テスト自動化によって達成したい目的を考えます。報告目的で、テスト自動化の費用対効果の算出を求められている場合、事前にゴールを決めておくことで、それらを達成できたかという成果の計測がしやすくなります。目的となると、「現在のテスト工数を削減すること」が思い浮かぶ方も多いと思いますが、単に「工数削減」だけを目的とすることには注意が必要です。
理由は以下が挙げられます。
テスト自動化で注意すべきポイント
- UI テスト自動化は効果が出るまで時間がかかる
UI テスト自動化では、テストシナリオを作成する最初の段階で多くの工数がかかります。始めればすぐに工数が減るというものではないため、工数削減を目的とするのであれば長期スパンで見ていくことが必要です。
- UI テスト自動化シナリオ関連の新規タスクが追加される
UI テスト自動化運用が軌道に乗った後は、日々のルーティーンとして自動実行した結果の分析や、必要に応じてシナリオのメンテナンスといったタスクが発生するため、一定の「管理コスト」がかかり続けることは覚えておく必要があります。
- 自動化できないテストが存在する
Step2 で自動化に不向きなテストについても触れたとおり、自動化できない、あるいは自動化に非常に大きな工数がかかってしまうテストについては、手動で対応する必要があります。
工数削減をテスト自動化のゴールとして設定するのであれば、これら注意点の内容をふまえて、シナリオ作成段階の工数は多めに見積もっておく、運用開始後の管理工数もコストに含めておく、すべてのテストが自動化できるわけではないという前提で費用対効果を考えるといったことが必要です。
一方で、UIテスト自動化には以下のようなコスト削減以外のメリットも存在します。
コスト削減以外のメリット
- テスト手順の明文化
手動テストでは、テスト仕様書にてそのケースの実行手順が明確に記載されておらず、テスターあるいは開発者が暗黙知で実施していると、人が変わったときに引き継ぎが難しくなります。テスト自動化をするにあたり、テスト手順を明文化しておくことで、資産として残すことができます。
- テスト実施回数増加による品質向上
自動化をおこなうことにより、作成済みのシナリオはいつでも実行できるようになるため、テスト実施のハードルが下がり、実施回数を増やすことができます。これまで実施していなかったタイミングでもテストをおこなうことで、結果的に品質向上につながります。
- エンジニアの働きがい向上
これまで手作業で行っていた工程を自動化することで、作業時間を短縮できるため、社員がスキルや知識を習得するための時間を確保できます。また、繰り返し行う単純作業はモチベーションの低下を招いため、それらの作業を自動化し、別の重要なタスクに振り分けることで、働きがい向上が期待できます。
※MS&ADシステムズ様の事例をご参照ください。
- テスト自動化シナリオを影響範囲レビューとして使用する
自動化シナリオを作成しておくことで、単にテストフェーズの中で使うだけでなく、追加開発の際に各自が影響範囲の確認として使用することができます。開発者にとって、開発段階からこれらを気軽にチェックできるのは大きなメリットと言えます。
単純なテスト工数と自動化工数の比較では効果が見えずらい場合は、これらのメリットが得られるかどうかも考えてみてください。担当者変更の引き継ぎ漏れや、バグがリリース後に発覚した場合の損失、開発サイクルの効率化による効果を数値に換算すると、やったほうがよいと判断できる現場も多いのではないでしょうか。またメリットの面については、自動化シナリオを作った後の活用方法となりますので、出口戦略としても検討しておくとよいでしょう。
Step4. テスト自動化の範囲を決める
Step1~3までの内容をチェックすることで、ツールによる UI テスト自動化が可能なのか、自動化すべきなのかの判断をおこなう材料が集まってきます。これらを踏まえ、効果が出そう、あるいは自動化を実施する意義が見出せる場合は、今後の進め方について具体的に検討します。
このステップでは、具体的にどのテストケースを自動化するかについて考えます。
まずは、現存するテスト仕様書などを、Step2の記載事項をもとに、ケースごとに自動化する/しないを分類してみましょう。さらに、最低限ここは自動化が必要という範囲と、最終的にここまで自動化できたらよいという範囲を決めておくと、今後シナリオ作成を進めていく中での調整や、費用対効果の計測がしやすくなります。
最終的にはStep2で自動化に適していると判断したテストケースをすべて自動化することを目指しますが、人的/時間的リソースや、事前に見つからなかった自動化上の課題により、すべての自動化が難しいケースもあります。小さい範囲に区切って始めることにより、以下のようなメリットが挙げられます。
スモールスタートのメリット
1回のテスト自動化プロジェクトですべてを完了しようとせず、まずは小さくはじめてみましょう。
- 費用対効果(ROI)を計測しやすい
- 途中で課題が発生した際にスケジュール修正や方向転換がしやすい
- 進めながら学習してノウハウをためていくことができる。次回以降、自動化範囲を広げる際にそのノウハウを活用できる
- 小さいテストをたくさん作ることで、次回以降で既存のテストを組み合わせて追加シナリオが作成できる
1回のテスト自動化プロジェクトですべてを完了しようとせず、まずは小さくはじめてみましょう。
ヒント
一般的に、Webアプリ、デスクトップアプリ、モバイルアプリの順でテストの難易度が上がっていきます。テスト対象のプラットフォームが複数ある場合は、まずWebアプリの自動化から始めるとよいでしょう。
Step5. スケジュールを立てる
テスト自動化の範囲が決まったら、具体的なスケジュールを立てましょう。スケジュールについては、はじめてのテスト自動化の際は各作業の工数の正確な見積もりが難しいと思いますので、最低限の範囲に絞って、ざっくりとしたスケジュールを立てるだけでもかまいません。
スケジュール設定のポイント例
- いつまでに各フェーズを完了するかを決める
- 各作業の担当者を決める
- 各作業工数のバッファーを設定する
ミニマムの範囲でプロジェクトの中で、テスト自動化のノウハウや次回以降使えるドキュメント、各作業にどのくらい時間・手間がかかるかをチェックして、それらの情報を使って次回のスケジュールの精度向上に役立てられるようにしておくとよいでしょう。
まとめ
本記事では、テスト自動化を成功させるための計画立案のポイントについて紹介しました。計画段階での準備がしっかりしているほど、後のテスト自動化の進行がスムーズになり、重要な機能やシナリオのテストを漏れなく自動化できるため、、最終的な成果物の品質を高めることができます。
次回の記事では、計画の後のフェーズであるテスト設計について詳しくご紹介します。
これからテスト自動化を取り組む方にとって、次回も有益な情報ですので、ぜひご参考ください。
UI テスト自動化ツール Ranorex
弊社では、UI テスト自動化ツール Ranorex を取り扱っています。Ranorex は、デスクトップアプリ、Webアプリ、モバイルアプリに対応したUIテスト自動化ツールです。多くのサードパーティー製コントロールなど、さまざまなテクノロジーをサポートしており、画面操作をキャプチャすることで、テストシナリオを自動生成できるため、ノーコードで簡単にテストを作成できます。また、GUI 操作で直感的に操作できるため、メンテナンスも簡単におこなえます。
もし、Ranorex にご興味ありましたら、まずは 製品紹介Webinar にお気軽にご参加ください。製品紹介 Webinar では、Ranorex の概要やデモンストレーション、事例などをご紹介しています。
また、Ranorex は、無料で14日間、体験版を利用いただけますので、実際に使用感を試したい方は、ぜひダウンロードください。
関連情報
テクマトリックス株式会社では、無償で受講できるRanorex ハンズオンセミナー(初級コース)をご用意しています。ハンズオンセミナーでは、 Ranorex の概要や基本機能の使い方について学ぶことができますので、効率的にツール学習できます。
また、今回の記事は、Ranorex を使用したテスト自動化の計画・設計や運用の具体的な進め方を学べる有償トレーニング Ranorex によるテスト自動化ガイド の内容をもとに作成しています。Ranorex を使用したテスト自動化プロジェクトの進め方について、より具体的な知見が欲しい方は、ぜひご参加ください。