このブログについて

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

2013年4月1日月曜日

第4回:REST API テスト効率化 - テストのバッチ実行

自動化したテストを夜間実行する - SOAtest のバッチ実行機能で継続的なテストを実施!

前回、回帰テストの自動生成について紹介致しましたが、本日は、この作成したテストをバッチ実行する方法を紹介します。

バッチ実行は文字通り、テストの開始を人が行うのでなく、システムから起動させるという意味になります。たとえば、Windows のタスクマネージャーにタスクを登録し、毎晩 1:00 AM にバッチ処理を実行させるようなイメージです。

このような仕組みで、毎朝、出勤時にテストレポートを受け取ることや、受け入れ時にのみ実施していたテストを毎日実行することで、どの(ソースをコミットした)時点で問題が発生したのか判別できるようになります。

いわゆる、継続的なテストの自動化は、APIの更新が頻繁に発生したり、提供するサービスのリリースサイクルが短い場合において、早期の品質確保と問題発見を可能にしますので、リリース スピードの向上や手戻りコストの低減において効果を発揮します。

継続的なテストと言えば、Jenkins と連携させた CI 環境の構築も最近では一般的になりつつありますが、勿論、SOAtest もこの仕組みに組込んでご利用頂けます。

と、いうことで、
今回は、SOAtest を使用して REST API の回帰テストを自動実行(バッチ実行)する方法を紹介します。

※前回のおさらいは、こちらからご参照頂けます。
第3回:REST API テスト効率化 - 回帰テストの自動生成


■ テスト概要

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

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

今回は、この機能の回帰テスト クライアントをバッチモードで実行します。

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

1. Parasoft SOAtest の起動

1-1. SOAtest を起動します。
※バッチ実行時には、SOAtest (GUI) を起動する必要はありませんが、ここでは実行するテストを編集したいので、SOAtest を起動します。


2. バッチ実行を行うテストの選定および設定

2-1. 今回は、すべてのテスト成功時のレポートを生成したいので、検証項目を無効化します。[JSON Assertor] と [Diff] ツールを選択し、右クリックします。ショートカットメニューから [無効化] を選択します。
※ 無効化の設定は必須ではありません。


3. バッチテストの実行

3-1. それでは、早速、設定したテストを実行します。
次のコマンドをコマンドプロンプトから実行します。

 soatestcli -data "C:\Parasoft\SOAtest\workspace_9.4_blog" -resource "REST API Tests" -config "user://Example Configuration" -publish

■コマンドの説明
soatestcli : SOAtest のバッチモードの実行ファイルです。
-data : テストファイルがあるワークスペースをします。
-resource : テストファイルがあるプロジェクトを指定します。
-config : テスト実行時に使用するテストコンフィギュレーションを指定します。
-publish : レポートを生成します。




バッチの実行結果として、REST API Tests.tst を実行し、1件のテストが成功したことがわかります。

4. レポート

4-1. バッチ実行の結果をメールでレポートすることもできます。
この場合、次のようなメールが届きます。
※最新のテスト実施日は、3/29 です。


このレポートでは、3/26 時点では、1 件のテストにおいて、3 件の検証エラー(問題)を検出したが、今回(3/29)は、問題なくテストが完了したことを意味しています。ちなみに、検証などで問題を検知した場合は、次のように、レポートされます。
※3件の問題を検知した場合の例 : レポートに検知した問題の表示が追加されます。

テストを(バッチ実行で)自動化することで、回帰エラーの早期発見が可能になるため、品質確保にお役立て頂けます。また、毎日、テストを実施することで、開発のどの時点からエラーが発生するようになったのか確認できます。 

■ まとめ

今回は、REST API の回帰テストについて紹介しました。 
次回は、データソースを使用したテストについて紹介致しますのでお楽しみに!