Azure Boards インテグレーションを使用すると、mabl はプラン実行の結果を、チームの手動テストの結果と並べて Azure Test Plans に記録できます。これにより、テストプランの進捗グラフやレポートに mabl の自動テストが含まれるようになり、パイプラインのステップやカスタムスクリプトは必要ありません。mabl は、リンクされた Test Case の Automation status(自動化ステータス)を最新の状態に保つこともできます。
この記事では、mabl のテストを Test Case にリンクする方法、プラン実行の結果をテストプランに記録する方法、そして mabl が Test Case を自動化済みとしてマークするタイミングを選択する方法を説明します。
はじめる前に
- 接続済みの Azure Boards インテグレーション。接続に使用するアカウントには、作業項目の登録と同じく、Basic アクセスと Contributor ロールが必要です。
- インテグレーションのプロジェクト内のテストプラン。mabl のテストがリンクする Test Case をそのテストプランに追加しておきます。Azure DevOps でテストプランを作成して Test Case を追加するには Basic + Test Plans のアクセスレベルが必要なため、そのアクセス権を持つチームメンバーに設定を依頼する必要がある場合があります。
mabl のテストを Test Case にリンクする
mabl のテストは、テスト情報ダイアログのテストケースセクションで Test Case にリンクします。ほかのテストケース管理インテグレーションでケースをリンクする場合と同じ方法です。
- テストの詳細ページで、鉛筆アイコンをクリックしてテスト情報を更新します。
- テストケースセクションのテストケースを追加で、以下から追加から Azure DevOps のプロジェクトを選択します。
- Test Case をタイトルで検索するか、
123やAB#123のような Test Case の作業項目 ID、またはその URL を入力します。 - 保存 をクリックします。
以下から追加で Azure DevOps のプロジェクトを選択している場合、123 と AB#123 はどちらも作業項目 123 にリンクします。その他のID など、それ以外の場所では数字だけの ID は TestRail のケース ID として読み取られるため、AB# プレフィックスを付けてください。
ワークスペースに複数の Azure DevOps 組織の Azure Boards インテグレーションがある場合は、Test Case を URL でリンクしてください。AB# 形式の ID は同期できないためです。検索から Test Case を選択すると、正しい形式で保存されます。2 つのインテグレーションが同じ Azure DevOps プロジェクトに接続している場合、そのプロジェクトへのリンクには、どちらかのインテグレーションを無効にするまで 同期できません と表示されます。
結果が記録されるのは、Test Case タイプの作業項目だけです。ユーザーストーリーなど、別の種類をリンクした場合、mabl はセクション内でその項目に テストケースではありません と表示し、プラン実行ではスキップされます。
1 件の Test Case からテストを作成した場合は、mabl がリンクを自動で作成します。
プラン実行の結果を記録する
プラン実行が完了すると、mabl はテストプランに mabl のプラン名を付けたテスト実行を追加します。その後、プランのテストがリンクしている各 Test Case に結果を記録します。Test Case がリンクされていない mabl のテストは通常どおり実行されますが、Azure Test Plans には記録されません。
結果の同期をオンにする
- 設定 > インテグレーション に移動し、Azure Boards インテグレーションの鉛筆アイコンをクリックします。
- 結果の同期 で、Sync plan run results to Azure Test Plans(プラン実行の結果を Azure Test Plans に同期する)にチェックを入れます。
- 完了したプラン実行を手動で同期せずにすべて記録するには、Sync automatically when a plan run finishes(プラン実行の完了時に自動で同期する)にチェックを入れます。アドホック実行は自動で同期されません。
- mabl が結果を記録する Default test plan(デフォルトのテストプラン)を、「Release 3.2」のように選択します。mabl のプランごとに独自のテストプランを選択するよう設定することもできます。
- 任意: Configuration IDs(構成 ID)を入力します。詳しくは、構成を選択するをご覧ください。
- 保存 をクリックします。
構成を選択する
Azure Test Plans の構成は、「Chrome on Windows」や「Safari on macOS」のように、テストを行う環境を表します。Test Case には、テストプランで割り当てられた構成ごとに 1 つの結果スロットがあります。デフォルトでは、mabl はすべてのスロットに結果を記録します。
チームで構成を使ってブラウザーやデバイスを分けている場合は、mabl の実行が対象とする構成の ID を、12, 14 のようにカンマ区切りで入力します。mabl はそれらの構成についてのみ結果を記録します。テストプランでデフォルトの構成しか使用していない場合は、このフィールドを空のままにします。
mabl のプランのテストプランを選択する
インテグレーションの設定では、mabl のすべての結果がデフォルトのテストプランに記録されます。結果を別のテストプランに記録したい場合は、mabl のプランの設定で変更できます。
- 鉛筆アイコンをクリックして、mabl のプランを編集します。
- 基本設定 で、Azure test plan (Azure Boards) のような、インテグレーションの Azure test plan フィールドを見つけます。このフィールドは、結果の同期がオンになっている Azure Boards インテグレーションごとに表示されます。
- 「Sprint 42」のように、インテグレーションのプロジェクトからテストプランを選択します。インテグレーションのデフォルトのテストプランに戻すには、Integration default(インテグレーションのデフォルト)を選択します。
- 保存 をクリックします。
mabl のプランのテストプランや、インテグレーションのデフォルトのテストプランを変更するときは、次の点に注意してください。
- 保存後に完了したプラン実行は、新しいテストプランに結果を記録します。すでに記録された結果はそのまま残ります。
- プラン実行を再同期すると、実行時に mabl のプランが選択していたテストプランに記録されます。インテグレーションのデフォルトを使用した実行は現在のデフォルトのテストプランに記録され、そのテストプランに含まれない Test Case は not in the test plan(テストプランにありません)としてスキップされます。
プラン実行を手動で同期する
自動同期がオフの場合や、自動同期をオンにする前に完了したプラン実行を記録したい場合は、プラン実行ページから同期できます。同期には、ワークスペースでの編集者以上のロール、または書き込みアクセス権のある API キーが必要です。
- プラン実行の出力ページを開き、ヘッダーの Azure Test Plans ボタンをクリックします。
- Sync to Azure Test Plans(Azure Test Plans に同期)をクリックします。
- 同期中はボタンに「Syncing to Azure Test Plans」と表示され、完了すると結果が表示されます。ポップオーバーの結果の送信先セクションには、Azure Test Plans のテスト実行へのリンクが表示されます。
次の場合、同期は失敗します。
- プラン実行がキャンセルまたは停止された場合。
- プラン実行の完了から 180 日を超えている場合。
- プラン実行がリンクする Test Case が 1,000 件を超える場合、またはそれらの構成全体の結果スロットが 10,000 を超える場合。上限を超えないようにするには、記録する構成を減らすか、プランを分割してください。
mabl が記録する内容
プラン内のテストにリンクされた各 Test Case について、mabl はプラン実行のテスト実行に 1 件の結果を記録します。
- 結果: Passed(成功)、Failed(失敗)、または Not Executed(未実行)。Not Executed は、リンクされたすべてのテストがスキップまたは停止されたことを意味します。複数の mabl のテストが同じ Test Case にリンクしている場合、1 つでも失敗したテストがあると結果は失敗になり、コメントにはその結果がいくつの実行をまとめたものかが示されます。
- mabl へのリンク: 各結果は mabl のテスト実行にリンクします。
- 失敗の詳細: 失敗した結果には、ワークスペースに失敗分析がある場合はその失敗分析と、アプリケーションの最終状態のスクリーンショットも含まれます。スクリーンショットは結果にも添付されます。Azure DevOps では結果のコメントが 1,000 文字に制限されているため、長い失敗分析は短縮されます。完全な分析は mabl のテスト実行で確認できます。
失敗分析とスクリーンショットは、Azure DevOps プロジェクトにアクセスできるすべてのユーザーに表示されます。これは mabl ワークスペースよりも広い範囲である場合があります。
再同期するは、このプラン実行でまだ結果のない Test Case だけを記録するため、2 回同期しても結果が重複することはありません。
同期が不完全な場合や失敗した場合
Azure Test Plans ボタンに次の 3 つのステータスのいずれかが表示された場合、その実行には対応が必要です。
- Azure Test Plans — N links skipped: 実行は同期されましたが、一部のケースリンクを記録できませんでした。ボタンをクリックして、ポップオーバーの スキップしました セクションを確認してください。詳しくは、スキップされたケースリンクをご覧ください。
- Azure Test Plans sync failed: 同期が完了する前に停止しました。ポップオーバーには、停止前に記録されたケース数が表示されます。再同期するをクリックしてください。同じように失敗する場合は、インテグレーションの設定を確認してください。結果の同期がオフになっている場合や、テストプランが存在しなくなった場合も同期は失敗します。その場合、メッセージにはテストプランの名前と、そのテストプランをインテグレーションと mabl のプランのどちらが選択したかが表示されます。インテグレーションを別の Azure DevOps プロジェクトに移した場合、以前のプロジェクトのテストプランを選択していた mabl のプランは同期に失敗し、メッセージには両方のプロジェクトが表示されます。該当する mabl のプランそれぞれで、新しいプロジェクトのテストプランを選択してください。
- Azure Test Plans sync status unavailable: mabl はこの実行が同期されたかどうかを確認できませんでした。ページを再読み込みするか、実行を同期してください。
プランの実行履歴にも同じ状態が同期が不完全ですまたは 同期に失敗しました として表示されるため、実行を開かなくても対応が必要な実行を見つけられます。
スキップされたケースリンク
ケースリンクを記録できなかった場合、ポップオーバーには次のいずれかの理由とともに表示されます。
| 理由 | 対処方法 |
|---|---|
| not in the test plan(テストプランにありません) | 実行の記録先のテストプランに Test Case を追加し、再同期します。 |
| no test point(テストポイントがありません) | Test Case はテストプランにありますが、mabl が記録する構成の結果スロットがありません。スイートでその Test Case に構成を割り当てるか、その構成の ID を Configuration IDs に追加するか、フィールドを空にしてから、再同期します。 |
| not a Test Case(テストケースではありません) | リンクされた作業項目は、ユーザーストーリーなど別の種類です。代わりに、その内容を対象とする Test Case をリンクしてください。 |
| not an Azure work item(Azure の作業項目ではありません) | テストのリンクを AB#123 のように修正します。次のプラン実行で同期されます。 |
| not found in Azure DevOps(Azure DevOps に見つかりません) | 作業項目が存在すること、インテグレーションのプロジェクト内にあること、インテグレーションのアカウントから参照できることを確認します。複数の Azure DevOps 組織に接続しているワークスペースでは、URL でリンクしてください。その後、再同期します。 |
| another system's link(別のシステムのリンク) | その ID は Azure の作業項目ではないため、mabl はその ID が属するシステムに任せます。対応は不要です。 |
再同期するが役立つのは、Test Case をテストプランに追加した場合など、原因が Azure DevOps 側にある場合だけです。テスト側で修正したリンクは、次のプラン実行で反映されます。
リンクされた Test Case を自動化済みとしてマークする
Azure DevOps の Test Case には、Not Automated、Planned、Automated のいずれかの Automation status(自動化ステータス)があります。チームはこれを使って、テストプランのうちどれだけが自動化されているかを追跡します。通常、Azure DevOps が Test Case を Automated に設定するのは、ビルドパイプラインがその Test Case を自動テストに関連付けた場合だけです。mabl は、その Test Case にリンクしている mabl のテストに基づいて、このステータスを設定できます。
自動化ステータスは結果の同期とは別の設定です。テストプランには依存せず、どのオプションを選択しても、mabl はリンクされた Test Case に結果を記録します。
mabl が自動化ステータスを更新するタイミングを選択するには:
- 設定 > インテグレーション に移動し、Azure Boards インテグレーションの鉛筆アイコンをクリックします。
-
テストケース で、次のいずれかのオプションを選択します。
- Don't change Automation status(自動化ステータスを変更しない): mabl は自動化ステータスを変更しません。
- When linked(リンクしたとき): mabl のテストが Test Case をリンクした時点で、mabl はその Test Case を Automated としてマークします。
- After a passing run(実行が成功した後): mabl のテストが Test Case をリンクすると、mabl はその Test Case を Planned に設定し、そのテストがメインブランチでのクラウド実行に成功した後に Automated としてマークします。対象になるのは過去 30 日以内の実行だけです。
- 保存 をクリックします。
変更は約 1 時間以内に Azure DevOps に反映されます。mabl がマークした Test Case には、リンクしている mabl のテストが関連付けられた自動化として表示されます。
mabl による自動化ステータスの更新方法
- mabl は、パイプラインや別のツールが設定した自動化を変更しません。 Test Case がすでに別の自動テストに関連付けられている場合、mabl はそのままにします。
- Automated は Automated のまま維持されます。 mabl が Test Case を Automated としてマークした後にテストが失敗しても、Test Case は Automated のままです。
- mabl は自身のマークを維持します。 mabl がマークした Test Case に mabl のテストがリンクしている間は、Azure DevOps で誰かが変更しても、mabl は Automated のまま維持します。解除するには、テストのリンクを外してください。
- Planned に置き換わるのは空のステータスだけです。 After a passing run では、mabl はステータスが空または Not Automated の Test Case にのみ Planned を設定します。
- リンクを外すと Test Case はリセットされます。 mabl がマークした Test Case にリンクしている mabl のテストがなくなると、mabl はその Test Case を Not Automated に戻します。
- mabl は Planned を解除しません。 テストが成功する前にリンクを外した場合、その Test Case は誰かが Azure DevOps で変更するまで Planned のままです。
たとえば、After a passing run を選択している場合に、新しい mabl のテストを Test Case AB#123 にリンクするとします。1 時間以内に、その Test Case は Planned と表示されます。翌日、テストがメインブランチで最初のクラウド実行に成功すると、Test Case は Automated に変わります。1 週間後にテストが失敗しても、Test Case は Automated のままで、mabl は失敗した結果をテストプランに記録します。
自動化ステータスの更新をオフにする
Don't change Automation status を選択すると、mabl は自動化ステータスの更新を停止します。mabl がすでにマークした Test Case は Automated のままです。再び When linked または After a passing run を選択すると、mabl は更新を再開し、mabl のテストがリンクしていない Test Case から自身のマークを削除します。
たとえば、Don't change Automation status を選択しているチームが、mabl のテストを Test Case AB#456 にリンクするとします。Test Case は Not Automated のままですが、mabl はプラン実行のたびにその Test Case に結果を記録します。