テクマトリックス、単体テストを強化した「Parasoft .TEST」新版

アプリコンテキスト依存のテストが可能に

システムエンジニアリング事業部 ソフトウェアエンジニアリング営業部ソフトウェアエンジニアリング営業第二課の山田新吾氏

 テクマトリックス株式会社は8月26日、.NET対応自動テストツール「Parasoft.TEST 5.0」日本語版の販売・出荷を同日開始すると発表した。

 Parasoft .TESTは、.NETアプリケーション向けの単体テスト・静的解析自動化ツール。単体テスト機能では、実行時例外を引き起こすテストケースと、広範囲のソースコードをカバーするテストケースを自動生成し、単体テストを自動実行する。テスト時にテストカバレッジ情報を収集し、詳細なレポートも可能。

 静的解析機能では、豊富な静的解析コーディングルールにより、バグの可能性やパフォーマンスの劣化など、アプリケーションの性能や品質に影響するようなプログラムの問題点を指摘する。さらに処理フローを解析し、NullReferenceExceptionやリソースリーク、nullチェックの前の間接参照といった検出困難な問題点を、アプリケーションを実行することなく検出してくれる。

 新版では、主に単体テスト機能の強化が図られた。

 まず、アプリケーションコンテキストやリソースに依存する単体テストを実行する「ホストテスト」機能をサポート。これは、アプリケーションを実行し、ユーザーが指定した任意の場所(メソッド)に到達した段階で、あらかじめ用意されたテストケースを開始してくれるもの。「通常のアプリケーション実行時と同じ状況下で単体テストを行えるので、現実的な挙動を調査できる」(システムエンジニアリング事業部 ソフトウェアエンジニアリング営業部ソフトウェアエンジニアリング営業第二課の山田新吾氏)という。

 同機能では、アプリケーション自体のリソースを使用できるため、例えばプラグインのように、ホストアプリケーションが起動している状況でのみ稼動するモジュールのテストにおいて、わざわざテストスタブやモックオブジェクトを作る必要がないのが特徴となる。

 このほか、テストスタブの設定を容易にする「スタブウィザード」機能も追加。同機能では、外部メソッドの呼び出しを置き換える代替モジュールとなるテストスタブを、ウィザード形式で簡単に作成できる。テストスタブを利用することで、テスト対象クラスを外部から分離したテストや、外部メソッドへのアクセスを制御したテストが可能になる。

 スタブウィザード機能では、プロジェクトから参照されているすべてのシンボルが表示され、メソッド・クラス単位、名前空間やモジュール単位でスタブの種類を設定することが可能。スタブテンプレートを生成することで、テスト固有のスタブを作成するのも容易という。

ホストテスト機能の概要アプリを実行しあるメソッドに到達すると、あらかじめ用意されたテストケースが呼び出される。より現実的な単体テストが可能にスタブウィザードの概要
Tracer機能の概要

 さらに回帰テストに効果的な「Tracer」機能も搭載。一度利用したテストケースを再利用して、デグレードや仕様変更を自動チェックできる。アプリケーションの実行ログを収集し、テストケースを再生成してくれるので、手作業でプログラミングすることなく、「実際に使用されたデータを使ってアプリケーションの挙動に基づいた回帰テストが可能」(山田氏)という。

 バグ探偵(フロー解析)と静的解析のコーディングルールに新規ルールも追加された。以前のバージョンでは、Cyclomatic複雑度を計測するコーディングルールは未搭載だったが、今回よりすべての.NET言語でサポート。加えて、バグ探偵ルールの「リソースリーク」「バグの可能性」「スレッドと同期」、静的解析ルールの「シリアライズやバグの可能性」「可読性」などのカテゴリにも新規ルールが追加されており、全部で444個を数えた。

 価格は、エントリーモデルとなる「Professional Edition」が49万8000円(税別)、コーディングルールの作成・編集機能を追加したミッドレンジモデル「Architect Edition」が59万8000円(同)、チーム運用機能までサポートするハイエンドモデル「Server Edition」が210万円(同)。いずれも1年間の保守サービスを含む。

 テクマトリックスでは、ハンズオンセミナーやテスト評価支援、カスタムコーディングルール選定支援などの無償・有償サービスを取りそろえ、2009年度中に100ライセンスの出荷を目指す。

メイン画面テストコンフィグレーション画面McCabe's Cyclomatic Complexityやクラスの数、継承の深さなど、13種のメトリクス情報を収集する機能も搭載





(川島 弘之)

2009/8/26 13:38