APIはGUIと違い動作が見えにくいため、シナリオテストを実施して、APIの動作を確認するのが効果的になります。そこで、本文では、最も使いやすいAPIシナリオテストツールのApidogを使って、使用シナリオや操作フローを作成し、それに基づいてテストを簡単に実施する方法を皆さんに紹介します。
シナリオテストとは?
シナリオテストとは、ソフトウェアのテスト方法の一つで、ユーザーがソフトウェアを使う際に起こり得る典型的な使用シナリオや操作フローを作成し、それに基づいてテストを設計・実行する手法です。
シナリオテストのメリットは、ユーザー視点でのテストができることです。ユーザーが実際にソフトウェアを使うシナリオに即したテストができるため、ユーザビリティや利用シーンを確認するのに適しています。欠陥の発見率も高く、ユーザー受入テストに有効とされています。
具体的には以下のようなプロセスで行います。
- ユーザーの典型的なユースケース(使用シナリオ)を洗い出す
- シナリオに基づいてテストケースを設計する
- テストデータを作成する
- シナリオに沿ってテストを実行する
- 結果を記録して評価する
そもそもAPIシナリオテストは?
上記のシナリオテストの概念に基づいていうと、APIシナリオテストとは、APIを利用する際の典型的なシナリオに基づいてAPIのテストを設計・実施する手法になります。APIはGUIと違い動作が見えにくいため、シナリオテストはAPIの動作を確認する上で効果的です。マイクロサービスなどAPI中心のアーキテクチャでも重要なテスト手法といえます。
APIのシナリオテストでは以下のような点に着目してテストします。
- APIの呼び出しシーケンス
- 複数APIの組み合わせ
- APIの入力値と出力値
- APIのエラー時の応答
APIシナリオテストの実施方法
それでは、API全体の流れが正確的に動作できることを確保するために、APIシナリオテストを実施するには、どうしたらいいですか?次は、APIシナリオテストの実施方法を詳しく解説していきます。ApidogというAPI管理ツールは、APIシナリオテストをサポートしているため、Apidogを利用して、いつもより簡単にAPIリナリオテストを行うことができます。
それでは、次のステップを参照して、Apidogで簡単にAPIシナリオテストをやり遂げましょう。
APIの利用シーンを洗い出す
APIシナリオテストを行う前提は、具体的なユースケースに沿って、テストフローを作成する必要があります。そこで、APIの利用シーンをまず洗い出すのが必要なことになります。
APIの利用シーンを洗い出すために、まず要件定義書やAPI仕様書からAPIの利用目的を確認する必要があります。そして、登録、検索、更新などの典型的なシナリオをリストアップ必要があります。
利用シーンに基づき、テストシナリオを設計
APIの利用シーンを洗い出した上、Apidogを使用して、簡単にテストシナリオとテストフローを作成することができます。
ステップ⒈左側のメニューから「自動テスト」を選択して、「テストのシナリオを新規作成」して、「ステップを追加」をクリックすると、API呼び出しをテストステップとして追加することができます。
ご案内:ApidogはAPIの管理にも長けているツールとして、あらかじめ全てのAPIをApidogにインポートすると、テストフローの作成がより効率的になります。
ステップ⒉このモジュールでは、ステップ数の上限がないので、呼び出したいAPIが何個あっても、ここに追加することができます。APIの呼び出しの追加が完了した後、「実行」ボタンをクリックして、各APIを追加順に従って呼び出すことができます。
ステップ⒊テストフローを作成する際、テストステップの繰り返す回数を設定したり、特定のステップをグループ化したり、条件分岐を適用してテストフローを調整したりすることもできますので、自分のニーズにピッタリするテストシナリオやテストフローを作成することができるのでしょう。
APIシナリオテストの実装
上記のステップを参照して、テストシナリオやテストフローを作成して、調整もやり遂げた上、APIのシナリオテストを行うことができるようになります。
Apidogで右側パネルの「実行設定」で、実行環境、テストデータなどの項目を設定して、「実行」ボタンをクリックすれば、APIシナリオテストの実装が開始されます。
ご案内:ここで「反復回数」や「スレッド数」などを設定すると、APIパフォーマンステストを同時に行うことも可能です。
APIシナリオテストのレポートを取得
ApidogでAPIシナリオテストを行うと、テストレポートが自動的に生成されますので、非常に便利です。シナリオテストが完了すると、次のようなテストレポートを取得できます。
このシナリオテストのレポートには、テストの基本状況(合格か、失敗か、実行時間など)を簡単にチェックすることもできますし、各APIリクエストをクリックして、より詳細の状況を確認することも可能です。また、テストレポートをエスクポートする機能も提供しています。
おまけ:シナリオテストと網羅テスト
APIの欠陥を発見し、品質を確保するために、シナリオテストと網羅テストも多く利用されています。それでは、この2つのテスト方法の相違点も探りたいと思います。
テストの対象範囲
- シナリオテスト: 典型的な利用シーンやユースケースに焦点
- 網羅テスト: 要件を網羅的にテスト
テスト設計手法
- シナリオテスト: 利用シナリオからテストケースを設計
- 網羅テスト: 要件からテストケースを設計
テスト効率
- シナリオテスト: テストケース数を絞り込める
- 網羅テスト: 多数のテストケースが必要
欠陥発見力
- シナリオテスト: ユーザビリティ欠陥の発見に優れる
- 網羅テスト: 機能欠陥の発見に優れる
適用時期
- シナリオテスト: 受入テストに適している
- 網羅テスト: 単体テストや結合テストに適している
シナリオテストは効率的でユーザー視点のテストに優れていますが、網羅性に欠ける場合があります。両者はテストの目的と段階に応じて適宜組み合わせることが重要です。
まとめ
この記事では、APIのシナリオテストの重要性と実施方法について解説しました。
- APIのシナリオテストは、APIの利用シーンに即したテストができるため、APIの動作確認に効果的
- テストのためには、まずAPIの利用シナリオを洗い出す必要がある
- Apidogなどのツールを使うと、簡単にテストシナリオとテストフローを作成できる
- テストの実行後は、テストレポートで結果を確認し、欠陥の解析に活用する
APIでは動作が見えにくいため、シナリオベースのテストは欠かせません。Apidogのようなツールを活用して、APIの品質と信頼性を高めていくことが重要です。マイクロサービスアーキテクチャの普及に伴い、今後APIシナリオテストの重要性はさらに高まっていくと考えられます。