知識ベース

キーワード駆動テスト

キーワード駆動テストはテーブル駆動テストまたはアクションワードベースのテストアクション駆動テストと混同しないでください)とも呼ばれ、手動テストと自動テストの両方に適したソフトウェアテスト手法です。このメソッドは、使用するデータを含むテストケースのドキュメントを、テストケースの実行方法の規定から分離します。その結果、テスト作成プロセスは、設計と開発の段階と実行段階の2つの異なる段階に分けられます。設計サブステージは、要件分析と評価、データ分析、定義、および母集団を対象としています。

概要

この方法では、キーワード(またはアクションワード)を使用して、 Enter Clientなどのテストする機能をシンボル化します。キーワードEnter Clientは、データベースに新しいクライアントを入力するために実行する必要がある一連のアクションとして定義されます。そのキーワード文書には以下が含まれます。

  • テスト対象システム(SUT)の開始状態
  • 開始するウィンドウまたはメニュー
  • キーまたはマウスのクリックにより、正しいデータ入力ウィンドウに移動します
  • 検索するフィールドの名前と入力する引数
  • 追加のダイアログがポップアップした場合に実行するアクション(確認など)
  • クリックして送信するボタン
  • アクションの完了後のSUTの状態についてのアサーション

キーワード駆動テスト構文は、テーブル形式を使用してテストケースをリストします(以下の例を参照)。最初の列(列A)には、テスト中の機能であるEnter Clientというキーワードが含まれています。次に、残りの列BEには、キーワードの実行に必要なデータ(名前、住所、郵便番号、市区町村)が含まれます。

A B C D E
名前住所郵便番号シティ
クライアントを入力ジェーン・スミス 6ハイストリート SE25 6EP ロンドン

別のクライアントを入力するには、テスターはテーブルに別の行を作成し、Enter Clientをキーワードとして、新しいクライアントのデータを次の列に作成します。含まれているすべてのアクションを再リストする必要はありません。

その中で、次の方法でテストケースを設計できます。

  • テストを実行するために、アプリケーションおよびシステムと対話するために必要な高レベルの手順を示します。
  • 機能を検証および認証する方法を示すことは、適切に機能しています。
  • テストの前提条件を指定します。
  • テストの受け入れ基準を指定します。

ソフトウェア開発の反復的な性質を考えると、テスト設計は通常、テストを手動で実装するよりも抽象的です(具体性は低くなります)が、簡単に進化させることができます。

長所

キーワード駆動テストでは、テスト対象のシステム/ソフトウェア(SUT)の変更に起因するメンテナンスに対する感度が低下します。画面レイアウトが変更された場合、またはシステムが別のOSに移行された場合、テストケースにほとんど変更を加える必要はありません。変更は、キーワードの使用回数に関係なく、キーワードごとに1つのドキュメントに行われます。テストケース、およびテスト設計の深いプロセスを意味します。

また、キーワードの実行方法に関する非常に詳細な説明(キーワードのドキュメント内)により、ほとんどすべての人がテストを実行できます。したがって、キーワード駆動テストは、手動テストと自動テストの両方に使用できます。

さらに、このアプローチは、テスト作業に関連して生成されたすべてのツール、資産、およびデータを統合するオープンで拡張可能なフレームワークです。この単一のフレームワークの下で、テスト作業のすべての参加者は、彼らが目指している品質目標を定義および改善できます。チームは、それらの目標を達成するために実装する計画を定義します。そして、最も重要なことは、いつでもシステムの状態を判断するために、チーム全体に1つの場所を提供することです。

テストは、ソフトウェア開発プロセスにおけるフィードバックメカニズムです。開発作業の任意の反復でコースを維持するために修正を行う必要がある場所を示します。また、開発中のシステムの現在の品質についても説明します。テストを実装するアクティビティには、テストケースを実装する再利用可能なテストスクリプトの設計と開発が含まれます。実装後、テストケースに関連付けることができます。

