mablでは、品質はチームとして管理するのが最適だと考えています。mablのテストを最大限に活用し、全体的なコラボレーションを向上させるために、「テストの読みやすさ」を優先することをお勧めします。以下のベストプラクティスは、テストをより理解しやすくするためのものです。
可能な限りローコードのステップを使用する
mablでは、ローコードインターフェースまたはカスタムメソッドを使用してテストステップを作成する柔軟性があります。ローコードステップの例としては、トレーナーで記録されたクリックやタップ、ネイティブアサーション、APIテストエディターでのローコードレスポンス検証などがあります。カスタムステップの例としては、要素の検索やJavaScriptスニペットなどがあります。
カスタムステップはラストマイルのユースケースを実装するのに最適ですが、以下の理由から、可能な限りローコードステップを使用することをお勧めします。
- カバレッジ: ローコードのステップはカスタムステップよりも迅速に作成できるため、テストカバレッジを構築しやすくなります。
- コラボレーション:ローコードのテストステップは、チームのすべてのメンバーが協力しやすくなります。対照的に、多くのカスタムステップを含むテストの作成は、テストのメンテナンスに貢献できる人の数を制限することがよくあります。
アサーションを最終目標に集中させる
アサーションは、テストが何を検証しているかを特定します。テストを作成する前に、次の質問を指針として最終的なゴールを検討してください。
- 何を検証しようとしていますか?
- この結果を検証するために、どのアクションを行う必要がありますか?
- 各アクションが期待どおりに機能することについて、どのようにアサーションを設定するか
アサーションがテストの最終目標と一致していると、テストが何をチェックしているのかを理解しやすくなり、テストが失敗したときに課題を特定しやすくなります。
効果的なアサーションの作成に関するアドバイスについては、次の記事を参照してください。
1つのテストであまり多くの結果を検証しないようにする
すべてのテストに当てはまるアプローチは存在しませんが、特定の結果に範囲を絞ったテストは理解しやすくなります。
可読性だけが、より短く、より焦点を絞ったテストを作成する理由ではありません。テストに数百のステップが含まれると、次のような障害が発生します。
- フィードバックサイクルの長期化: テストの実行時間が長くなると、フィードバックサイクルも長くなります。開発パイプラインでテストが並列実行されている場合、ステージ内のすべてのテストが完了するまでプランは続行できません。実行時間が短い、より小規模で焦点を絞ったテストを作成することで、並列プランの実行をより迅速に行い、アプリのリリースサイクル時間を短縮できます。
- メンテナンスの負担: テストがステップ248で失敗した場合、トラブルシューティングでアプリケーションを正しい状態に戻すには長い時間がかかる可能性があります。
複雑さを減らし、テストを読みやすくするために、テストの範囲を明確な結果に限定してください。複数のユーザーセッションを経てテストの最終目標を達成できる場合、1つのテストを複数の小さいテストに分割することを検討してください。
テストステップの意図を説明する
テストステップにさらなる説明と記述を追加して、チームが理解しやすくしてください。
ブラウザーテストとモバイルテストで
mablトレーナーでは、テストステップの意図を説明するためのいくつかのオプションがあります。
- Echoステップ - Echoステップを追加して、テストの異なるセクションを説明します。Echoステップの先頭に「#」、「##」、または「###」を付けると、ヘッダーになり、テストの異なる部分を視覚的に分けることができます。
- ステップの名前を変更 - テストステップをダブルクリックして、ステップ名を更新し、ステップが何をするのかをより意味のある説明にします。
- 注釈を追加 - さらに明確な説明が必要なステップには、注釈を追加して、さらに多くのコンテキストを提供します。
APIテストで
デフォルトでは、APIステップはMETHODとリクエストURLを表示します。ステップをより人間が読みやすくするために、APIテストエディターでリクエスト名を追加してください。
次の例では、最初のステップでリクエストが何をするかを説明するリクエスト名を使用しています。テスト内の後続のリクエストは、比較のためにデフォルトのMETHODとリクエストURLを示しています。
テスト命名規則を使用する
テストの命名規則は、チームがテストの目的を一目で理解し、冗長なテストの作成を避けるのに役立ちます。
テスト命名規則を設定する際には、チームにとって重要なことを考慮してください。サンプルの命名テンプレートには次のようなものが含まれるかもしれません:
- テスト対象アプリケーション
- テストケースID
- テストしているアプリの領域
- 特定の結果
例えば、mablではテストの命名に次のテンプレートを使用しています: アプリ - モジュール - 特定のテストケース名。このテンプレートに従ったテストの例には以下が含まれます:
- 「アプリ - テスト - テストページでの並べ替えとフィルタリングが期待通りに動作する」
- 「マーケティング - 登録 - トライアルに登録」