このブログについて

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

2013年1月29日火曜日

第2回:REST API テスト効率化 - テスト結果の自動検証

今回は、SOAtest を使用して REST API のテスト結果を自動検証する方法をサクッと紹介します。
前回のおさらいは、 『第1回:REST API テスト効率化 - テスト作成/実行』 を参照してください。

■目的
・REST API テスト結果の自動検証

手順:
 ・テスト結果検証ツールの追加
 ・テスト結果の検証項目の設定
 ・テスト実行/検証結果の確認

■テスト概要
郵便番号検索APIを開発していると仮定し、この機能のテストを Parasoft SOAtest を使用して行います。
今回は、例として、Yahoo Japan 様が公開している REST API (郵便番号検索API)をテストします。

郵便番号 '108-8588' で検索し、結果の検証を行います。
テスト結果で取得する値は、弊社(テクマトリックス 株式会社)の名前や住所などの情報です。
※2013.01.24時点での Yahoo Japan 様のAPI 仕様に基づいて記載しています。

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

1. SOAtest の起動

 1-1. SOAtest を起動します。

2. テスト結果検証ツールの追加

2-1. テストクライアントの実行結果に対して、検証ツールで検証を行うようにします。
 [Test 1: REST Client] を右クリックし、シュートカット メニューより [出力の追加] を選択します。




 2-1. ダイアログが開きますので、次の項目を選択し、[終了] ボタンをクリックしてツールを追加します。


■ 左欄 : [レスポンス] より [トラフィック] を選択
このダイアログからは、これから追加するツールを [Test 1: REST Client] のリクエスト、レスポンス、または両方の何処に対して適用するのかを選択できます。
今回は、テスト結果を検証したいので、[レスポンス] を選択します。

■ 右欄 : [Validation] より [JSON Assertor] を選択
今回、検証するメッセージ形式は JSON なので、JSON Assertor を選択します。
仮に、検証するメッセージ形式が XML である場合は、 XML Assertor を選択します。

 2-2. [JSON Asserot] が [Test 1: REST Client] に連結されていることを確認します。


ここまでの操作で、テストクライアントと検証ツールの連結は完了です。

3. テスト結果の検証項目設定

3-1. 追加した JSON Assertor (検証ツール)を開き、[Test 1: REST Client] テスト結果の検証項目を設定していきます。
[設定] タブを選択して [追加] ボタンをクリックします。





 3-2. ダイアログから様々な種類の検証方法を選択できますが、
今回は、テスト結果(レスポンス)の値を検証するため [Value Assertion] より [Value Assertion] を選択し、[次へ] をクリックします。

 3-3. 次に、ツリー ビューで表示されたテスト結果(レスポンス)の要素の一覧から、検証対象とする項目を選択します。
今回は、[PostalName] を選択し、[終了] をクリックします。

3-4. 今回は、テスト結果(レスポンス)の [PostalName] の期待値として、[期待値] に 'test' と入力し、故意にテストを失敗させるように設定します。

4. テスト実行

4-1. [Test 1: REST Client] を選択し、テストを実施します。


4-2. 想定通り、テストが失敗していることを確認します。


5. テスト結果の確認

5-1. [Test 1: REST Client] を右クリックし、[タスクの表示] を選択します。

 5-2. [品質タスク] ビューに問題の詳細が表示されますので、エラー メッセージをダブルクリックします。

 5-3. [詳細] ビューに問題の詳細が表示されます。

次の理由でテストが失敗したことが解ります。
 ・ 検証ツールの期待値: test
 ・ 実際のテスト結果: テクマトリックス 株式会社


いかがでしたか?


■ まとめ

今回は、REST API のテスト結果を自動検証する方法を紹介しました。
サクッと完了ですね。

■ 次回予告

次回は、回帰テストの作成方法について紹介しますのでお楽しみに!




2013年1月11日金曜日

[セミナーのご案内] こんなソフトウェア開発は失敗する!! ~無駄のないテストが工数削減のカギ~



今回はセミナーのご案内です。

