キーワード駆動テスト フレームワークと例

⚡ スマートサマリー

キーワード駆動型テストは、マップによってテストロジックと自動化コードを分離します。ping 平易な言葉で書かれたキーワードを再利用可能な関数に割り当て、テスターが個々のテストケースごとにスクリプトを書く代わりに、スプレッドシートを使って自動化されたテストスイートを設計、保守、拡張できるようにする。

  • 🔑 キーワードの基本: openbrowser、click、Typtextといったあらゆる動作は、それぞれが正確に1つの関数に裏付けられた、自己記述的なキーワードとなる。
  • 🧩 4つの構成要素: Excelシート、関数ライブラリ、データシート、およびオブジェクトリポジトリによって、手順、オブジェクト、アクション、およびデータが分離されます。
  • 📊 テーブル駆動型デザイン: テスターはパラメータ付きのキーワード行としてテストケースを記述するため、テストを作成するのにスクリプト言語の知識は必要ありません。
  • ⚙️ ドライバースクリプトの実行: ドライバスクリプトは各キーワードを読み取り、マッピングされた関数を呼び出し、結果をシートに書き戻します。
  • 🧪 工具の選択: HP QTP, Selenium、および Robot Framework はすべて、カスタム解析なしでキーワード テーブルを解釈します。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ フレームワーク適合性: ハイブリッド設定では、キーワードとデータ駆動型の入力を組み合わせることで、テスト手順を重複させることなくカバレッジを拡大します。
  • 🚧 間接費の計画: キーワードの設計とライブラリの維持には時間とコストがかかるため、語彙数を少なく抑え、リリースごとに見直すようにしましょう。

キーワード駆動テストとは何ですか?

キーワード駆動テスト データ ファイルを使用して、テスト対象のアプリケーションに関連するキーワードを含めるスクリプト手法です。 これらのキーワードは、特定の手順を実行するために必要な一連のアクションを説明します。

キーワード駆動テストは、キーワード引数を含む高レベルおよび低レベルのキーワードで構成され、テスト ケースのアクションを記述するために構成されます。 テーブル駆動テストまたはアクションワードベースのテストとも呼ばれます。

その キーワード駆動フレームワーク これは、その手法に基づいて構築された機能自動化テストフレームワークです。自動化を向上させるために、テストケースをコーディングとテストケースおよびテストステップから分離するために、テストケースを4つの異なる部分に分割します。具体的には、テストステップ自体、それらのステップが作用するオブジェクト、それらのオブジェクトに対して実行されるアクション、およびそれらに提供されるデータです。

キーワード駆動テストでは、まず一連のキーワードを特定し、次にこれらのキーワードに関連するアクション (または機能) を関連付けます。 ここでは、ブラウザの開閉、マウスクリック、キーストロークなどのすべてのテスト操作が、次のようなキーワードで記述されます。 ブラウザを開く、クリック、タイプテキスト などがあります。

下の図は、2つの一般的なビジネスアクションが再利用可能なキーワードに変換される様子を示しています。 次に例を示します。:

  1. login 「guru99」Web サイトへ – キーワード「ログイン」は、ログイン機能またはそれに関連付けられたアクションをテストするために、自動化フレームワークで使用されます。
  2. ログアウト 「guru99」Web サイトへ — キーワード「ログアウト」は、自動化フレームワークで、ログアウト機能またはそれに関連付けられたアクションをテストするために使用されます。

記事の後半でさらに多くの例をご覧いただけます。パターンは決して変わりません。1つのビジネスアクション、1つのキーワード、1つの機能です。

キーワードの例

以下の用語集は、銀行アプリケーションでよく使われるキーワードと、それぞれのキーワードが引き起こすビジネスアクションを一覧にしたものです。

キーワード 詳細説明
ログイン guru99銀行デモサイトにログイン
メール 送信
ログアウト guru99銀行デモサイトからログアウトする
お知らせ 未読の通知を見つける

💡ヒント: キーワードは技術的な手順ではなく、ビジネス上の行動に基づいて命名するべきです。「ログイン」はページのリニューアル後も有効ですが、「青いボタンをクリック」はそうはいきません。

キーワード駆動型フレームワークの構成要素

キーワードとは何かを知るだけでは、半分しか達成できません。キーワード駆動型フレームワークを作成するには、それぞれが1つの関心事を扱う少数のファイルを組み立てる必要があります。

  1. Excelシート キーワードを特定し、テスト手順ごとに1行ずつExcelシートに保存します。
  2. 関数ライブラリ – ビジネスフロー(あらゆるウェブサイトのログインボタンなど)に必要な機能で構成されています。テストが実行されると、Excelシートからキーワードを読み取り、それに応じて関数を呼び出します。
  3. データシート アプリケーションで使用するテストデータを保存することで、1つのキーワードで複数の入力値に対してテストを実行できます。
  4. オブジェクトリポジトリ キーワードが関連するすべての要素のロケーターを保持するため、変更されたロケーターは1か所で編集できます。
  5. テストスクリプト – あなたには テストスクリプト 各マニュアルについて テストケース または単一のドライバスクリプト。
  6. ドライバースクリプト – Excelシートを1行ずつ走査し、各キーワードを関数ライブラリに対して解決し、結果を記録します。
  7. 自動化ツール 解決されたコマンドをアプリケーションに対して実行し、レポートレイヤーに情報を提供する。

