Skip to main content
Skip table of contents

Gherkinによる振る舞い駆動開発 (JA)

Gherkinとは?

Gherkinは、Cucumber BDDフレームワークの一部であり、少数のキーワードを中心に構築されたシンプルな自然言語構文です。行動駆動開発(BDD)を支援するために設計されたガーキンのシンプルで構造化された形式は、スキルセットに関わらず、プロジェクトに関わるすべての人々が利用できるようにしています。

プロジェクトスポンサーや非技術系のチームメンバーは、ビジネス要件に直接沿ったテストシナリオを容易に作成・理解できます。同時に、Gherkinはテスターや自動化ツールがこれらのシナリオを効果的に実装するための十分な構造と指針を提供します。

この二重の目的を持つ設計により、ガーキンはビジネス要件と技術的実装の間の優れた架け橋となり、すべての関係者が品質保証プロセスに参加することを可能にします。

以下はGherkinスクリプトの簡単な例です:

JAVA
Scenario: I want to add two values in the Calculator application
    Given the calculator app is running
    When I add 2*2
    Then The calculator displays the correct value of 4

RobotでのGherkinスクリプトの記述

機能ファイルを作成する

Robot での最初のステップは、基本的な Gherkin シナリオを保持する新しいスクリプトを作成することです。これは他の Robot スクリプトと同様の方法で行います:ファイル → 新規スクリプトまたは、プロジェクトツリー内の「スクリプト」ノードを右クリックし、「新規スクリプト」を選択します。

これにより、レポートコマンドのみを含む標準的なRobot(TPR)スクリプトが生成されます。出力レポートの名前は、必要に応じてここで変更してください。

このスクリプト内で、通常通りGherkinスクリプトを記述またはコピー&ペーストできます。Gherkinキーワードを自由に組み合わせて使用してください。上記の例を使用すると、以下のようになります:

image-20250407-125200.png

キーワードの後のテキストはすべて引用符で囲むことが重要です。これにより、Robotが文字列を手続きパラメータとして扱うことが可能になります。

現段階では、Robotコンパイラが各行を構文エラーとしてマークしています。これは現時点では問題なく、無視しても構いません。次の手順で手続きを定義する際に解決されるためです。

Robot・アクション・スクリプトの作成

フィーチャーファイルの作成が完了したので、定義されたタスクを実行するために必要な自動化ステップを定義する必要があります。これを実現するには、関連するスクリプトを作成し、キーワードプロシージャを定義した後、ロボットスクリプトコマンドを挿入し、それらを関連するフィーチャーキーワードに紐付ける必要があります。これらの各ステップをさらに詳しく見ていきましょう…

新しいロボットスクリプトを作成する

上記と同様に、通常と同じ方法で新しいロボットスクリプトを作成します:ファイル → 新規スクリプトまたはプロジェクトツリー内のスクリプトノードを右クリックし、「新規スクリプト」を選択します。

このスクリプトの名前は自由に付けられますが、一般的には機能ファイルの名前を反映させることをお勧めします。

キーワード手続きを定義する

フィーチャーファイル内に存在する各キーワードは、ロボットアクションスクリプト内で個別のProcedureとして定義する必要があります。

手順名は、正確に「キーワード」を表す最初の単語全体を反映する必要があります。例:例えば

JAVA
Procedure=<keyword> {
}

上記の例に沿って、最も単純な形では、次のようなスクリプトを作成する必要があります:

コードの表示/コピー
JAVA
Procedure Scenario: {
    // Add scenario description here
}

Procedure Given {
    // Add actions to setup the case here
}

Procedure When {
    // Add actions to be performed here
}

Procedure Then {
    // Add verifications here
}
image-20250407-131854.png

Robotスクリプトのコマンドを挿入する

キーワードの概要が定まったところで、このタスクを正常に実行するためにロボットが実行すべき具体的な自動化アクションの定義に移ります。

これを実現するために、スクリプトレコーダー、ドラッグ&ドロップ式コマンドジェネレーター、コンポーネントキャプチャ、ライブコードエディターなど、Robotsの様々なスクリプト機能を活用できます。これにより、技術的な知識を持つメンバーだけでなく、そうでないメンバーもこれらの自動化スクリプトを生成できるようになります。

Robotの「プロシージャ」では、スペース区切り値を変数として渡すことができることを覚えておいてください。

コードの表示/コピー
JAVA
Procedure Scenario: {
    // Add scenario description here
    Script "{1}"
}

Procedure Given {
    // Add actions to setup the case here
    Press Windows+R
    Typeline Calc
    Wait 3s
}

Procedure When {
    // Add actions to be performed here
    Typeline 4*4
}

Procedure Then {
    // Add verifications here
    Waitfor match method=tocr text=16 timeout=10s
}
image-20250407-143017.png

前述の通り、これはプロシージャの基本的な動作原理に従っていますが、関係性を視覚化した図を以下に示します:

image-20250407-160509.png

必要に応じて、任意の数の他のコマンドも挿入できます。例えば、実行ログや出力レポートに情報を書き込む"Log”コマンドや、主要な検証ポイントの証拠をキャプチャする"Screenshot"コマンドなどが考えられます。

この単純な例には、クロスプラットフォーム対応、カスタムエラー処理、検証ポイントが含まれていません。必要に応じて、標準的なベストプラクティスを用いてこれらを追加する必要があります。例えば、処理を続行する前にアプリが正常に起動したことを確認するためなどです。

機能ファイルをアクションスクリプトに関連付ける

これは、元の機能ファイルにアクションスクリプトを指すコマンドを1つ追加するだけの簡単なケースです。これにより、Robotはどの機能がどのアクションに関連しているかを認識できるようになります。

コードの表示/コピー
JAVA
Include Calculation.tpr

この設定を機能ファイルに追加すると、コンパイラが直ちにプロシージャリンクを検証し、構文警告を解消することがわかります。

image-20250407-144841.png

実行

機能の実行準備が整いました!

UI内、コマンドライン経由、または他のアプリケーションとの統合を通じて、いずれのロボット実行方法を使用する場合でも、対象は常に機能ファイルであるべきです。

実行中、フィーチャーファイルはプロシージャ呼び出しを通じて必要なアクションを実行します。

スクリプトを実行するには、SUT(被テストシステム)に「接続」する必要があります。接続方法は以下のいずれかです:- UI上で手動で行う- 機能ファイルヘッダーに「Connect」コマンドを追加する- CLIランタイムパラメータとして接続文字列を渡す

正常に実行されると、結果マネージャーに要約出力が表示されます。ここから「表示」を選択すると、完全な出力レポートが開きます。

image-20250407-152804.png

ソースファイル

このロボットプロジェクトをダウンロードしたい場合は、こちらから行えます: BDD Example.zip

前提条件:

  • このサンプルは、Windows 11 SUTでのみ実行されるように構築されています

  • 機能ファイルを実行する前に、Windows 11 SUT(システムテスト対象)へのアクティブな接続が確立されている必要があります。

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.