このガイドでは、ブラウザーテストをより効果的に、より容易に管理するためのベストプラクティスをご紹介します。ポイントは以下の3点です。
- テストの目的の明確化
- テストのフィードバックサイクルの最適化
- コラボレーションの円滑化
テストの目的の明確化
アプリケーションをテストする際、さまざまな機能に対して複数のユーザージャーニーと結果を検証しなければならない場合があります。ブラウザーテストを作成する前に、次の3つの質問を指針として最終的なゴールを検討してください。
- どのような「ユーザージャーニー」を検証しようとしているか
- このユーザージャーニーの結果を検証するために、どの「アクション」を行う必要があるか
- 各アクションが期待どおりに機能することについて、どのように「アサーションを設定する(アサートする)」か
1つのブラウザーテストにつき1つのユーザージャーニーに着目することで、結果の検証に必要なアクションを特定することができます。
たとえば、あるWebフォームを複数のログインセッションでも完了できることを検証する場合、結果が正しいことを検証するために次のアクションが必要になるかもしれません。
- アプリケーションにログインする
- フォームの半分まで完了する
- ログアウトする
- 同じクレデンシャルを使用してアプリケーションにログインする
- フォームの残りを完了する
- フォームを送信する
結果の検証が必要なアクションを特定した後で、各アクションが期待どおりに機能することについて、どのようにアサーションを設定する(アサートする)かについて検討します。
特定の機能が期待どおりに機能することを確認するには、アサーションが不可欠です。アサーションのベストプラクティスの詳細については、このガイドを参照してください。
たとえば、アクション「アプリケーションにログインする」をアサートするには、次のステップを記録できます。
- ユーザー名を入力する
- パスワードを入力する
- [ログイン] をクリックする
- ページに [ログアウト] ボタンが表示されることをアサートする
ユーザージャーニーから逆算して、結果を検証するために必要なアクションを特定すると、テストが最終目標を検証していることを確認できます。
テストのフィードバックサイクルの最適化
テストのフィードバックの所要時間を短縮することは、チームの効率化につながります。テストのフィードバックサイクルの短縮手順には次のようなものがあります。
- テストの並列実行
- テストの実行時間の短縮
テストの並列実行
プランに所定の実行順序がない場合、複数のテストを並列で実行することにより、フィードバックサイクルを短縮できます。テスト対象の環境でベースとなるリソースが限られている場合、同時実行の制限を設定して、並列実行するテストの数を調整できます。
テストの並列実行と同時実行性の管理の詳細については、プランのステージ設定に関するガイドを参照してください。
テストの実行時間の短縮
ブラウザーテストの最適なサイズは、検証する最終目標によって異なります。つまり、どのテストにも通用する汎用的なサイズは存在しません。ただし、テストに「数百」ものテストステップが含まれている場合、次のようにいくつかの障害が発生します。
- メンテナンスの負担: ブラウザーテストがステップ142で失敗した場合、トラブルシューティングでアプリケーションを正しい状態に戻すには長い時間がかかる可能性があります。
- フィードバックサイクルの長期化: テストが長くなると、開発パイプラインでのフィードバックサイクルに時間がかかります。テストを並列実行するプランの効率は、実行時間の最も長いテストと変わりません。
ブラウザーテストの実行とトラブルシューティングに長い時間がかかる場合は、テストの実行時間を短縮するために次のいずれかのアプローチを検討してください。
- テストを複数のテストに分割する: 複数のユーザーセッションを経てテストの最終目標を達成できる場合、1つのテストを複数の小さいテストに分割することを検討してください。
- 実行時間の長いテストステップを修正する: 実行時間の非常に長いステップがテストに含まれている場合、個々のテストステップを詳しく見る必要があります。ブラウザーテストの実行時間短縮の詳細については、テストパフォーマンスの最適化に記載された、各テストステップにとることができる方法を参照してください。
コラボレーションの円滑化
ブラウザーテストをわかりやすくすると、効果も高まります。そのためには、次のようにブラウザーテストのコラボレーションを円滑化するための手順を実行する必要があります。
- 命名規則の設定
- テストの説明の追加
- フローの最適化
- Echoステップの使用
- ステップ名の変更
命名規則の設定
チームと協力して、ブラウザーテストの命名に使用する最適な形式と条件を決定します。たとえば、テスト名を「アプリケーション名 - モジュール名 - テスト名」という形式にすることができます。
合意した命名規則に従うことで、ワークスペースのメンバー全員がテストを見つけることができ、それらのテストの実行内容を理解できるようになります。
テストの説明の追加
ブラウザーテストの作成フォームには「テストの説明」を入力するオプションのフィールドがあります。テストの説明を追加しておくと、ワークスペースの他のメンバーが、個別のステップをすべて読まなくてもテストの内容を把握できるようになります。
フローの最適化
フローは、一般的な一連のテストステップをカプセル化して他のユーザーが再利用できるようにする優れた手段です。フローを最大限に活用するには、次の問いに対処する計画をチーム内で立案する必要があります。
- 誰かがフローを作成した場合、チームの他のメンバーはそれをどのように知るか
- フローをどのように検出可能にするか
命名規則やレビュープロセスなどのベストプラクティスを確立することで、ワークスペースにおけるフローの検出と理解が容易になります。
フローを最適化すると、テストのメンテナンス全般を削減できるだけでなく、同じタスクを行うためにチームのメンバーがほぼ同じフローを複数作成する事態を防ぐことができます。
Echoステップ
Echoステップを追加すると、ステップとフローの意図を明確にしたり、テストを複数の小さい部分に分割して読みやすくしたりすることができます。
ステップ名の変更
ステップ名を変更して、ステップの実行内容を明確にすることができます。そのためには、Trainerウィンドウでステップをダブルクリックし、よりわかりやすい名前を指定します。