ローコードテスト自動化ツール T-DASH

E2Eテスト自動化の成功ステップを理解しよう

E2Eテストはエンドツーエンド(End to End)の略で、システム全体を対象としたテスト手法のことです。プロジェクトにおいて、各システムを結合して、最終段階で行われるテストになります。つまり、最終成果物が正しく動くことを確認するために行われるテストです。

もちろん、E2Eテストはテストの一環なので、テストに失敗することは多々あります。その際には、テストの失敗原因を特定して修正し、再度テストを実行します。しかし、E2Eテストは手動で行うと非常に時間がかかるため、自動化することが一般的です。本記事では、E2Eテストを自動化し、プロジェクトを成功裏に進めるためのステップについて解説いたします。

E2Eテストとは何か?

E2Eテストとは、システム全体の処理とデータが正しく仕様通りに動作するか確認するテストのことです。つまり、システム全体が正しく動くことを確認します。システムの多くはモジュールやコンポーネントから構成されていますが、E2Eテストはそれらを組み合わせた上で行われます。

テストにはさまざまな手法がありますが、E2Eテストには以下のような特徴があります。

– ユーザーの操作を模倣する

– システム全体を対象とする

– テスト対象がブラウザやアプリケーションの場合が多い

では、テスト手法について詳しくご説明してまいります。

ユーザーの操作を模倣する

E2Eテストは、ユーザーが実際に行う操作を模倣して実施されます。その結果、期待したメッセージが表示されたり、画面遷移やデータフローが期待通りに動作したりすることを確認できます。

システム全体を対象とする

E2Eテストは、システム全体を対象として行われます。一般的にユーザーは個々のモジュールを意識した操作は行いません。販売管理システムを操作した結果、在庫管理システムのデータが足し引きされたり、顧客管理システムのデータが更新されたりするのは一般的です。

ユーザーとしても、それぞれのシステムを都度操作するケースは少ないでしょう。E2Eテストでは、そうした一つの操作から一連のデータフローが正しく行われているかを確認します。

テスト対象がブラウザやアプリケーションの場合が多い

ユーザーの操作を模倣するのは、単にシステム的にデータが流れていれば良いわけではありません。実際のユーザー画面の操作を模倣することで、正しくデータが送受信されるかを確認します。UIとして多いのは、ブラウザやGUIアプリケーションになります。

E2Eテストの自動化のメリットと課題

E2Eテストはシステムの複雑な操作を対象としているため、手動で行うのは工数がかかります。データをテスト前の段階に戻したり、UIのステータスをリセットしたりするのは手間でしょう。そのため、E2Eテストの自動化は非常に有効です。

E2Eテストの自動化をする時に、考慮すべきポイントは以下の通りです。

1. 時間

2. コスト

3. リソース

4. スキル

それでは、E2Eテストの自動化のポイントをご紹介していきます。

時間

時間は2つあります。まず、1つ目はE2Eテストの自動化を実現するのにかかる時間です。つまり、ツールを学び、使いこなすまでに必要な時間になります。なるべく学習コストの低いツールを選択しましょう。

2つ目はテストにかかる時間です。E2Eテストはシステム全体を対象とするため、テストステップが長くなってしまうこともあります。そうしたテストが増えていくと、テスト完了までに時間を要します。もちろん、手動で行うのに比べれば圧倒的に速いですが、テストツールについては素早く実行でき、何度も繰り返せるものを選択しましょう。

コスト

コストは、ツールの導入やスクリプトの作成にかかる人的工数、運用などに関係します。ツールのライセンス料やサポート料、運用にかかるコストを考慮しましょう。オープンソース・ソフトウェアなど無償のものもあります。しかし、サポートが弱さや、機能がプロジェクト要求を満たしていない場合もあるので注意が必要です。

リソース

リソースは、E2Eテストを実行するための人材や環境です。すでにそのツールを使い慣れている人がいれば、導入障壁は低くなります。また、テスト環境構築に必要なリソースも考慮します。専用のOSやミドルウェア、データベースなどが必要になる場合もあります。

スキル

E2Eテスト自動化には、一定のスキルが必要です。テスト設計やテストケース・スクリプトの作成、結果の分析などのスキルが求められます。また、それらのスキルは個人ではなく、チーム全体で共有されなければなりません。こうした点においても、学習コストが低いツールの選択をお勧めします。

結合テストとE2Eテストの違いを理解しよう

E2Eテストと結合テストは、どちらもシステム全体を対象とするテスト手法です。そのため、混同されることがありますが、以下の違いがあります。

まず、E2Eテストはユーザーが操作する画面やアプリケーションを対象とします。つまり、ユーザーが直接操作する部分がテスト対象です。一方で結合テストは、単体テストを通過したコンポーネント同士を結合させたテストになります。つまり、システム全体を対象とする必要はなく、範囲は限定的です。

また、E2Eテストはユーザーの操作を模倣してテストを行いますが、結合テストはコンポーネント同士の連携を確認するテストです。つまり、E2Eテストはユーザーの視点でテストを行い、結合テストはシステムの内部構造を確認するテストという視点の違いがあります。

