The Tables Feature and Keyword-Driven Testing

Using the tables feature in Eggplant Functional for keyword-driven testing can be a good choice for either manual or automated testing, particularly for larger organizations or in environments where you might want to separate the testing process and test development. This article explains what keyword-driven testing is and how you can use the tables feature to implement it in Eggplant Functional.

キーワード駆動テストとは何でしょうか?

キーワード駆動テストはテスト用フレームワークで、ファンクションテスト用スクリプトの開発と、テストケースまたはワークフローの作成とを別々に行う事ができます。テストする特別なファンクションを表すキーワードやアクションワードを使用します。それらは各キーワード(データ)用の引数と一緒に外部データ表内にあります。This approach is also known as scriptless testing, since you don't need to write scripts to parameterize test cases. このプロセスはデータ駆動テストと似ていますが、純粋にデータだけを入力するのではなく、キーワードと関連するデータを一緒にテスト実行ドライバに入力します。

In Eggplant Functional, you can implement keyword-driven testing with the tables feature. Suite(スイート)ウィンドウで表にアクセスし構築できます。スクリプトは表内で選択可能なアクションとなり、ユーザーは表を実行して各ステップの成功/失敗の結果を見る事ができます。Here's a quick video demonstration of tables in Eggplant Functional:

キーワード駆動テストでのユーザーの役割

このプロセスで、ワークフローは「バックエンド」での開発と、「フロントエンド」でのテストの実行に分離できます。フレームワークの開発者、またはテスト技術者は一般的に、テストに必要なアクションやキーワードの仕様のためにスクリプトを作成します。テスト解析者またはテスト担当者は表でテストのワークフローを構築してテストを実行します。この役割は高度な技術的熟練を必要としないので、組織によっては例えばビジネスアナリストのような人が担当する場合があります。

テスト技術者とテスト担当者は開発プロセスを通じて一緒に作業する事が重要です。環境の規模に応じて、両者の役割を同一人物がまかなう場合もあります。そのような場合、提供される表の柔軟性により、表を基にテストモデルを開発するのが有効だと気付くでしょう。

開発手順:キーワード駆動テストを表を使って作成する

