紹介資料のダウンロード

セキュアで高品質な.NETアプリケーションの開発とテ
スト工数の大幅削減をサポート
-.NET 対応ユニットテストツール-
.TEST 5.0 基本機能紹介
テクマトリックス株式会社
システムエンジニアリング事業部
ソフトウェアエンジニアリング営業部
Copyright © 2011TechMatrix Corporation. All rights reserved.
会社概要
テクマトリックス株式会社
・設立:1984年8月
(旧社名:ニチメン・データ・システム)
・資本金:12億9,812万円
・従業員数:815名〔連結〕('09年3月末現在)
・主要株主:日商エレクトロニクス株式会社
楽天株式会社
・グループ会社:
合同会社医知悟
クロス・ヘッド株式会社
沖縄クロス・ヘッド株式会社
エヌ・シー・エル・コミュニケーション株式会社
株式会社カサレアル
・事業内容:
コンピュータ、通信関連機器のハードウェア・
ソフトウェアの販売、システム開発・構築、
保守、教育、コンサルティング業務、
アプリケーションパッケージの開発・販売
など
Copyright © 2011 TechMatrix Corporation. All rights reserved.
取扱製品
Parasoft社製品
Lattix社製品
Lattix
Parasoft Jtest®
アーキテクチャ分析ツール
Java言語対応単体テストツール
Parasoft .TEST™
SCItools社製品
.NET言語対応単体ツール
Understand
Parasoft C++test™
ソースコード解析ツール
C/C++言語対応単体テストツール
Parasoft Insure++®
メモリ関連バグ検出ツール
Parasoft SOAtest™
Webアプリ・Webサービスシステムテストツール
Parasoft Concerto
テスト品質管理ソリューションツール
Parasoft Corporation
・設立:1987年
・本社:米国カリフォルニア州 モンロビア
・事業内容:テスティングツールをはじめ、ソフトウェアの開発・販売、コンサルティング業務など
Copyright © 2011 TechMatrix Corporation. All rights reserved.
開発工程におけるバグ修正コスト
早期のテスト実行によりバグ
の混入を削減することが可能
バグ混入
Copyright © 2011 TechMatrix Corporation. All rights reserved.
各開発フェーズにおける.TESTの役割
コーディング
単体テスト
静的解析機能
機能テスト
Copyright © 2011 TechMatrix Corporation. All rights reserved.
回帰テスト
開発テストの問題点と.TEST
開発テストの問題点と
.TESTの支援機能
の支援機能
コーディング規約の未確立・未確
認
コーディングのばらつき
目視レビューが困難
開発者のカンに頼った
大量のバグの作りこみ
静的解析機能
・パターンマッチング
・フロー解析(バグ探偵)
テストの密度・信頼性
のバラつき
プログラマ依存のテスト
単体テストの経験が浅い
テストケース生成に莫大な時間・工数
未テスト箇所が多くバグが残存
改修・仕様変更による仕様レビュー
が徹底できていない
仕様レビューにかかる時間が膨大
リモート開発のため仕様レビューの
仕組みがつくれない
Copyright © 2011 TechMatrix Corporation. All rights reserved.
単体テスト機能
・ホワイトボックス
・ブラックボックス
・回帰テスト
コードレビュー機能
静的解析
≪静的解析機能≫
コーディングルールによるコード解析
① 400以上のコーディングルールを搭載
フォーマットや書式に関するものだけではなくバグ、パフォーマンス、セキュリティ
に関係するルールを多数搭載
※.NET Framework Design Guidelines準拠
実装済みコーディングルールカテゴリー
名前の付け方
クラス メンバの使用
型の使用のガイドライン
COMのガイドライン
エラー処理
国際化
演算子のオーバーロードの使用
型キャストのガイドライン
Finalize と Dispose の実装
コレクション使用のガイドライン
Copyright © 2011 TechMatrix Corporation. All rights reserved.
CLS 準拠
C#
例外
ガベッジ コレクタ
バグの可能性
シリアライズ化のガイドライン
オブジェクト指向メトリックス
可読性と保守性の向上
セキュアコーディング
・シリアライズに関する
ルールなど、Ver5.0では
約30個のルールが追加
実装
・サイクロマチック複雑
度を計測するコーディン
グルールは全ての.NET
言語をサポート
静的解析
② コーディングルールの追加・カスタマイズ(RuleWizard)
過去のコーディングエラーパターンや、独自セキュリティポリシーに基づくルール
を追加実装
③ メトリクス収集機能
McCabe‘s Cyclomatic Complexityやクラスの数、継承の深さなど
13種類のメトリクス情報を収集。開発コードの指標作りに
④ ユーザーフレンドリーなGUIと扱い易さ
日本語化されたGUI、設定のシンプルさ、全てのルールにヘルプを搭載。導入
やメンテナンスコスト抑制
Copyright © 2011 TechMatrix Corporation. All rights reserved.
静的解析
≪静的解析機能-バグ探偵≫
データフロー解析
複数のクラスや名前空間にまたがる実行パスを解析し、ある特定の
実行パスで発生する可能性のある問題を検出
検出可能なエラーカテゴリー
・Null Reference Exception
・リソースリーク
・SQLインジェクション
・HTTPレスポンス分割
Copyright © 2011 TechMatrix Corporation. All rights reserved.
・ゼロ除算
・nullチェック前の間接参照
・XSS
・スレッドと同期化
静的解析の自動運用
TCM
.TEST 起動
静的解析
バグ探偵
共通
ルールセット
管理
エラー
レポート
.TEST
Server Edition
バッチスクリプト
<エラーレポート自動出力>
※指定フォルダへ
もしくはメールで開発者へ各自の
タスクを送付
構成管理
ツール
Aプロジェクト
手動
.TEST
Professional
Edition
Bプロジェクト
.TEST
Professional
Edition
Cプロジェクト フォルダ
Dプロジェクト フォルダ
手
動
Cプロジェクト
手
動
Dプロジェクト
.TEST
Professional
Edition
各開発者は2重チェックの意識を持たず、開発・修正作業に専念することができる
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Team Configuration Manager(TCM)によるレポート管理
TCMは、ブラウザでのレポート閲覧を可能とする仕組みを実装。
バッチシステムにより実施された検証結果を各開発者、管理者のマシンからブラウザで確認でき、
以下の情報を時系列でレポート参照できます。
【静的解析】
‐ ルール違反数
‐ コード行数
【単体テスト】
‐ 生成されたテストケース数
‐ 実行されたテストケース数
‐ 検出された実行時例外
【TCMレポートイメージ】
Copyright © 2011 TechMatrix Corporation. All rights reserved.
各開発フェーズにおける.TESTの役割
コーディング
単体テスト
単体テスト機
能
機能テスト
Copyright © 2011 TechMatrix Corporation. All rights reserved.
回帰テスト
単体テスト
≪単体テスト機能≫
テストケース・スタブを自動生成・実行
①.予期しない実行時例外の検出 (ホワイトボックステスト)
例外を発生させるテストケースをNUnit形式で生成。マニュアルテストでの漏れを
防止し、テストケースコーディングの工数を削減
②.仕様・設計に基づく単体テストを効率化 (ブラックボックステスト)
データソース機能、ユーザー定義テストケースの追加を簡略、効率化
データソース機能
ユーザー定義のインプット値や仕様に基づくアウトプットの値を、エクセルまたはCSVファイルからま
とめて流し込み。個々のテストパターンを一括してテストすることでテスト工数を削減。作成した、エ
クセル、CSVデータはテスト仕様書の一部、またはテストのエビデンスとしても利用可。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
単体テスト
<テストケースのパラメータ化機能>
引数やアウトプットとなるユーザー定義テストケースの値をExcelやCSVに記述しておき、.TESTに一
括で流し込み、テストケース追加の作業効負荷を大幅に軽減します。
プログラムの仕様確認、カバレッジ検証などが効率よく行え、使用したExcelは実施したテストのエ
ビデンスとして使用できます。
[TestAttribute()]
[InCodeDataSource(typeof(XLSDataSourceFactory),
@"ExcelData1.xls;MySheet")]
[UserManagedAssertions()]
public void TestConstructor_0(
double balance,
double id,
string ssn,
string name,
string zip,
string cardNumber)
{
// The values for the parameters are automatically
// assigned by .TEST while invoking the test.
IDataRow inputRow = DataSourceUtil.GetCurrentRow();
bank.CreditCard var0 = new bank.CreditCard(
(int)balance, (int)id, ssn, name, zip, cardNumber);
}
Copyright © 2011 TechMatrix Corporation. All rights reserved.
balance id ssn
1000
name
1 112-43-6789 John Doe
0 -1 112-43-6789 John Doe
zip
cardNumber
92222 1123-1234-4321-5436
92222 1123-1234-4321-543
1000
1 112-43-678
John Doe
92222 1123-1234-4321-543
1000
1 112-43-6789 John Doe
92222 1123-1234-4321-543
スタブウィザード
≪単体テスト機能≫
単体テストは、DBアクセスやシステム API の呼び出しなどはスタブを用いて外部
環境に依存しない条件で実行することが望ましいとされています。
.TESTでは、新たに追加されたスタブウィザードで、簡単にスタブを作成すること
ができます。
<生成結果>
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Test Case Explorer
≪単体テスト機能≫
実行したテストケースをツリー形式にて確認することが可能になりました。
失敗したテストケースはTest Case Explorerからタスクを表示することによって
発生した例外の詳細な情報を確認することができます。
※成功したテストケースは緑で、失敗したテストケースは赤で表示されます。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
.TESTを利用した単体テストの自動運用
TCM
テスト設定の管理
テスト結果の共有
◎ホワイトボックステスト
テストケース自動生成
◎ブラックボックステスト
仕様に基づくテストケースを生成
◎カバレッジ取得
行カバレッジ、ブランチカバレッジ
コーディング
単体テスト実施
Professional Edition
Copyright © 2011 TechMatrix Corporation. All rights reserved.
自動化
③テスト結果格納
ナイトリービルドシステム
テストケース自動生成
テストケース自動実行
④結果をダイレクトに
インポートし、問題を
修正
構成管理ツール
(CVSなど)
①コードチェックイン
開発者
人手作業
②Jtestバッチ起動
Server Edition
各開発フェーズにおける.TESTの役割
コーディング
単体テスト
ホストテスト機
能
機能テスト
Copyright © 2011 TechMatrix Corporation. All rights reserved.
回帰テスト
ホストテスト機能
≪単体テスト機能≫
アプリケーションコンテキストやリソースに依存する単体テストを行うことが可能に
なりました。
ユーザアプリケーションを実行し、ユーザが指定した任意の場所(メソッド)に到達
するとテストを実行します。
これにより、通常のアプリケーション実行時と同じ状況下で単体テストを実行する
ことが可能となります。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
ホストテスト機能 イメージ
テストを実行!
.TEST のテストケース
起動
ホストアプリケーション
代わりに.TESTのテスト
ケースが呼び出される
本来ならこのメソッドが
呼び出される
テストランナーメソッドとしてStart()を
登録しておく
Copyright © 2011 TechMatrix Corporation. All rights reserved.
アプリケーション実行カバレッジ
テストを実行!
起動
アプリケーション
アプリケーション実行時の
カバレッジを取得。
ソースコードで実行された
行を確認。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
各開発フェーズにおける.TESTの役割
コーディング
単体テスト
.TEST Tracer
機能テスト
Copyright © 2011 TechMatrix Corporation. All rights reserved.
回帰テスト
Tracer
≪単体テスト機能≫
コード修正時のデグレードチェック
.TESTで利用したテストケースを再利用し、デグレードおよび仕様変更を自動チェック。
Tracer機能でアプリケーションレベルでの回帰テストが実行可能
Webアプリ
Windowsアプリ
Exeファイル
① .TESTからEXEファイ
ルを指定してアプリ
ケーションを実行
① .TESTからクライア
ントアプリを実行
ASP.NET開発サーバー
② 実行されたクラスを
トレースしログを収集
.TEST Tracer
[Tracer]機能は、既存のアプリケーション実行して特定の
クラスに出入りする呼び出しをトレースして情報を収集し、
トレースされたクラスのためのテスト ケースを自動作成。
ソースコードベースのテストケースではなく、アプリケーショ
ン操作に基づいた メンテナンス性の低いテストケースを自
動生成できます。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
② サーバ上で実行され
たクラスをトレースし
ログを収集
③ Nunit形式テストケース生成
単体テスト
コード
各開発フェーズにおける.TESTの役割
コーディング
単体テスト
コードレビュー機
能
機能テスト
回帰テスト
レビューの実施
Copyright © 2011 TechMatrix Corporation. All rights reserved.
コードレビュー
仕様書・設計書の矛盾や漏れ
開発者の誤った解釈や暗黙の仕様
コードの改造・改修
エラーやバグの修正
等
→ レビューが必須
・コードの改造やエラー修正が行われた際のレビューをシステマティックに実施
・レビューが必要なコードの変更を特定し、レビューワに通知
・地理的に離れた開発者のレビューを可能に
修正前
修正後
ソース
ソース
レビューチケット
変更箇所
レビューコメント
Copyright © 2011 TechMatrix Corporation. All rights reserved.
コードレビュー
コードレビュー機能 運用イメージ
TCM
③レビュー依頼
(レビュータスク受信)
テスト設定の管理
テスト結果の共有
④レビュー結果
(修正タスク送信)
レビュー担当者
モニター(管理者)
レビュー結果の
確認と修正
開発者
開発者
Copyright © 2011 TechMatrix Corporation. All rights reserved.
ソースコードスキャナーがレ
ビューが必要なソースコード
を自動検出
①コードチェックインまたは
レビュータスク送信
②レビュータスク送信
Server Edition
構成管理ツール
(CVSなど)
稼動環境
.TEST5.0
Windows Vista、Windows XP、Windows 2003 server
最小 1GB のメモリ(2GB を推奨)
1GHz 以上のプロセッサ
Visual Studio 2005、Visual Studio 2008
※Visual Studio2003の対応についてはお問い合わせください。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
各種サービス
無償サービス
•ハンズオンセミナー
実際に【.TEST】を操作しながら、機能や利用方法をご紹介
•静的解析評価支援
弊社エンジニアがお伺いし、お客さまの環境にて【.TEST】による静的解析を実施。
その結果をご報告※
•単体テスト評価支援
弊社エンジニアがお伺いし、お客さまの環境にて【.TEST】による単体テストを実施。
その結果をご報告※
・セキュリティ検証
【.TEST】の静的解析機能及び、バグ探偵機能のセキュリティ関連ルールを用い、お客様の
ソースコードの脆弱性を検証。その結果をご報告※
※ 静的解析評価支援、単体テスト評価支援、セキュリティ検証の対象アプリケーション
のソースコードは5万行までとさせていただきます。5万行を超える場合は、お問い合わせください。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
各種サービス
有償サービス
•トレーニング
.TEST初級トレーニング
RuleWizard(ユーザ定義コーディングルール作成ツール)トレーニング
•コーディングルール選定支援サービス
お客様に有効な静的解析コーディングルールの選定をご支援
•カスタムコーディングルール作成サービス
ご要望の静的解析コーディングルールを作成
•ナイトリービルドシステム環境構築サービス
.TESTによるテストの運用を自動化する仕組みを構築
•運用支援
静的解析/単体テスト機能の利用に対するコンサルテーションサービス。
開発現場で.TESTを有効に活用していただくために、段階を経た導入により、
できるだけツール導入による負担の軽減を目的とした支援
Copyright © 2011 TechMatrix Corporation. All rights reserved.
有償サービス 例
お客様内に弊社によるソースコードチェックサービス部門を設置
本サービスは、.TESTによる静的解析チェックの結果を、弊社での蓄積されたノウハウをベースにしたエ
ラー分析、精査により、修正すべきエラーの優先度、またプロジェクト毎のエラー傾向などをご報告いた
します。
【メリット】
イメージ
・検出エラー分析にかかる工数の大幅削減
・効率的なエラーの修正(修正の優先度付け)
・静的解析の実施を徹底することで品質を底上げ
貴社開発現場 様
A Project
B Project
エラー修正
コーディング
1
C Project
4
ソースコード
チェックイン
結果レポート
弊社技術担当者
2
3
.TESTによる静的解析実行
Copyright © 2011 TechMatrix Corporation. All rights reserved.
エラー分析
運用例:外部委託開発における受入れ時運用例
短納期開発でテストを行
う時間がない
リソース不足
テストスキルがバラバラ
テストは受託企業任せ
(テストをお願いするとコ
ストに跳ね返る・・)
コード受入れ時の基準や
手法がない
国内・海外受託企業(プロジェクト)
委託元企業(プロジェクト)
TCM
テスト設定の管理
テスト結果の共有
④結果をインポートし、
問題を修正
③テスト結果格納
Professional Edition
(フローティングライセンス)
ナイトリービルドシステム
静的解析・バグ探偵
テストケース自動生成
コーディング
静的解析
単体・回帰テス
ト
実施
①コードチェックイン
開発者
Copyright © 2011 TechMatrix Corporation. All rights reserved.
②.TESTバッチ起
動
構成管理ツール
(CVSなど)
Server Edition
Parasoft製品レポートオプション ~Concerto Report Center~
管理者向け品質データ
へアクセス
.TESTなどテストツール利用者
Concerto
バグ管理システム
~Report Center~
構成管理ツール
管理者A
開発者向け品質データ
へアクセス
開発者B
Parasoft Concertoにより、品質管理のためのデータを自動的に蓄積、
いつでもWebブラウザを通して状況を確認できます。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Parasoft製品レポートオプション ~Concerto Report Center~
レポート一覧
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Parasoft製品レポートオプション ~Concerto Report Center~
<例1>マネージャーが各情報の一覧を時系列で確認!
ソースコードのボリュームは増えている。
テストが実施されていない
矛盾点があれば、なぜそうなっているのか
ドリルダウンして確認。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Parasoft製品レポートオプション ~Concerto Report Center~
<例2>カバレッジ情報を時系列で確認
カバレッジ統計減少傾向!1
プロジェクト全体のカ
バレッジ統計データを
確認し、減少傾向で
あれば、いち早くそれ
に気づき、原因を調
査。
C++testなどのテストツールだけで
は、カバレッジ情報を時系列でその
変化をみることができない。
調査のため、情報をドリルダウン。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Parasoft製品レポートオプション ~Concerto Report Center~
<例2>カバレッジ情報を時系列で確認
どのファイルがカバレッジ何%か確認できる。
Copyright © 2011 TechMatrix Corporation. All rights reserved.
Parasoft製品レポートオプション ~Concerto Report Center~
<例3>静的解析違反を時系列に表示し、プロジェクトの推移を
計測、問題があれば、いち早く対策!
異常に静的解析違反が増加。
静的解析、時系列表示
なぜ・・・?
クリック後、ドリルダウン
ユーザー「PS」の違反が多い!!
Copyright © 2011 TechMatrix Corporation. All rights reserved.
利用例
<レポート負荷の軽減>
担当者が
静的解析を実施
静的解析マシン
解析するた
めの時間
レポート結果
をまとめる
レポートをま
とめる時間
Report Center
で自動化
時系列で担当者ご
との履歴を表示
Copyright © 2011 TechMatrix Corporation. All rights reserved.
各担当者がエク
セルファイルを更
新する時間
各担当者は、レポートを確認
し、自分の担当分を修正
利用例
協力会社先
<分散開発での適用>
協力会社A
自動チェックアウト
チェックイン
協力会社B
構成管理ツール
Report Center
にて協力会社先
の品質の可視化
Copyright © 2011 TechMatrix Corporation. All rights reserved.
協力会社C
開発フェーズごとのツール適用
設計
Lattix
実装
単体テスト
機能テスト
Parasoft Jtest ・ C++test ・ .TEST
性能/信頼性テスト
Parasoft Insure++
Parasoft WebKing
Parasoft WebKing
Parasoft SOAtest
Understand
・静的解析
(Java ・.NET ・C/C++
・JavaScript ・HTML
・XML ・CSS)
アーキテクチャ分析
・セキュリティルー
ルによるリスクの
軽減
・メトリクス計測に
よる設計乖離防
止
・コードレビュー
・単体テスト生成
・単体テスト実行
・カバレッジ計測
・Webサービスの
単体テスト
・コードレビュー
・Webページ:デー
タ駆動テスト
・Webサービス間
のREQ/RESシ
ミュレーション
回帰テスト
Copyright © 2011 TechMatrix Corporation. All rights reserved.
・負荷テスト
・パフォーマンス
テスト
・セキュリティ
テスト
お問い合わせ
営業課
Tel : 03-5334-5621 / Fax : 03-5334-5622
E-Mail : [email protected]
Copyright © 2011 TechMatrix Corporation. All rights reserved.