これら7つのピースを合わせると、完全な テスト自動化フレームワークなぜこのデザインを選んだのですか?

キーワード駆動テストを行う理由

ソフトウェアエンジニアリングでは、キーワード駆動テストは次の理由で行われます。

  • 標準ライブラリで扱う共通コンポーネント
  • このアプローチを使用すると、テストをより抽象的に記述できますtract マナー
  • 高度な再利用性
  • スクリプトの詳細はユーザーには隠されています
  • ユーザーはスクリプト言語を使用する必要はありません
  • テストは簡潔で、保守しやすく、柔軟です

キーワード層はアプリケーションの変更を吸収するため、 回帰試験 このスイートは、数百ものスクリプトを編集するのではなく、少数の関数を編集することで、グリーンな状態を維持しています。この考え方が、このアプローチの適用方法を決定づけています。

キーワード駆動テストの実行方法

キーワード駆動型テストは、手動と自動の両方の方法で実施できますが、通常は自動テストと組み合わせて使用​​されます。

キーワード駆動型テストを自動化する目的は

  • メンテナンスコストの削減に貢献します
  • 仕様の重複を避ける
  • 関数スクリプトの再利用の向上
  • テストのサポートと移植性の向上
  • より少ない労力または同じ労力でより多くのテストを達成

キーワード駆動型テストを使用すると、シンプルな 機能テスト 開発の初期段階では、アプリケーションを部分ごとにテストします。キーワード駆動型テストを作成する最も簡単な方法は、テストを記録することです。記録後、テストは要件に応じて変更およびカスタマイズできます。

各キーワードは、そのキーワードに関連するアクションを実行するコマンド、テストスクリプト、または関数と少なくとも1つ関連付けられる必要があります。

テスト ケースが実行されると、キーワードはテスト自動化フレームワークによって呼び出されるテスト ライブラリによって解釈されます。

キーワード駆動型テストに含まれる主な活動は以下のとおりです。

  • ステップ1) 高レベルのキーワードだけでなく低レベルのキーワードも特定する
  • ステップ2) キーワードを実行可能ファイルとして実装する
  • ステップ3) テストケースの作成
  • ステップ4) ドライバースクリプトの作成
  • ステップ5) 自動テストスクリプトの実行

ステップ1と2は一度限りの設計作業であり、ステップ3から5は、以下のサンプルに示すように、スプリントごとに繰り返されます。

サンプルテストケース

これら3つのシナリオは、先に定義した同じキーワードを再利用しています。

  1. TC_01: guru99 デモ サイトにログインし、今日実行されたトランザクションの数を確認します。
  2. TC_02: guru99 デモサイトにログインし、顧客の XNUMX 人にメールを送信してからログアウトします。
  3. TC_03: guru99 デモ サイトにログインし、受信した通知を確認します

キーワードテーブルとして記述されたTC_02は、コードを開かなくてもテスターが読み取ったり並べ替えたりできる6行のテーブルになります。

手順 キーワード 引数 期待される結果
1 オープンブラウザ Chrome ブラウザセッションが開始されます
2 ログイン mngr123 / demopass マネージャーのホームページが表示されました
3 メール 顧客@example.com 作成ウィンドウが開きます
4 クリック 送信する Mail 「送信済み」と表示される
5 ログアウト セッション終了
6 ブラウザを閉じる ブラウザがリリースされました

Swapping ステップ3の引数は、同じ6行を別のテストに変換します。 テストデータ 経営手腕は報われる。

キーワード駆動テストの利点

  • これにより、機能テスターはアプリケーションの準備が整う前にテストの自動化を計画できます。
  • プログラミングの知識がなくてもテストを開発できる
  • 特定のプログラミング言語やツールに依存しない
  • 市場で入手可能なあらゆる自動化ツールと互換性があります

これらの利点は、キーワード駆動型テストが長期にわたるビジネスに適している理由を説明しています。 自動テスト スイートルーム。費用も重要です。

キーワード駆動型テストの限界

腹筋tracキーワード駆動型テストを読みやすくする工夫は、同時に構築コストも高めます。最初のテストを実行する前に、誰かがキーワードを特定し、それぞれを関数として実装し、オブジェクトリポジトリを接続し、ドライバスクリプトを作成する必要があります。小規模なプロジェクトでは、このセットアップコストはテストを直接スクリプト化するよりも高くなります。

