はじめに
今回は、Azure DevOpsのうち手動テストの管理をおこなうAzure Test Plansを紹介します。
Azure Test Plansとは
Azure Test Plansは、テストケースに基づいた手動テストや探索的テストをサポートするためのAzure DevOpsのラインナップのひとつです。
これまでに説明してきたAzure Pipelinesなどのサービスは、テストフレームワークやツールをCI/CDのパイプラインに組み込んで使用する、いわゆる自動テストをサポートするものでした。一方でAzure Test Plansは手動でのテストをサポートすることが目的のサービスとなっています。手動テストを実施する上で必要となるテストケースやテストの実行結果を管理する機能を提供しています。
一般的に手動でのテストを行う際にはテストの手順書を文章として記述し、テスターはその手順書をもとにテスト対象のアプリケーションを操作してテストを行います。Azure Test Plansではこのテスト手順書をAzure上で作成・共有することができるようになっており、認識の齟齬の防止や手順書の管理の手間などを解消することができます。
上の図はAzure Test Plansで作成したテストの手順書の例です。このように表形式のほか自由記入方式でも手順を記載することがきます。
Azure Test Plansがサポートするテストの種類
Azure Test Plansがサポートするテストには、主に以下の3種類のテストがあります。
・手動テスト
開発者やテスターが作成したテストケースをもとに、手動でのテストを行います。Azure Test Plansでは複数のテストケースをテストスイートとして保存することができ、テストの実施結果などの作成や保存、再利用が可能となっています。
・ユーザーや利害関係者による受け入れテスト
作成した手動テストのテストスイートを、開発チームだけでなくビジネスサイドのユーザーや利害関係者にも共有し、ユーザーによる受け入れテストとして利用することも可能です。ユーザーはテストケースの実行、バグの報告や改善要望などのフィードバックの送信までをAzure Test Plans上で一貫して行うことができます。
・探索的テスト
一般的に探索的テストとは、テストケースをあらかじめ作成しない状態でテスト対象となるアプリケーションを操作し、その都度次のテストケースを考えながら実施していくテストの手法です。探索的テストはテストケースの作成が不要なため素早く開始することができる反面、テスターにある程度のスキルがないと有効なテストが実施できないといったデメリットもあります。
Azure Test Plansでは、探索的テストをサポートするためのツールを提供しています。例えばWebアプリケーションのテストの場合は、探索的テストの実施内容の記録やフィードバックの送信をAzure Test Plansに連携できるブラウザの拡張機能が用意されています。
なお、上記のテスト以外にも負荷テストの実施をサポートする機能もAzure Test Plansでは提供していますが、こちらは2020年3月末を持って廃止される予定のため、本稿では説明を省略します。
Azure Test Plansの構成
Azure Test Plansでは、以下の構成に沿って手動テストの情報を管理していきます。
・Test Plan(テスト計画)
テスト計画は複数のテストスイートを集約するカテゴリーの役割を持ちます。テスト計画はアプリケーションのバージョンやリリースごとに作成することで、アジャイル開発の開発サイクルに沿ったテストの管理を実現できるようになります。
・Test Suite(テストスイート)
テストスイートは複数のテストケースを集約するカテゴリーの役割を持ちます。テストスイートはテストシナリオ単位やアプリケーションの機能単位などで分類するなどして、テストケースの管理をしやすくします。
・Test Case(テストケース)
実施するテストそのものがテストケースです。テストケースにはそのテストの手順を記述することができ、手順ごとに検証の要否を記録することができます。テストケースは自由記述とグリッドから記述方法を選択できます。
Azure Test Plansで手動テストを管理してみよう
ここからは実際にAzure Test Plansを使用してみましょう。以降では、手動テストに関連する機能について説明していきます。
Azure Test Plansの有効化
Azure Test Plansは、他のAzure DevOpsのラインナップと異なり有料のサービスとなっています。しかし、Azure Test Plansを使用することのできる30日間の無料試用版が提供されているため、今回はこちらを利用していきます。
Azure Test Plansの無料試用版の適用は、Azure DevOpsの管理画面から行います。Azureのポータルから「Azure DevOps」を検索して選択します。
表示された画面で、「My Azure DevOps Organizations」を選択します。
自身が所属するAzure DevOps組織の一覧が表示されるので、無料試用版を適用したい組織を選択します。
DevOps組織の画面が表示されたら、左下にある「Organization settings」を選択、「Billing」のメニューを選択します。この画面内の「Boards, Reports and Test Plans」というセクションにある「Basic + Test Plans」という項目の、「Start free trial」というボタンを選択することで無料試用版を開始することができます。
ボタンを選択し、無料試用版を有効日数が表示されれば設定は完了です。
テストプランの作成
Azure Test Plansの無料使用版を有効にすると、テストプランの作成が可能になります。Azureポータルから「DevOps Projects」を検索、Azure Test Plansを使用するプロジェクトを選択してDevOpsのプロジェクトホームページを表示します。
左側のメニューより「Test Plans」を選択すると、テストプランの一覧画面が表示されます。現在はまだテストプランが作成されていないので、「New Test Plan」より新規作成していきます。
テストプランの新規作成画面では任意のプラン名を入力して「Create」を選択します。なお、「AreaPath」にはテストプランを作成するDevOpsプロジェクトを選択し、「Iteration」にはAzure Boardsで作成・管理しているイテレーションを選択しますが、ここではデフォルトのままとしています。
テストプランが作成されると、テストスイートとテストケースの作成が可能となります。
テストスイートの作成
テストプランを作成したら、次にテストスイートを作成していきます。テストスイートは以下の画面のように先程作成したテストプラン名の右側のメニューから「New Suite」、「Static suite」と選択することで作成できます。
テストスイートには任意の名前を入力します。以下の図は、機能単位でテストスイートを分割した際のイメージです。テストスイートは他のテストスイートを子要素として含むことができるため、大規模なアプリケーションのテストを管理することにも向いています。
なお、今回は「Static suite」という種類のテストスイートを作成しました。これは空のテストスイートを新たに作成する際に使用するものです。今回使用しなかった「Requirement based suite」や「Query based suite」といった種類のテストスイートは、Azure Boardsで管理しているワークアイテムをもとにテストスイートを作成するものです。既にAzure Boardsを使ってユーザーストーリーや機能の管理をしている場合は、関連するテストスイートを簡単に作成できます。
テストケースの作成
テストスイートまで作成したら、最後にテストケースを記述していきます。テストケースを作成するテストスイートを選択し、「Define」タブの「New Test Case」からテストケースを作成していきます。
テストケース作成のダイアログが表示されるので、テストケースのタイトルとテストの手順であるステップを記述していきます。各ステップには、期待する結果を記述できるため、テスターは実際の操作結果と期待する結果を見比べてテストの合否を判断することができます。
以下の図では、ログイン機能のテストの例として正常にログインができるパターンのテストケースを作成しています。画面上部に「IDとパスワードを入力してサイトにログインができる」というタイトルを入力し、画面中央部分にこのテストの実行手順として1から4までのステップとそれぞれのステップの期待する結果を入力しました。
タイトルとステップを入力したら「Save & Close」を選択してテストケースを保存します。テストケースを作成すると以下の図のようにテストスイート内のテストケースの一覧が画面に表示されるようになります。テストケースは、「New Test Case」のボタンから追加していくことが可能です。
テストケースまで作成できたら、実際にテストを実施してみましょう。
テストの実行
作成したテストケースをもとにテストを実施してみましょう。テストケースの一覧画面の「Execute」タブを選択し、実行したいテストケースにチェックが入った状態で「Run for web application」を選択すると新しいウィンドウが表示されます。
この画面では、テストケースの作成時に記述したテストのステップが表示されています。このステップの順にアプリケーションを操作しながら、それぞれのステップの期待する結果通りにアプリケーションの振る舞いが変化していくかどうかを確認していきます。
アプリケーションを操作し、テストケース通りの動作をした場合は各ステップの右側にあるチェックマークを選択してステップをパスしたことを記録していきます。
全ての結果を記録したら、「Save and close」でウィンドウを閉じます。テストケースの一覧画面では、実行したテストケースのステータスが更新されて表示されています。このステータスは各ステップの結果によって自動的に変動します。全てのステップがパス(成功)した場合は、ここに表示されるステータスは「Passed」となります。
一方、ひとつでもステップが失敗した場合は「Failed」と表示されます。
テストの実行結果の詳細情報を確認することもできます。テストケース一覧で失敗したテストケースをダブルクリックすると新しいタブでテストケースの実行履歴が表示されます。
更に失敗した履歴をダブルクリックすると別のタブでテスト実行時の詳細な記録を確認することができます。
上の図の例では、ステップ4で失敗した際のコメントを確認できます。テスト実行時には、コメント以外にもアプリケーションの画面キャプチャなども取得・保存することも可能です。テスト時に実行結果を詳しく記録すると、後から開発者が失敗したテストを確認する際に失敗した事象の把握に役立ちます。
テストレポートの確認
ここまでAzure Test Plansを使った自動テストの管理方法の基本的な手順について説明してきました。Azure Test Plansにはこの他にもテストの進捗状況を確認するためのレポート機能が備わっています。Azure Test Plansの左側のメニューにある「Progress report」を選択すると、テストの実行レポートを確認することができます。
レポートはテストの実行状況によって変化し、テストスイートなどによって表示のフィルタリングを行えるため、テスト状況について俯瞰して確認をしたい場合に便利な機能となっています。
まとめ
今回はAzure Test Plansを使用した手動テストの管理方法について説明しました。これまでのAzure DevOpsのラインナップと異なり手作業の工程をサポートするツールという位置づけではあるものの、DevOpsのエコシステムとして重宝するサービスであることが分かったかと思います。 今回まで6回連続でAzure DevOpsの各サービスについて説明してきました。それぞれのサービスは独立して使用することが可能ですが、組み合わせて使用することを想定して作られているため、まとめて使用することでDevOps・アジャイル開発を円滑に進めることができるようになっています。本連載がAzure DevOpsを利用するための足がかりとなれれば幸いです。
次回はAzure上でBotサービスを作成できる「Azure Bot Service」を説明する予定です。
WINGSプロジェクト 秋葉龍一著/山田祥寛監修
<WINGSプロジェクトについて>テクニカル執筆プロジェクト(代表山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。一緒に執筆をできる有志を募集中