このブログについて

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

2012年12月7日金曜日

Web API テスト効率化

Parasoftブログの第1弾は、Web API の効率的なテスト方法のご紹介です。

ここで紹介する Parasoft SOAtest は、約50種類のサブツールを含む機能テストスイートです。今回は、Web API のテストに用いる機能、サブツールにフォーカスして、どのようにテストを効率化できるかご紹介いたします。


 Web API は、スマートフォンアプリ、マシン間連携(M2M)、およびシステム間連携(SOA)において、高機能なコンテンツを、より短期間・低コストで開発する上で必要不可欠です。クラウド、モバイル、インフォメーション、ソーシャルなどの様々な形態のビジネスでWeb APIを提供しているだけでなく、これらをマッシュアップして生まれた新たなサービスが続々とリリースされています。


このようにWeb APIを通して自社の魅力的な機能を提供することは、ビジネス機会獲得のカギとなります。一方、高品質で信頼性の高いWeb APIを迅速にリリースするためには、開発スピードを落とさずに品質を確保できるテスト手法が求められます。

2012年12月3日月曜日

はじめに

『テスト効率化、コスト削減、短期リリース』

ソフトウェア開発のV字モデルにおいて、単体テストから総合テストに至るまで、様々なアプローチがあります。このブログでは、米国Parasoft社の製品を活用し、ソフトウェア開発における課題の解決策やテスト効率化の方法について紹介していきます。




■ Parasoft 製品ラインナップ

・Parasoft C++test
  C++testは、C/C++プログラムの単体テスト、静的解析、フロー解析、実行時メモリエラー検出の自動化をサポートし、高品質なソフトウェアの開発を実現するための総合的なテストツールです。C++testの4つの検証機能は、堅牢で高品質なC/C++アプリケーションの開発とテスト工数の大幅削減を可能にします。これらの4つの検証機能は、クロスコンパイル後にシミュレーターやターゲット機でテストを実行するような組み込みソフトウェアの検証にも使用できます。

・Parasoft Jtest
  Jtestは、セキュアで高品質なJavaアプリケーションの開発とテスト工数の削減をサポートするJava対応テストツールです。テストケースを自動生成し、Javaアプリケーションの単体テストを自動実行します。また、約1,100個の静的解析コーディングルールを使用してソースコードを解析し、問題点を指摘します。さらに、処理フローを解析し、 リソースリークやNullPointerException、さらには、SQLインジェクションやクロスサイトスクリプティング(XSS)といったセキュリティ上危険なコードも検出することが可能です。 Jtestを使用することにより、セキュアで高品質なJavaアプリケーションの開発とテスト工数の大幅削減が可能になります。

・Parasoft dotTEST
  dotTESTは、.NETアプリケーションの単体テストに必要なテストドライバ、テストスタブ、テストケースを生成し、単体テストを自動実行。実行時例外やエラーを検出します。 また、ソースコードを静的解析し、エラーを引き起こす可能性のあるコードを検出します。さらに、.NETアプリケーションの処理フローを検証し、SQLインジェクションやクロスサイトスクリプト(XSS)などのセキュリティ上危険なコードやリソースリークやNullReferenceExceptionといった運用上問題となりうるコードをピンポイントで検出します。dotTEST を使用することにより、セキュアで高品質な.NETアプリケーションの開発とテスト工数の大幅削減が可能になります。

・Parasoft Insure++
  Insure++は、C/C++アプリケーションのランタイムエラーを自動的に検出する開発支援ツールです。メモリ破壊 、メモリリーク、ポインターエラー 、I/OエラーといったC/C++特有の検出困難なエラーをプログラムの実行時に自動的に検出します。また、NULLポインタや未初期化メモリの使用、ダングリングポインタといったメモリ領域の確保と解放に関わる問題も自動的に検出します。さらに、システムへの攻撃に利用されることの多いオーバーフローについても、アプリケーションの実行時にメモリ領域を監視し、バッファオーバーフローやスタックオーバーフロー、不正なメモリアクセスなどのエラーを検出します。Insure++を使用することにより、高品質なソフトウェアを迅速かつ容易に開発できます。

・Parasoft SOAtest
  SOAtestは、SOAPやREST、HTTP(S)、JSONといったサービスやアプリケーションの機能テスト、負荷テストを自動化し、効率的に実施するためのテストツールです。 SOAtestは、クライアント/サーバーの機能テスト、パフォーマンステスト/負荷テスト、さらにはセキュリティ検証まで、さまざまな角度から Web API、Webサービス、Webアプリケーションを検証します。

開発中のサービスやアプリケーションが接続する外部サービス・コンポーネント、データベースが未完成でも、これらのテストスタブを作成する Parasoft Virtualize と合わせて利用することで、開発者やテスト担当者が任意のタイミングでテストできるようになります。

・Parasoft Virtualize
    Virtualizeは、テストスタブの作成ツールです。Virtualizeは、テストに必要な実環境のシステム、コンポーネント、サービスの動作をテストスタブ化することで、各チームがあたかも実環境を利用しているかのように、実施したいタイミングでアプリケーションをテストできるようにします。これによって、並行開発や機能テスト時のアクセスやテスト環境の利用に関する問題を解決し、開発効率の向上とコスト削減を実現します。


・Parasoft Concerto
    Concertoは、ソフトウェア開発ライフサイクルのすべての段階において、ポリシーに基づいた開発を推進し、タスクベースの詳細な進捗管理や品質管理が行えるソフトウェア開発管理プラットフォームです。機能安全規格のISO 26262IEC 61508、または、医療機器ソフトウェア安全規格のIEC 62304FDAなどの要求事項を具体的なタスクとして定義し、ソフトウェア開発ライフサイクル(SDLC)全般を通してそのタスクが遂行されているかどうかを可視化し、追跡することを可能にします。