最後に、E2Eテストはシステム全体を対象とするため、テストにかかる時間が長くなりがちです。一方で結合テストは、単体テストを通過したコンポーネント同士を結合させる形なので、テストにかかる時間は相対的に短い傾向にあります。

テストピラミッドにおける位置づけ

テストピラミッドとは、自動テストのケース数の理想的な比率をピラミッド型に示したものになります。

(ここにテストピラミッドの図)

最も多いのは、単体テストになります。これは、個々の関数やクラスの動作を保証するテストです。次に、結合テストがあります。複数の関数やコンポーネントの組み合わせをテストします。最後に、E2Eテストがあります。システム全体を対象とするテストです。

ピラミッドの階層を上がるごとにコストが高くなります。そのため、テストケースの作成数も少なくなる傾向があります。テストピラミッドの観点では、E2Eテストは結合テストよりもテストスクリプトが少なくなるのが一般的です。

E2Eテストと結合テストの使い分け

E2Eテストと結合テストは、それぞれの特性を理解して使い分けましょう。たとえば、ユーザーはひとつの操作を行っただけとしても、複数のAPIを呼び出してワークフローを完了させる仕組みがあります。その際、ひとつずつのAPI実行結果は、結合テストによって保証されなければなりません。その上でE2Eテストを行い、ユーザー操作の動作保証を行います。

E2Eテストの自動化を成功させるためのステップ

ここからは、E2Eテストの自動化を成功させるためのステップについて解説します。

1. テスト計画を立てる

2. ツールを選定する

3. テスト設計を行う

4. テストを実行する

5. テスト結果を分析・レビューする

6. テストをメンテナンスする

では次にE2Eテスト自動化の成功ステップを詳しく解説していきます。

1. テスト計画を立てる

テスト計画では、対象とするプロジェクトの選定やE2Eテストでどの部分をテストするのか、どのようなテストケースを作成するのかを明確にします。テスト対象の範囲やテストケースの作成方法、テストの実行頻度などを決定します。

テスト計画の基礎になるのは、システムの要件定義書や設計書です。これらを元にテストケースを作成し、テスト計画を立てます。

2. ツールを選定する

E2Eテストを自動化するためには、適切なツールを選定する必要があります。ツールの選定には、以下のポイントを考慮しましょう。

– テスト対象の環境に対応しているか

– テストケースの作成や実行が容易か

– テスト結果の分析がしやすいか

– テストのメンテナンスがしやすいか

3. テスト設計を行う

ここでは、テストケースを作成します。テストケースは、テスト対象の画面や機能を操作する手順や期待結果を記述したものです。テストケースは、テスト計画に基づいて作成します。

テストケースはプログラミングを用いて行うものもあれば、自然言語で書けるもの、表形式でまとめるものなどさまざまです。これらは、選定したツールによって異なります。

4. テストを実行する

作成したテストスクリプトを実行します。テストスクリプトはGUI画面を見ながら行うものもあれば、ヘッドレスブラウザ(ブラウザのUIを表示せずに操作するモード)を使って行うものもあります。

もし、ツールがCI/CDに対応しているものであれば、コードのコミットやマージに伴った自動実行も可能です。

5. テスト結果を分析する

テストツールの実行結果を確認、分析します。テスト結果には、テストケースの実行結果やエラーメッセージ、スクリーンショットなどが含まれます。そうした実行結果が確認しやすく、デバッグしやすいツールを選択しましょう。結果を分析後、必要に応じてシステムを修正して再度テストを実行します。

また、テスト自動化を通じてテスト効率が改善されたか、どれくらいのテストケースが自動化されたか、チームの反応、コスト対効果をレビューすると良いでしょう。こうしたレビューを行う際には、ステークホルダー全員を集めて行うことをお勧めします。

6. テストをメンテナンスする

テストスクリプトは一度作って終わりではありません。追加開発や仕様変更に伴って、テストスクリプトも修正が必要になります。そのため、スクリプトの修正容易性もツール選定時のポイントになります。

まとめ

E2Eテストの自動化を成功させるためには、適切なテスト設計とツール選定が欠かせません。ツールは学習コストの低さや要件との適合性、テスト結果の分析しやすさなどを考慮して選定しましょう。

バルテスでは[テスト自動化ツールT-DASH](/t-dash/)を提供し、E2Eテストの自動化を支援しています。E2Eテスト自動化について、ぜひお気軽にお問い合わせください。

誰でもカンタンにテスト自動化ができる時代は、すぐそこまできています。当サイトでは、テスト自動化ツールに興味のある方へ、「テスト自動化 推進ガイドブック」と「テスト自動化ツールT-DASH 基本ガイドブック」のダウンロード資料をご用意しております。ぜひダウンロードいただき、資料をご覧ください。

またテスト自動化ツール「T-DASH」を無料でトライアル利用できる環境もご用意しています。ぜひ、お試しいただき、ツールを活用したテスト自動化に挑戦してみてください。