近年、顧客要求の多様化によりソースコードは複雑化・肥大化し、ソフトウェアの品質
確保はますます困難になってきています。とりわけ金融、通信、公共、防衛などの
各業界においては、C/C++言語で構築されたミッションクリティカルなシステムが数多く
存在し、既存ソフトウェアの修正や機能追加といった保守開発が盛んに行われる中で、
ソースコードは、ますます複雑なものとなっています。
この結果、品質確保が不十分となり、ソフトウェアの問題に対する原因究明に、多大な
工数と労力がかかることは、保守開発時の大きな課題です。

みなさまの中には、以下のような問題でお困りになられた方もいらっしゃるのではない
でしょうか?

・既存ソースコードに関連するバグが発生し、検出までに莫大な工数がかかってしまった
・保守開発時にデグレードが多発し、問題の修正に苦労した
・ソースコードを修正した際の影響範囲がわからないため、テスト対象が絞り込めず、
 無駄な時間を費やしてしまった

テクマトリックスでは、上記のような問題を抱えたC/C++システムにおいて、工数削減や
デグレード防止を実現するためのセミナーを企画いたしました。本セミナーでは、主に
ソースコード修正時の影響範囲の分析や効率的なソフトウェアテストの実施方法をご紹介
いたします。
ふるってご参加をご検討ください。


------------------------------------
セミナー開催概要
------------------------------------
タイトル:
     こんなソフトウェア開発は失敗する!!
         ~無駄のないテストが工数削減のカギ~

開催日程:20130130() 13:3016:10 (開場 13:15)
会場    :テクマトリックス セミナールーム
          東京都港区高輪4丁目108号 京急第7ビル 2
          最寄駅:JR・京浜急行「品川駅」より徒歩1
参費用 :無料
定員   :40(定員になり次第締め切らせていただきます。)
       ※同一部署からのご参加は、2名様までとさせていただきます。
       ※ご同業の方の参加はご遠慮いただいております。

【お申し込み】
弊社ホームページよりお申し込みください。

C言語、C++言語を使用されている方を対象としたセミナーです。

------------------------------------
アジェンダ
------------------------------------
1.保守開発におけるテストの有効性を高める方策

 【概要】
  既存システムの保守開発では、期間や納期、コストが優先され、十分なリスク
  調査が行われないまま、ソフトウェアの修正が行われる場面が多くあります。
  限られた時間やコストの中で、保守開発時に生じやすいデグレードや修正漏れ
  を防ぐポイントとなる、影響度分析やメトリクス計測の活用方法、また効率的
  なテスト方法についてご紹介します。

2.テクマトリックス取扱いツールのご紹介
 【概要】
  弊社が取り扱っております開発支援ツールについてデモンストレーションを
  交えてご紹介します。

 【ご紹介ツール】
 ・C++test 
  C/C++対応、単体テスト・静的解析・フロー解析・実行時メモリエラー検出ツール

 ・Insure++
  C/C++対応ランタイムエラー検出ツール

 ・Lattix
  アーキテクチャ分析ツール

 ・Understand
  ソースコード構造解析ツール

※内容は、変更する場合がございます。あらかじめご了承ください。

2013年1月4日金曜日

第1回:REST API テスト効率化 - テスト作成/実行

Web API 開発時における課題は、やはりテストの効率化です。Web APIのテストには、テスト クライアントが必須であり、そのため、テスト クライアントの開発、および開発したテスト クライアントのテストが必要になります。これらの作業は、素早くサービスを提供する本来の目的から遠ざけるだけでなく、単純に工数の増加を意味します。
テスト クライアントを開発する場合は、個々のテストの属人性が高くなるだけでなく、開発・改修するWeb APIの数やバージョンの増加に伴い、工数が益々増加してしまいます。

Parasoft SOAtestは、ツールのGUI より、Web API のテストに必要なテスト データを設定するだけで、直ぐにテストできます。そのため、テスト クライアントの準備にかかる工数を大幅に削減し、テストのスピードを加速します。

さらに、Parasoft SOAtestは、個々のテストクライアントのテスト結果に対して期待値を設定できます。そのため、テストの自動実行により得られた結果と期待値の検証を完全に自動化でき、目視検証を行う必要がなくなります。また、これにより工数を大幅に削減できます。検証結果はエビデンスレポートとして外部保存できます。