ホーム > 製品・サービス情報 > 組込み開発ツール > ユニットマスター

ユニットマスター  組織運用対応 単体テスト標準化ツール

単体テストの効率化と、グループ運用・組織的運用を可能にする単体テストツール
「要素分析」の手法により 単体テスト設計の標準化・プロセス化を実現
取り扱いの容易な Microsoft Visual C++を使用してテスト環境を構築
テスト管理者向け プロジェクト全体の単体テスト結果、進捗の管理業務をサポート


製品の概要

「ユニットマスター」は、単体テストを開発プロセスに取り入れ、組織的運用を可能にする単体テスト標準化ツールです。

テスト担当者のスキルに依存しがちな単体テスト設計を標準化するために、長年の単体テスト代行サービスで培った「要素分析」法をテストデータ設計機能に取り入れています。簡単な設計ルールの運用だけで、テスト担当者のスキルに依存しない単体テスト設計が可能です。

テスト実行環境には、Windows開発環境の標準であるMicrosoft Visual C++を使用しています。単体テストに必要なテストドライバの生成、コンパイル、実行、テスト結果の出力まで、ボタン1つで自動実行されます。対象関数の問題点の分析が必要な際には、テスト入力データを指定するだけで、Visual C++のデバッガと連携したソースコードデバッグが可能です。

ユニットマスターの特長

単体テストを標準化し組織的運用を可能にする汎用単体テストスイート

「ユニットマスター」は、単体テストを開発プロセスとして標準化するための機能を統合化し、大規模開発での運用も可能とするテストスイートです。単体テスト設計、テスト実行、結果・進捗閲覧の3つの基本機能から構成されています。

「要素分析」手法により テスト担当者のスキルに依存しない 標準化されたテストデータ設計を実現

関数の品質を同じ指標で判断するためには、テスト担当者の判断やスキルに依存しない、標準化されたテスト指針に基づいたテスト設計が必要です。ユニットマスターには、客観的に単体テストデータの観点や、テストの品質を判断可能な「要素分析」の手法を用いて、不具合検出を目的とした単体テストデータ設計機能が備わっています。

   「要素分析」の手法についてはこちらのページへ(GAIO CLUB ONLINE)

組込みプラットフォームに依存しないテストドライバを自動生成
テストコードのコンパイルから実行までを自動化

「テストランチャー」は、テストドライバやテストパターンを埋め込んだテスト用ソースコードを組込みプラットフォーム非依存のANSI-C、汎用C++ソースとして自動生成します。Visual C++を使用して、テストコードのコンパイル、実行、結果の出力まで、ボタン1つで自動化されます。

大規模プロジェクトにおける単体テスト結果や進捗管理し 組織的運用を可能にする機能を搭載

テスト実行から得られた、期待値評価、カバレッジ計測、テストベクタ数などのテスト結果は、テスト担当者向けに、実行クライアントPCの専用ビューで確認できます。さらに、リレーショナルデータベースのサポートにより、テスト結果、進捗の集中管理や、大規模プロジェクトでの使用、ツール運用の効率化など、組織的運用を可能にします。

■テストデータデザイナー
単体テスト設計機能モジュール

■テストランチャー 
テスト実行機能モジュール

■テストレポーター
結果閲覧・進捗管理機能モジュール

●不具合検出を目的とした単体テスト設計
「要素分析」の手法を用いたテスト要因の抽出
●網羅性を落とさない、組合せ設定
●テスト設計レビューの機能
●STUBコード設計

●Windows開発環境の標準であるMicrosoft Visual C++をテスト実行環境に使用
●ソースコードベース、プラットフォーム非依存の単体テストを実行
● Visual C++で実行可能なテストドライバを自動生成
●テストパターンのソース埋め込み
●実行結果から出力値、カバレッジを取得
●Visual C++のデバッガと連携して、問題点のデバッグが可能

●出力値/期待値の自動判定
●C0,C1,MC/DCのカバレッジ結果表示
●CSV, HTML, XML, テキスト形式で結果を出力
●過去のテスト結果との差分表示
●進捗管理やテスト結果の収集のための、リレーショナルDBへの接続


統合化された 単体テスト設計・結果閲覧ビュー

テストデータ設計時のビュー

