このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。

2013年2月22日金曜日

第3回:REST API テスト効率化 - 回帰テストの自動生成

皆様、ご存知の通り Web API 開発においてもデグレード対策は必須です。
※ REST API および SOAP API の総称として、Web API という言葉を用いています。

たとえば、公開中の Web API 数が増加傾向にある場合や、異なるバージョンの Web API が複数ある場合、それらに対する回帰テストの規模やシナリオ テストの工数は増加し続けます。

これらは、サービスのリリース スピードや作成コストに大きく影響します。

回帰テストを自動生成し、テストを自動化できれば、これは素晴らしいことだと思いませんか?

と、いうことで、
今回は、SOAtest を使用して REST API の回帰テストを自動生成する方法をサクッと紹介します。
前回のおさらいは、こちらからご参照頂けます。

・ 第1回:REST API テスト効率化 - テスト作成/実行
第2回:REST API テスト効率化 - テスト結果の自動検証


■ テスト概要

前回より引き続き、私のWeb API 部隊が郵便番号検索 API を開発中であると仮定します。
※ 実際には、Yahoo Japan 様の REST API (郵便番号検索API)を使用して紹介します。
※ 2013.02.19 時点での仕様に基づいて記載しています。

たとえば、郵便番号を '108-8588' で検索した場合、弊社(テクマトリックス 株式会社)の名前や住所などの情報を取得できます。

今回は、この機能の回帰テスト クライアントを自動生成します。

それでは、早速はじめましょう!

1. Parasoft SOAtest の起動

・ Parasoft SOAtest を起動します。
現在、作成済みの REST API テストクライアントがあります。
そして、JSON Assertor も設定されている状態です。




2. 回帰テストの自動生成

・ 回帰テストコントロールの作成/更新を行います。
早速、回帰テストを自動生成してみましょう。
REST API のテストクライアントを右クリックすると、[回帰テストコントロールの作成/更新] を選択できます。


・ 後は、ウィザードに従って選択するだけです。
ダイアログの [回帰制御の作成] を選択し [終了] ボタンをクリックし、ダイアログを閉じます。回帰テストの作成手順は、たったこれだけで完了です。



 ・ テストスイートを見てみると、REST API テスト クライアントに回帰制御となる [Diff control] が自動生成されていることが解ります。


・ 詳細はこんな感じになります。
テスト結果(JSON)の内容が多いので、画像ではすべて表示できていませんが、
このような感じで、テスト結果が Diff ツールに自動的に設定されます。
言い換えると、この Diff ツールに設定されている情報が期待値になります。


 





・ Diff ツールに設定された期待値を編集し、意図的に実行結果と異なるように設定してみます。
たとえば、こんな感じにします。
・ 編集前の期待値 : "Status" : 200
・ 編集後の期待値 : "Status" : 99999999



3. テストの実施/結果検証
・ テストを実行します。


・ テスト失敗が2件レポートされました。
ちなみに、このうちの1件は、 JSON Assorter ツールでの検証結果です。




・ 失敗の詳細はこのような感じで、解り易く表示されます。


ちなみに、回帰テストを自動生成する時に、
[回帰テストコントロールの作成/更新] を実行しましたが、“更新” とも書いてあります。
これは、回帰テストを再作成する時にも非常に便利です。
単純に、下の画像のように、[回帰制御をアップデート] を選択するだけで、
下記テストを更新(最新のテスト結果のコンテンツを期待値として、Diff ツールに設定)できます。

■ まとめ

いかがでしたか?
REST API の回帰テストを自動生成することで、品質の確保だけでなく、テストの作成工数も大幅に削減できます。

Parasoft SOAtest を使用した Web API テストに関するホワイトペーパーのダウンロードはこちら

■ 次回予告

次回は、テストの自動実行について紹介致しますのでお楽しみに!