実装はテストプロジェクトごとに異なります。 1つのプロジェクトでは、自動化されたテストスクリプトと手動のテストスクリプトの両方を作成することを決定できます。代わりに、テストの設計は反復プロセスです。ユースケースの仕様、要件、プロトタイプなどに基づいてテスト設計を行うことにより、システム実装の前にテストの設計を開始できます。システムがより明確に指定され、使用するシステムのビルドができたら、設計の詳細について詳しく説明できます。テストを設計するアクティビティは、「テストをどのように実行しますか?」という質問に答えます。完全なテスト設計は、システムで実行する必要のあるアクションと、システムが観察される場合に観察すべき動作と特性について読者に通知します正常に機能しています。

テスト設計は、テスト実装の構築方法を決定する際に行うべき設計作業とは異なります。

方法論

キーワード駆動テスト方法論は、テストプロセスの実行をいくつかの段階に分割します。

  1. モデルベース/プロトタイピング:要件の分析と評価。
  2. テストモデルの定義:結果要件の評価で、独自のソフトウェアモデルにアプローチします。
  3. テストデータ定義:定義された独自のモデルに基づいて、開始キーワードとメイン/補数データ定義。
  4. 試験準備:摂取試験基準など
  5. テスト設計:テスト基盤の分析、テストケース/手順設計、テストデータ設計。
  6. 手動テストの実行:キーワードドキュメントを実行ガイドラインとして使用したテストケースの手動実行。
  7. テスト実行の自動化:キーワード文書に従ってアクションを実行する自動スクリプトの作成。
  8. 自動テスト実行。

定義

キーワードまたはアクションワードは、テストオブジェクトのアクションの定義された組み合わせであり、テストラインの実行方法を記述します。アクションワードには引数が含まれ、テストアナリストによって定義されます。

テストは、開発プロセスの重要なステップであり、一連のテストまたはチェックをオブジェクトに適用する必要があります(システム/ SWテスト-SUT)。テストではエラーの有無のみを表示でき、エラーの有無は表示できないことを常に覚えておいてください。 RTシステムテストでは、SUTが正しい出力を生成するかどうかを確認するだけでは不十分です。また、その出力を生成するのにかかる時間が予想どおりであることを確認する必要があります。さらに、これらの出力のタイミングは、入力のタイミングにも依存します。次に、適用可能な将来の入力のタイミングは、出力から決定されます。

テスト実行の自動化

実装段階は、ツールまたはフレームワークによって異なります。多くの場合、自動化エンジニアは、「check」や「enter」などのキーワードを提供するフレームワークを実装します。テスターまたはテスト設計者(プログラミングの方法を知る必要はない)は、エンジニアが実装した計画段階で定義されたキーワードに基づいてテストケースを作成します。テストは、キーワードを読み取り、対応するコードを実行するドライバーを使用して実行されます。

他の方法では、オールインワンの実装段階が使用されます。テスト設計とテストエンジニアリングのタスクを分離する代わりに、テスト設計テスト自動化です。 「編集」や「チェック」などのキーワードは、必要なコードがすでに記述されているツールを使用して作成されます。キーワードの実装はすでにツールの一部であるため、これにより、テストプロセスでの余分なエンジニアの必要性がなくなります。例には、GUIdancerおよびQTPが含まれます。

長所

  • 長期的にはメンテナンスが少ない:
    • テストケースは簡潔です
    • ステークホルダーがテストケースを読むことができる
    • テストケースは簡単に修正できます
    • 新しいテストケースでは、既存のキーワードをより簡単に再利用できます
  • 複数のテストケースでのキーワードの再利用
  • 特定のツールやプログラミング言語に依存しない
  • 分業
    • テストケースの構築には、より強力なドメインの専門知識が必要-少ないツール/プログラミングスキル
    • キーワードの実装には、より強力なツール/プログラミングスキルが必要です-比較的低いドメインスキル
  • レイヤーの抽象化

短所

  • 市場投入までの時間の延長(手動テストまたは記録と再生の手法と比較して)
  • 最初は適度に高い学習曲線