テスト設計時には、ソースコード、モジュール入出力表(要素分析表)、スタブ設計、組合せテストケースのウインドウを一覧しながら、効率的に単体テスト設計が行えます。この設計機能は、「テストデータデザイナー」で実現されます。

テスト結果確認時のビュー

「テストランチャー」による単体テスト実行後、出力されるテスト結果の閲覧時には、入出力結果、期待値照合、C0/C1カバレッジ、各関数ごとの結果一覧のウインドウを統合して確認することができます。

ユニットマスターによる単体テストの流れ

ユニットマスターで単体テストを行うためには、まず、Microsoft Visual C++を使用してテスト環境を構築します。一般的な組込みソフトの場合では、Visual C++のプロジェクト作成ウィザードを使用して、Win32コンソールアプリケーションのプロジェクトを作成し、この中にテスト対象の関数を含むソースコード、ヘッダファイルを登録します。ビルドを行い、リンクエラー以外のエラーが発生しないことが必要です。

作成されたMicrosoft Visual C++のプロジェクトファイル(ソリューションファイル *.sln)をユニットマスターに読み込ませることで、Visual C++で作成した環境の上で、単体テスト設計、実行、結果の閲覧が可能になります。テスト対象関数の不具合調査は、Visual C++のデバッガ機能を使用して行うことができます。

 

テストデータデザイナー

「要素分析」の手法により 単体テスト設計を標準化

ガイオが単体テスト代行サービスを通じて得た知見を基に確立した、スキルの異なる作業者でも一定の水準の単体テスト設計を可能にする、単体テスト設計手法です。関数に与えるテストパターンを作成する前に、関数の入出力要素と、各要素に与えるテストデータを「要素分析表(モジュール入出力表) 」にまとめることで、必要なテストポイントの漏れを防ぎ、テスト設計のレビューを容易にします。

対象関数を解析して 関数の入出力変数を自動抽出

要素分析表作成時には、テスト対象関数ソースの静的解析を行い、関数への入出力条件となる外部変数、引数などを自動抽出します。

設計ルールに基づき 必要なテストデータ枠を自動作成
解析可能な境界条件値、最大最小値などを自動抽出

単体テストに含める各変数へのテスト観点を設計ルールとして設定することで、要素分析表作成時に、テストに必要なデータ枠を自動作成します。また、静的解析から抽出可能な境界条件値、最大最小値などは、テストデータも自動設定されます。短時間で漏れのない要素分析表を作成できます。


要素分析表から組合せによりテストパターンを生成

要素分析表に抽出した各入力変数のテストデータを組み合わせて、関数に与えるテストパターンを生成します。ユニットマスターは、要素分析表のチェックボックスを付けたテストデータの全数組み合わせを作成する簡単な原理で組み合わせを管理します。これにより、誰にでも理解し易い方法で、網羅性を落とさず冗長性を抑えたテストパターンの生成が可能です。


   「要素分析」の手法についての参考情報はこちらのページへ(GAIO CLUB ONLINE)

 

テストランチャー

テスト実行環境を選ばない 単体テスト実行の仕組みを搭載

テストランチャーは、テスト実行環境を柔軟に選択可能なテスト実行の仕組みを提供します。単体テストの実行時には、テストドライバやテストケースを埋め込んだテスト用ソースコードを、組込みプラットフォーム非依存のANSI-C、汎用C++ソースとして自動生成し、各プラットフォームでコンパイル、実行することで、入出力テスト、カバレッジ計測が行える仕組みとなっています。

初回バージョンでは、Windows系組込みアプリケーション(Windows Automotive)に対応した機能を提供いたしますが、ご要求に合わせて、順次プラットフォームに対応する予定です。

テストケースを指定して Visual Studioと連動した関数デバッグが可能

期待値との不一致などの問題点を発見した場合には、その原因特定のために、Visual Studio連動デバッグ機能が利用可能です。任意のテストケースを選択してデバッグボタンを押すと、そのテストケースを対象関数に入力し、関数の先頭でブレイクした状態で、Visual Studioを起動します。デバッグ作業には、ステップ実行、変数ウオッチなど、Visual Studioの全てのデバッグ機能を使用できます。