アプリケーションをテストする場合は、アプリケーションのファンクションの幾つかのタイプを表す多くの独立した区分がある事に気付くと思います。例えば、小売りのウェブサイトをテストしている時には、Navigate_To_Website、Register、Search、 Add_To_Basketといったタスクが必要になるでしょう。スクリプトを開発する場合、全ファンクションは他とは独立して実行されるので、表を使って大量のテストケースが作成できます。

  1. テストを組み入れる個別の独立したタスクを特定します。

    この段階で、テスト技術者とテスト担当者は、一緒にブレインストーミングを行うのが良いでしょう。その目的は、テストプロセスのそれぞれ独立したアクションを特定するためです。例えば、上記の小売りウェブサイトの例で言うと、既にリスト化を開始しています。単純化するために、ウェブサイトにナビゲートし、検索を実行し、検索した項目を発見した事を検証して、ブラウザを閉じてテスト対象システム(SUT)に戻って元の状態に戻るシステムのテストを考えてみます。タスクとして考えられるのは、

    • Launch_Browser(ブラウザの起動)
    • Navigate_to_Website(ウェブサイトへのナビゲート)
    • Perform_Search(検索の実行)
    • Verify_Search(検索の検証)
    • Close_Browser(ブラウザを閉じる)
  2. それから各タスクのスクリプトを作成します。

    ウェブサイト検索の例として、テスト技術者はScripts(スクリプト)ペインで5種類のスクリプトを作成するつもりです。このプロセスは他のスクリプトを作成する場合と全く同じです。(For information about creating scripts, see The Script Editor.) Name the scripts with descriptive action words—your keywords—as in the list above. 実際にスクリプトを書いてアクションを実行する必要はやはりありますが、しかし今のところは、表の一部として実行したいアクションを作成して名前を付ける事だけを考えればいい点に注意してください。

    表の中でのアクションとしてスクリプトを利用したい場合は、それをInfo(情報)下のTable Action(表アクション)ペインでExecute(実行)またはVerify(検証)のどちらかに設定します。Scripts(スクリプト)ペインで選択したスクリプトで、Info(情報)ボタンをクリックすれば、Table Action(表アクション)ペインが現れます。

    The Table Action pane in the Eggplant Functional Script Editor, where you set scripts as table actions.

    Script Editor(スクリプトエディタ)でのTable Action(表アクション)ペインで、スクリプトを表のアクションとして設定。

    • 検証したい結果を含まないスクリプトについては、ドロップダウンリストからExecute(実行)を選択します。
    • スクリプトが検証したい結果を返す場合には、ドロップダウンリストからVerify(検証)を選択します。
    注意:デフォルトの選択でNot a Table Action(表アクションを使用しない)を選択していた場合、Table Action(表アクション)ペインの残りのオプションは見えません。
    注意:Table Action(表アクション)ペインから、テスト技術者はデフォルトの引数をExecute(実行)Verify(検証)スクリプトの両方に渡す事ができます。またデフォルトの期待値をVerify(検証)スクリプトに渡す事ができます。しかし、テスト担当者は表自身の中でそれらを変更して、その値をオーバーライドする事ができます。
  3. 表でテストケースを構築します。

    テスト技術者が表アクションとしてスクリプト/タスクを定義した後で、テスト担当者は以下の手順でテストを構築できます。

    1. Tables(表)ペイン内で右クリックしてNew Table(新しい表)を選びます。表に適切な名前を付けて、Enterキーを押します。Suite(スイート)ウィンドウのメインボディの新しいタブでその表を開きます。
    2. テストで実行したいアクションを選択します。

      新しい表は空白行1行から成ります。アクション列のドロップダウンリストからアクションを選択します。テスト技術者が表アクションとしてアサインしたスクリプトは全て、このリストの最下部で利用できます。

      アクションを選択した時、その行にステップ番号が割り当てられ、新たに空白行が作成されます。テスト技術者がデフォルトの引数または期待値を割り当てていたら、情報が表の適切な列に表示されます。でなければ、必要に応じてその情報を記入する必要があります。

    3. 各ステップで、スクリプトが必要なのか、それとも事前定義したアクションを使うのかを決定します。

      In addition to any scripts you've defined as table actions, the Action drop-down list includes many common Eggplant Functional commands and functions. テストプロセスを小さな個別のユニットに分割したため、場合によっては同じファンクションを持つスクリプトを書くよりも、ビルトインアクションを使用したいと思うかも知れません。プロセスのこの部分はテスト担当者とテスト技術者の間で密接なコミュニケーションが必要です。

      例えば、スクリプトでの5件のアクションが挿入された表があったとします。

      eggPlant Functionalの表に5件のアクションをスクリプトとして挿入。

      最初のステップのLaunch_Browser(ブラウザの起動)で、画像をクリック(またはダブルクリック)して意図するブラウザを起動するスクリプトを書くかもしれません。しかし、Click(クリック)(またはDoubleClick(ダブルクリック)Action(アクション)ドロップダウンリストで選択し、次にそのステップの引数として適切な画像を選択すれば、同じ結果を達成する事が出来ます。

      画像ベースのコマンドやファンクションをAction(アクション)ドロップダウンリストから選択する場合に、そのステップの引数列は現在のスイートからの全画像のドロップダウンリストを提供します。

      注意:アクションを実行するスクリプトを書いていない場合、 それでもSUTで画像をキャプチャする必要があり、それで引数としてその画像を選択できます。

      今の例では、ビルトインアクションで3ステップが実行できる事もあり得ます。画像をクリックしてブラウザを開き、画像をクリックしてブラウザを閉じ、ImageFound()ファンクションを使って検索を検証します。

      eggPlant Functionalの表に5件のアクションをスクリプトとして挿入。

    4. スクリプトを作成します。

      この時点で、どのアクションをまだスクリプト化する必要があるかを明確に把握できます。The test engineer can use all of the normal scripting tools in Eggplant Functional to create the code for your scripts.

表からテストを実行する

スクリプトの開発が完了してテストのシナリオを表に構築できたら、テスト担当者の実行準備はほぼ完了です。しかし、まだ各アクション項目の引数と期待値が正しくアサインしているかを確認する必要があります。

テスト技術者がスクリプトのTable Action(表アクション)ペインのデフォルト情報を入力していれば、テスト担当者がスクリプトをアクションとして選択した時に表が自動的に表示されます。テストを別の値で実行したい場合は、デフォルト情報にオーバーライド出来る事を覚えておいてください。また、もしスクリプト定義がプレイスホルダーテキストを表に送る場合、プレイスホルダーを実際の値に書き換える必要があります。どちらの場合でも、表の現在の値を選択して、使用したい値に書き換えます。

検証したいあらゆるステップで、Expected Value(期待値)列には値が必要で、スクリプトまたはアクション自身が値(Actual Value(実効値)で、表の実行後に記入されます)を返さなければなりません。これら2つの値(期待値と実効値)を比較して、成功/失敗の結果を判断します。

これで表を実行してテストを行う準備が完了しました。When you click the Run button, Eggplant Functional executes the action of each row of the table, in order. 個々の行が成功するか失敗するかに関わりなく、表は表の中の各ステップの実行を続けます。

成功/失敗列には、各行で起こった結果が表示されます。

  • 緑:成功
  • 赤:失敗またはエラー
  • 灰色:成功して完了した行のアクションですが、成功/失敗の評価が必要ないもの
  • 黄色:実行中(アクションを処理中)

テストモデルの拡張

スクリプトを同じ表の中での複数回のアクションとして選択できます。事前定義したアクションに対する場合と同様です。上の例では、Perform_Searchスクリプトが書かれているので、検索案件を表に入力したどんな引数からでも取得します。Verify_Searchスクリプトは特定の引数を渡し、その引数でいつでも同じ事に対して評価します。

表の2つのスクリプトを繰り返して、毎回違う引数をPerform_Searchに使えば、テスト項目のリストを迅速に実行する事ができます。

eggPlant Functionalの表の設定で一連の検索事項の検索と検証。

 

This topic was last updated on 1月 07, 2019, at 02:00:56 午後.

Eggplant icon Eggplant.io | Documentation Home | User Forums | Support | Copyright © 2019 Eggplant