メンテナンスは2番目に高いコストです。ライブラリはすべてのテストで共有されるため、不注意な編集が1つでテストスイート全体が壊れてしまいます。また、ライブラリは肥大化しがちで、チームは「Login」「SignIn」「DoLogin」など、ほぼ同じ内容のライブラリを追加してしまうことがあります。

  • 高い初期投資 フレームワークの設計とキーワードの実装は、テスト実行に先立って行われます。
  • 柔軟性の低下 テスターは既存のキーワードで許可されている範囲しか表現できないため、特殊なシナリオについては開発が必要となる。
  • 複雑なロジックには不向き 分岐やループは、平坦な表の行を妨げる。
  • スキルは依然として必要とされる キーワード層はコード不要だが、関数ライブラリはそうではない。

⚠️ 警告: Revリリースごとにキーワードライブラリを確認し、使用されていないエントリを削除してください。キーワード駆動型フレームワークが放棄される最も一般的な理由は、語彙管理が不十分であることです。

これらのトレードオフが、以下の比較を形作っている。

キーワード駆動型 vs データ駆動型 vs ハイブリッド型フレームワーク

キーワード主導型で データ駆動型テスト さまざまな問題を解決する。データ駆動型フレームワークは固定スクリプトの入力を変化させ、キーワード駆動型フレームワークは手順を変化させる。表には、多くの企業チームが採用しているハイブリッドモデルも記載されている。

側面 キーワード駆動フレームワーク データドリブンフレームワーク ハイブリッドフレームワーク
外部化されるもの テストの手順とアクション テストデータのみ ステップとデータの両方
計画作業 広範囲かつ正確 データとスクリプトに限定される 最高
メンテナンス より簡単に、より多くの腹筋trac層 もっとハードに、腹筋tracションは薄い 大規模に行うのが最も簡単
コーディングスキルが必要 関数ライブラリのみ すべてのスクリプトに必須 コア層に必要
構築前に開始できます はい いいえ はい

実際には、これらのスタイルは組み合わされます。ハイブリッドフレームワークは、ステップをキーワードとして、入力をデータシートに保存します。多くの場合、 ページオブジェクトモデル複数のテスターがテストを作成する場合はキーワード駆動型、1つのフローに多くの入力が必要な場合はデータ駆動型、両方が当てはまる場合はハイブリッド型を選択してください。

キーワード駆動テストに使用されるツール

キーワード駆動型テストには様々なツールが広く用いられており、それぞれがキーワードテーブルの解釈方法が異なる。

  • HP QTP – キーワードビューが組み込まれているため、シートと実行可能なテストは1つの成果物になります。
  • Selenium – ネイティブのキーワードレイヤーがないため、チームは関数ライブラリとドライバスクリプトを独自に構築する必要があります。
  • ロボットフレームワーク キーワードを中心に設計されたオープンソースのエンジンで、表形式の構文と多数の既成キーワードを備えています。
  • TestNG – 一般的に一緒に使われる Selenium キーワードにマッピングされたメソッドを順序付けしてレポートを生成する。

私たちのリスト 自動テストツール 各オプションのライセンスとプラットフォームサポートについて説明します。

よくあるご質問

AIアシスタントは、ユーザーストーリーからキーワード名をドラフトし、マッチングを支援できます。 Selenium セットアップのほとんどを省略するメソッドpingスイートが信頼できるものとなる前に、人間がビジネス用語を確認し、生成されたすべてのロケーターを検証する必要があります。

これは問題を完全に排除するのではなく、軽減するものです。自己修復エンジンは、ロケーターが破損した場合に周囲の属性から要素を再識別し、ルーチン的な修復作業を削減します。ただし、修復されたロケーターが誤った要素に静かに一致すると、実際の欠陥が隠蔽されるため、リポジトリのガバナンスは依然として必要です。

いいえ。どちらも読みやすい手順の背後にコードを隠しますが、BDD ツールは Cucumber 要件の共同作業のために、Given-When-Then形式の文を使用します。キーワード駆動型テストでは、自動化スイート内で再利用するために、表形式のアクションワードを使用します。

アプリケーションの許容範囲内で語彙をできるだけ少なく保ちましょう。通常は、ビジネスフローごとに数十個の低レベルアクションと1つの高レベルキーワードで構成されます。同じアクションを表すキーワードが2つある場合は、すぐに統合してください。重複があるとライブラリの保守が困難になります。

はい。キーワードシートを関数ライブラリと一緒にバージョン管理にコミットし、ビルドサーバーにドライバスクリプトを呼び出させます。例えば、 TestNG ハンドルグループping また、レポート機能も備えているため、単体テストと同様に、ビルドレポートにも障害結果が表示されます。