↑テストケース(1,1,100)を指定してデバッグをスタート
↓そのテストケースを対象関数に入力し、関数の先頭でブレイクした状態で、Visual Studioを起動

テストレポーター

各種テスト実行環境から出力された情報から 単体テスト結果を自動レポート

テストレポーターは、上のテストランチャーから出力された実行ログから、入出力テスト結果、期待値との合否判定、C0/C1カバレッジ計測結果を抽出し、自動レポートします。結果情報は、HTML, SQLDB, XML, テキスト形式などに変換可能で、外部の構成管理ツールへ容易に取り込むことができます。

カバレッジ出力


関数・テスト結果一覧



管理者向け テスト結果集中管理機能

テストレポーターには、テスト管理者向けに、プロジェクト全体、各テスト実施者の進捗、テスト結果を集中管理する機能が搭載されています。共有ファイルサーバーを使用し、複数の担当者が作成した情報を1箇所で集約し、プロジェクト全体の管理業務をサポートすることが可能です。全てのクライアントでの単体テスト作業状況をリアルタイムに把握することが可能です。


従来製品カバレッジマスターwinAMSとの比較、テストデータ連携

カバレッジマスターwinAMSとのコンセプト、機能の違いについて

ガイオの2つの単体テストツールの比較表を下に示します。両者とも組込み系ソフトの単体テストツールとしては共通ですが、ツールとしての狙い、コンセプトや、利用ターゲットが異なります。また、ユニットマスターに含まれる単体テストデータを設計するための「テストデータデザイナー」については、カバレッジマスターとの連携使用が可能です。


カバレッジマスターwinAMS (製品情報

ユニットマスター

〜 組込み向け単体テストツール 〜

〜 大規模開発、組織運用対応単体テストツール 〜

●単体テスト作業の効率化を目指すツール

●単体テストをプロセスとして組織的に運用するためのツール

●組込みソフト開発者自身は使用することを想定

●テスト担当者などソフト開発者以外でも容易に使用可能

●「実機コード」を使用した制御ソフトがメインターゲット

●カーナビ、組込みIT系製品などアプリ層がメインターゲット

●単体テストデータは仕様書から別途設計する必要あり
(※対象ソースのリバース解析により、カバレッジ取得を目的としたテストデータ作成機能あり)

●「要素分析」による、作業者のスキルに依存しない単体テストデータ設計方法を機能化

●自動車を中心に機能安全規格ISO-26262に要求される検証が可能 (※自動車機能安全ではターゲットコードでの検証が要求事項とされている)

●多数の開発者が関わる開発向けの単体テストを管理
●WindowsCE、Linux など多数のOSプラットフォームに対応可能

メインターゲット
制御系ソフトを始めとする、マイコン実コードでの動作を重視する組込み開発向け

メインターゲット
カーナビ、組込みITS系製品など、マイコンデバイスを意識しないアプリケーション層開発向け

ユニットマスターの「テストデータデザイナー」を連携使用可能→

単体テスト設計の考え方は制御系もITS系も同じであるため、「テストデータデザイナー」の単体テスト設計機能は、カバレッジマスターと連携使用が可能。(下記参照)


稼働環境

稼働OS: Windows XP, Windows Vista, Windows 7 (Windows 95/98/Me/NT/2000 はサポートしておりません)
快適に作業するための推奨スペック: Pentium 2GHz以上 512MB以上のメモリ (OSにより必要メモリ量は変動します)

別途必要な開発環境: 
Microsoft Visual C++ 2008 Professional Edition または Microsoft Visual C++ 2005 Professional Edition
(※Microsoft Visual C++ 2010 Professional Edition は現在未対応、対応予定)

価格

テストデータデザイナー: 80万円/1ユーザー フローティングライセンス

テストランチャー: 50万円/1ユーザー フローティングライセンス
  ※初版はWindowsアプリ向けVisualStudioに対応
  ※他の環境での実行機能対応については計画中

テストレポーター: 50万円/1ユーザー フローティングライセンス

※フローティングライセンスのみの販売となります。ノードロックライセンスはございません。
※フローティングライセンスの運用には、ライセンス管理PC(サーバー)が必要です。
※掲載の価格情報は、予告無く変更されることがあります。

参考資料(GAIO CLUB)