テスト自動化を成功させるには、テスト計画だけでなく、テスト設計を明確に定めることも重要です。計画がテスト自動化の全体的な方向性を決定するのに対し、テスト設計ではその計画を具体的なステップに落とし込みます。適切な設計をおこなうことで、テスト自動化シナリオの作成効率が向上し、チーム全体の作業をスムーズに進めることができます。
例えば、テストの共通化を検討することで、テストの無駄な重複を防ぐことができ、テスト作成やメンテナンスがしやすくなります。また、事前にテストデータや環境設定を整えることで、テスト実行中のトラブルを減らし、問題の早期発見と迅速な修正が可能です。
この記事では、テスト設計で重要なポイントをご紹介します。
テスト自動化とは?
テスト自動化は、ソフトウェアやアプリケーションのテストプロセス全体を自動化することを指します。
これまで手動でおこなっていたテスト作業を自動化することで、効率的にテストを実行し、品質を向上させることが目的です。
今までのテスト自動化通信では、テスト自動化の概要を始めとし、テスト自動化の進め方についてご紹介しています。
今回の記事では、UIテスト自動化の全体像におけるテスト設計について解説します。

テスト自動化のテスト設計とは?
テスト自動化のテスト設計とは、テスト計画に基づいて実施すべきテストケースやテストデータ、実行環境などを具体的に決定する作業です。テスト実行に必要な条件やリソースが事前に整備されることにより、実行時の無駄なトラブルを減らすことができ、重要な問題への迅速な対応が可能です。また、テスト設計でテストの共通化を検討することで、重複を防ぎ、テスト作成やメンテナンスの工数を最小限に抑えるなど、効率的なテスト運用が実現できます。
テスト自動化のテスト設計の流れ
テスト設計は、UIテスト自動化における全体像のテスト計画の次のフェーズです。テスト計画では、テスト自動化の戦略、ゴール、範囲などの指標を定義し、スケジュールを計画しました。このテスト計画で定めた指標を基に、テスト設計では具体的なテストケースやテストデータ、実行環境などを決定していきます。また、ここで決定した内容をマニュアル化しておくことで、担当者変更時の引継ぎなどをスムーズに進めることができます。
テスト自動化のテスト設計の流れは以下の通りです。

