自動化プロジェクトの計画
SUTの一貫性を検証する
Eggplantでプロジェクトを開始する際に最初に行うべきことは、AUT/SUTを理解することです。EggplantはUI層で自動化を行うため、ユーザーの視点からテストを実装し、自動化をわかりやすく実現します。
このセクションの目標は以下の通りです:
- 繰り返しとなる動作と機能を特定する。
- 潜在的な自動化リスクと複雑なシナリオを特定する。
- 主要な自動化アプローチを決定する(OCRまたは画像)。
この例では、NopCommerceサイトで一連の操作を実行し、UIの動作を観察します。
繰り返しとなる動作と機能を特定する
ユースケースのステップを並べて、それらの共通点を観察しましょう。
デスクトップフロー
アパレルフロー
AUTの観察


- NopCommerceのロゴはウェブページの読み込みを検証するために使用できる
- UIはテキスト主導で、アイコンはほとんどない
- プライマリーとセカンダリーのドロップダウンナビゲーション


- 両方の商品ページでコンテンツは一貫した方法で提示されている
- 主にテキストからの操作で、いくつかのグラフィカルアイコンがある


- 商品名は主要な検証項目になる可能性がある
- 両方の商品でコンテンツは一貫した方法で提示されている
- 主にテキストからの操作
- リスト項目
潜在的な自動化リスクと複雑なシナリオを特定する
複雑なシナリオとは、特定の検証が必要である、または一度きりの振る舞いが存在する場合が該当します。これには、再利用可能な関数の多重の組み合わせまたは個別のコードが必要です。ベストプラクティスでは複雑なテストケースには深くは触れませんが、補足として、商品ページ上の例を次に示します。
複雑な機能に対しては、アプローチをシンプルに保つことが重要です。場合によっては、ユーザーがAUTを操作する通りに自動化行うことが最良の結果をもたらします。
テストステップの例
AUTの観察

- コスト、SKU、名前など、アイテムの詳細のレイアウトが一貫している
- すべてのアイテムに数量に基づく価格設定があるわけではない
- Ratingsは形式と機能について共通している
主要な自動化アプローチ(OCRまたは画像)を決定する
プロジェクトを進める際、自動化を推進するための適切なエンジンを選ぶことが重要です。これらのトピックの詳細については、ベストプラクティスのOCRまたは画像セクションで確認できます。ただし、どのエンジンを使用するかについての決定は、以下の基準に基づいて行うことができます:
テキスト主導のユーザーインターフェイス
アイコンやロゴ
低いメンテナンス要件 / 頻繁なUI更新
UIの変更を高精度で識別する
データ駆動型テスト / 動的な入力と出力
複雑なフォント
テキストが辞書にない単語または3文字以下の場合
OCRを使用すると複雑な処理が必要な場合
アプリケーションのパフォーマンス/速度を検証する場合