BDDシナリオの作成と実行

Cucumber-JVMまたはJBehaveフレームワークを使用して、Gherkinシナリオを使用して、ALM OctaneでBDD (ビヘイビア駆動開発) テストを作成および実行できます。ALM Octane内で、テストするシナリオを記述し、自動化作業を管理し、実行結果を追跡するための仕様を作成します。

概要: BDDとGherkinのテストワークフロー

以下は、ALM OctaneとGherkinを使用したBDDテストの操作例です。

  1. ビジネスペルソナは、ALM Octaneでフィーチャーを作成します。

  2. テストチームと協力して、Gherkinのフィーチャーの受け入れテストを作成します。

  3. これらのテストは、ALM Octaneで手動で実行することも、自動化の準備ができているとマークすることもできます。

  4. 開発者は、自動化が必要なテストを確認すると、フィーチャーファイルの内容、つまりGherkinテストまたはBDD仕様を取得し、IDEにローカルに保存します。次に、テストを自動化し、Cucumber-JVMまたはJBehaveを使用してコードをプッシュします。

  5. 自動テストがCIで実行され、結果がALM Octaneに報告されるようになりました。

  6. これで、元のフィーチャーのコンテキストで、ALM Octane内のテスト結果とカバレッジデータを確認できます。

もう1つの一般的なフローは、テスターがコード内にフィーチャーファイルを作成し、テストがALM Octaneに挿入される場合です。このテストは、ALM Octaneのバックログ項目またはアプリケーションモジュールに割り当てることができます。

トップに戻る

ALM Octaneでシナリオを作成して実行する

  1. バックログモジュールを使用して、BDD仕様とそれに関連するシナリオを追加します。スクリプトを作成すると、ALM Octaneがシナリオごとにタグを生成するため、後でCIから結果が挿入されたときに識別できます。

    詳細については、BDD仕様の作成を参照してください。

  2. スクリプトを保存すると、そのシナリオがBDDシナリオタブに自動的に入力され、手動で実行できます。詳細については、手動テストとGherkinテストの実行を参照してください。

    注: 標準設定では、BDDシナリオタブには、が最新バージョンであることを示すフィルターが適用されているため、現在スクリプトに関連しているシナリオのみが表示されます。必要に応じてフィルターを変更できます。

    スクリプトからシナリオを削除しても、その古い実行結果は引き続き保存されます。[BDDシナリオ] ペインでシナリオを削除すると、その実行結果も削除されますが、シナリオは仕様から削除されません。仕様は、必要に応じて編集できる独立したエンティティです。

  3. シナリオの自動化の準備ができたら、自動化ステータスフィールドでそのステータスを変更します。仕様が部分的に自動化されている場合、これは、そのシナリオの一部が自動化されており、一部が手動であることを意味します。

  4. これで、シナリオの自動化を担当する所有者を割り当てることができ、ワークフローはGherkinテストを自動化する場合と同じになります。

    所有者は、自分の作業で自動化タスクを確認し、テストを自動化し、CIでテストを実行し、結果をシナリオの実行にALM Octaneにプッシュします。

    詳細については、Gherkinテストの自動化を参照してください。

  5. これで、シナリオの実行タブにドリルダウンして、他のGherkinテストと同様に、自動実行の結果を確認できます。

    シナリオは、他のタイプのテストと同じ方法でテストモジュール内に表示されます。

  6. シナリオの [詳細] タブで、[BDD仕様に移動] をクリックして、シナリオが定義されているスクリプトを編集できます。

  7. 仕様を変更し、SCMリポジトリ内のコードと調整されていない場合、仕様のコードの整形フィールドは、ALM OctaneとSCMの間で調整する必要があることを示しています。

    外部コードを受け入れるか拒否して、どちらをアクティブにするかを決定できます。詳細については、Gherkinテストの自動化の準備を参照してください。

  8. ダッシュボードでは、仕様またはシナリオレベルでウィジェットを作成できます。たとえば、項目タイプとして前回のテスト実行を選択し、追加のフィルターとしてBDD仕様を選択してから、仕様ごとにグループ化して、仕様ごとの最後のシナリオ実行ステータスを確認できます。

トップに戻る

自動化シナリオインジェクション

Gherkinテストインジェクションフローと同様に、CIを介して.featureファイルをALM Octaneにインジェクトできます。仕様とシナリオを自動的に作成します。

Gherkinテストの自動化で説明されているフローに従いますが、BDD仕様モデルの使用を有効にするには次の必須手順に注意してください。

  1. ALM Octaneでパイプラインを設定した後、パイプラインのトポロジタブを開き、関連する各ジョブの構成にアクセスします。

  2. 標準設定では、各ジョブは新しいBDDコンテンツを次のタイプとして挿入:Gherkinテストとして設定されています。これは、スクリプト内のすべてのシナリオに対して1つの実行が作成されるように、新しいテストが挿入されることを意味します。

    上記のようにBDDの粒度を操作するには、新しいBDDコンテンツを次のタイプとして挿入:BDD仕様として選択します。挿入された新しいフィーチャーファイルでは、シナリオごとに個別の実行が作成されます。この設定は、現在のジョブの下にネストされているすべてのジョブに影響します。

  3. .featureファイル内では、各シナリオに一意の名前を付ける必要があります。名前のないシナリオを挿入しようとした場合、または同じ名前のシナリオが2つある場合は、ALM Octaneが問題を警告します。

    ヒント:
  • 結果の注入が失敗した場合に通知を受け取るために、シナリオを注入するパイプラインに従うことをお勧めします。
  • 同じCIジョブを使用して、2つの異なるワークスペースにBDDコンテンツを挿入しないでください。これにより、BDDの実行結果に一貫性がなくなる可能性があります。
  • さらに、ジョブの構成が異なる場合は、異なるジョブを使用して同じ.featureファイルを挿入しないでください (GherkinとBDDの仕様として挿入します)。

トップに戻る

テスト結果がどのようにカウントされるかを理解する

JenkinsとALM Octaneでは、テスト結果のカウントが異なります。

たとえば、Jenkinsによって実行され、GherkinテストとしてALM Octaneに注入されたGherkinフィーチャーファイルがあるとします。このGherkinフィーチャーファイルには、1つの通常のシナリオ、2つの例を含む別のアウトラインシナリオ、および除外としてタグ付けされた1つのシナリオがあります。

Jenkinsでの実行結果を見ると、通常のシナリオが1回カウントされ、アウトラインシナリオ (2つの例を含む) が2回カウントされ、除外されたシナリオが実行されないため、カウントされないため、3回のテスト実行が表示されます。ALM Octaneでは、フィーチャーファイル全体が1回カウントされるため、1つのテストとしてのみカウントされます。

同じフィーチャーファイルがBDD仕様としてALM Octaneに挿入された場合、ALM Octaneは2つのテストをカウントします。通常のシナリオは1回カウントされ、2つの例を含むアウトラインシナリオは1回カウントされます。。ALM Octaneは、反復回数に関係なく、シナリオのアウトラインを単一のBDDシナリオエンティティとして扱います。

トップに戻る

次のステップ