Step 1. 自動化用のテスト構成を検討する
まずは、テスト計画で決めた自動化対象のテストをどのような構成で作るかを考えます。
自動化ツールにより、テスト構成の名称や単位は異なりますが、一般的にテストケースとテストスクリプトで大きく分類できます。
テスト構成において、テストケースは特定の機能や画面を検証するための枠組みとなり、テストスクリプトはそのテストケースを実行するための具体的な操作手順を示したテスト資産です。テストスクリプトは、一連の流れごとに分けて管理することで、どのようなシナリオのテストケースかが分かりやすくなり、テストの管理がしやすくなります。
テスト構成例 (対象:商品購入のECサイト)
※自動化ツールにより、名称や単位は異なるため、あくまで一例として参照ください。
テストケース1:ユーザーログインのテスト
- テストスクリプト1: ログインページのアクセス
アクション: 「ログイン」ページのURLをブラウザで開く - テストスクリプト2: ユーザー名とパスワードの入力
アクション: ユーザー名フィールドに「testuser」を入力する
アクション:パスワードフィールドに「password123」を入力する - テストスクリプト3: 「ログイン」ボタンのクリック
アクション: ログインボタンをクリックする
テストケース2:商品検索のテスト
- テストスクリプト1: ホーム画面にアクセス
アクション:ECサイトのホーム画面を開く - テストスクリプト2: 商品名の検索
アクション:検索入力フォームをクリックする
アクション:「(具体的な商品名)」を入力する - テストスクリプト3: 商品一覧の表示確認
アクション:対象の商品が表示されていることを検証する
このように機能ごとにテストケースを分けて、テストスクリプトを管理することで、どこまでのテストが作成できたかの把握がしやすくなり、またテストの結果でエラーとなった場合にどの機能の操作で失敗したかが検討しやすくなるため、早期に問題を発見してスムーズに修正がおこなえるようになります。今回の例では、機能ごとにテストケースを分けましたが、実施したいテストに合わせてテストケースの内容は柔軟に変更ください。
Step 2.テストの共通化を検討する
自動化ツールには、テストを共通化する機能を備えているものが多くあります。共通化できる機能がある場合は、活用することをおすすめします。共通化することで、重複したテストを作ることを防ぎ、テスト作成工数を削減するだけでなく、メンテナンスの工数も削減できます。
Step1で検討したテスト構成を基に、テストの共通化ができる部分を検討ください。
共通化できる処理の例
- 複数テストケースで何回も出てくる操作
例: システムへのログイン、メニューを開く操作など
- 同一画面で、操作内容は同じで入力値のみ異なる操作
例: 登録画面で、全角/半角/英数の入力チェックをおこなうケースなど
共通化できない処理の例
- レイアウトが似ている、別の画面の操作
⇒ 手順が同じでも、アプリの内部構造が異なることにより、UI要素の認識ができないため
Step 3. 複数のデータパターンを使ったテストを検討する
Step2のテストの共通化と合わせて、複数のデータパターンを使ったテスト(データ駆動型テスト)を検討します。たとえば、同一の要素に対し、複数パターンの文字列や数値を入力して検証したい場合に利用できます。
データ駆動型テストが活用できるシーンの例
※自動化ツールの特性により、できること・できないことは異なります。
- 同一のテキストボックスやテキストエリアの入力値
例: 氏名テキストボックスの入力チェックをおこなうため、「全角かな、半角カナ、全角英数、半角英数、記号」の5パターンの入力をおこないたい
- バリデーション(検証)の期待値
例: 登録ボタン押下後のエラーメッセージの文面をチェックする処理で、エラーメッセージのラベルに対して文字列検証(Validateアクション)を作成し、期待値をデータ駆動とする
- 実行環境による入力値・設定
例: 開くURLが異なるテスト環境とステージング環境で同じテストを使ってテストをしたい
- テーブルや表形式の各セルの認識
例: データにより、何行目を選択するかをコントロールしたい
Step 4. コーディング規約や命名規則を検討する
このステップは、特に複数人でシナリオ作成を進める際に重要なポイントです。ここまでのStep2でテストの共通化について検討しましたが、この分類が適切におこなえたとしても、分かりにくいテストスクリプト名などをつけてしまうと、共通処理があるのに見つけられず、同じ処理を作成してしまう恐れがあります。自動化ツールによっては、これらの名称で検索する機能がありますので、検索しやすい規則とすることをおすすめします。
コーディング規約/命名規則の例
※ご利用の自動化ツールの特性を考慮して、これらの規則を検討ください。以下は、テストケース、テストスクリプト、変数を管理でき、日本語で命名できるケースです。
- テストケース名:「機能名」のテスト
例) ユーザーのログインのテスト、商品検索のテスト
- テストスクリプト名:「項目」の「操作内容」(体言止め)
例) ログインページのアクセス、商品の検索
- 変数名:「画面名」_「項目名」
例) ログイン画面_ユーザーID
- 全体:英字については、キャメルケースで記述すること
ツールの特性に合わせて、テストケース名やテストスクリプト名に「画面名」を付与するなど、より具体性を持たせて特定しやすいような命名規則を付けてください。
Step 5. 複数人での開発方法を検討する
開発や受入テストの現場でUIテスト自動化をおこなう場合、チームでシナリオを作成することが多いかと思います。この場合、作成したシナリオをどう管理するか、誰がどのファイルを触るかを決めておくとスムーズに開発を進めることができます。一人で作成する場合でも、その後の管理や担当者が変わったときの引き継ぎに備えて、先に検討しておくことは非常に有用です。
作成したシナリオの管理方法として、一般的には以下の2種類の方法が使われます。
- テストの一式を共有フォルダやクラウドで管理する
- バージョン管理ツールを利用する
SaaS型のツールでは、テスト資産をクラウドで管理できるため、Webブラウザ上で複数人でテストの更新などができます。一方で、クライアント型ツールの場合は、共有フォルダ、もしくはバージョン管理ツールを利用してテスト資産を管理する必要があります。ご自身が利用する自動化ツールの特徴に合わせて、開発方法を検討ください。
Step 6. 実行環境を検討する
作成したテストを、どのような環境で実行するかを検討します。
自動化ツールのライセンス構成やテスト対象などを考慮し、以下のようなポイントを確認しておきましょう。
- 使用する自動化ツールのバージョン
- 何台のマシンで実行するのか
- 実行したい環境の種類 (Windows OS、Webブラウザーの種類、テスト対象アプリのバージョンなど)
- オフライン環境でのテスト作成・実行の有無
自動化ツールのライセンスの種類によっては、テストケースや実行の回数などが限られている場合もありますので、そのあたりも含めて検討ください。
Step 7. マニュアル作成
ここまで検討した内容で、チーム全体に共有すべきことをドキュメント化してマニュアルを作成しておきましょう。
特に テスト構成、コーディング規約/命名規則 については、複数人で自動化シナリオを作成する際に重要な情報ですので、ドキュメント化して、担当メンバーが自動化を始める前に必ずマニュアルに目を通していただくよう指導することをおすすめします。
また、事前準備の段階でアプリ内の特殊な作りの画面などで、自動化ツールの基本機能では対応できない部分の対処法など、その現場特有の事情についてもマニュアルに記載しておくことで、メンバーが増えた場合にもシナリオ作成を効率よく進めることができます。
まとめ
本記事では、テスト自動化を支えるテスト設計のポイントについて紹介しました。適切なテスト設計ができていると、後の自動化用のテスト作成で進行がスムーズになります。また、テスト作成を考慮した事前準備ができていることで、テストが上手くいかないなどの無駄なエラーを防ぎ、重要な問題に対処できるようになるため、最終的な成果物の品質を高めることが期待できます。
次回の記事では、テスト設計の後のフェーズであるシナリオ作成(実装)について詳しくご紹介します。
これからテスト自動化を取り組む方にとって、次回も有益な情報ですので、ぜひ参照ください。
UI テスト自動化ツール Ranorex
弊社では、UI テスト自動化ツール Ranorex を取り扱っています。Ranorex は、デスクトップアプリ、Webアプリ、モバイルアプリに対応したUIテスト自動化ツールです。多くのサードパーティー製コントロールなど、さまざまなテクノロジーをサポートしており、画面操作をキャプチャすることで、テストシナリオを自動生成できるため、ノーコードで簡単にテストを作成できます。また、GUI 操作で直感的に操作できるため、メンテナンスも簡単におこなえます。
もし、Ranorex にご興味ありましたら、まずは 製品紹介Webinar にお気軽にご参加ください。製品紹介 Webinar では、Ranorex の概要やデモンストレーション、事例などをご紹介しています。
また、Ranorex は、無料で14日間、体験版を利用いただけますので、実際に使用感を試したい方は、ぜひダウンロードください。
関連情報
テクマトリックス株式会社では、無償で受講できるRanorex ハンズオンセミナー(初級コース)をご用意しています。ハンズオンセミナーでは、 Ranorex の概要や基本機能の使い方について学ぶことができますので、効率的にツール学習できます。
また、今回の記事は、Ranorex を使用したテスト自動化の計画・設計や運用の具体的な進め方を学べる有償トレーニング Ranorex によるテスト自動化ガイド の内容をもとに作成しています。Ranorex を使用したテスト自動化プロジェクトの進め方について、より具体的な知見が欲しい方は、ぜひご参加ください。