ホーム > 製品・サービス情報 > 組込み開発ツール > ユニットマスター
「ユニットマスター」は、単体テストを開発プロセスに取り入れ、組織的運用を可能にする単体テスト標準化ツールです。
テスト担当者のスキルに依存しがちな単体テスト設計を標準化するために、長年の単体テスト代行サービスで培った「要素分析」法をテストデータ設計機能に取り入れています。簡単な設計ルールの運用だけで、テスト担当者のスキルに依存しない単体テスト設計が可能です。
テスト実行環境には、Windows開発環境の標準であるMicrosoft Visual C++を使用しています。単体テストに必要なテストドライバの生成、コンパイル、実行、テスト結果の出力まで、ボタン1つで自動実行されます。対象関数の問題点の分析が必要な際には、テスト入力データを指定するだけで、Visual C++のデバッガと連携したソースコードデバッグが可能です。
「ユニットマスター」は、単体テストを開発プロセスとして標準化するための機能を統合化し、大規模開発での運用も可能とするテストスイートです。単体テスト設計、テスト実行、結果・進捗閲覧の3つの基本機能から構成されています。
関数の品質を同じ指標で判断するためには、テスト担当者の判断やスキルに依存しない、標準化されたテスト指針に基づいたテスト設計が必要です。ユニットマスターには、客観的に単体テストデータの観点や、テストの品質を判断可能な「要素分析」の手法を用いて、不具合検出を目的とした単体テストデータ設計機能が備わっています。
「要素分析」の手法についてはこちらのページへ(GAIO CLUB ONLINE)
「テストランチャー」は、テストドライバやテストパターンを埋め込んだテスト用ソースコードを組込みプラットフォーム非依存のANSI-C、汎用C++ソースとして自動生成します。Visual C++を使用して、テストコードのコンパイル、実行、結果の出力まで、ボタン1つで自動化されます。
テスト実行から得られた、期待値評価、カバレッジ計測、テストベクタ数などのテスト結果は、テスト担当者向けに、実行クライアントPCの専用ビューで確認できます。さらに、リレーショナルデータベースのサポートにより、テスト結果、進捗の集中管理や、大規模プロジェクトでの使用、ツール運用の効率化など、組織的運用を可能にします。

■テストデータデザイナー |
■テストランチャー |
■テストレポーター |
●不具合検出を目的とした単体テスト設計 |
●Windows開発環境の標準であるMicrosoft Visual C++をテスト実行環境に使用 |
●出力値/期待値の自動判定 |
テスト設計時には、ソースコード、モジュール入出力表(要素分析表)、スタブ設計、組合せテストケースのウインドウを一覧しながら、効率的に単体テスト設計が行えます。この設計機能は、「テストデータデザイナー」で実現されます。

「テストランチャー」による単体テスト実行後、出力されるテスト結果の閲覧時には、入出力結果、期待値照合、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の全てのデバッグ機能を使用できます。

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

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

カバレッジ出力

関数・テスト結果一覧

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

ガイオの2つの単体テストツールの比較表を下に示します。両者とも組込み系ソフトの単体テストツールとしては共通ですが、ツールとしての狙い、コンセプトや、利用ターゲットが異なります。また、ユニットマスターに含まれる単体テストデータを設計するための「テストデータデザイナー」については、カバレッジマスターとの連携使用が可能です。
カバレッジマスターwinAMS (製品情報) |
ユニットマスター |
〜 組込み向け単体テストツール 〜 |
〜 大規模開発、組織運用対応単体テストツール 〜 |
●単体テスト作業の効率化を目指すツール |
●単体テストをプロセスとして組織的に運用するためのツール |
●組込みソフト開発者自身は使用することを想定 |
●テスト担当者などソフト開発者以外でも容易に使用可能 |
●「実機コード」を使用した制御ソフトがメインターゲット |
●カーナビ、組込みIT系製品などアプリ層がメインターゲット |
●単体テストデータは仕様書から別途設計する必要あり |
●「要素分析」による、作業者のスキルに依存しない単体テストデータ設計方法を機能化 |
●自動車を中心に機能安全規格ISO-26262に要求される検証が可能 (※自動車機能安全ではターゲットコードでの検証が要求事項とされている) |
●多数の開発者が関わる開発向けの単体テストを管理 |
メインターゲット |
メインターゲット: |
ユニットマスターの「テストデータデザイナー」を連携使用可能→ |
単体テスト設計の考え方は制御系も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(サーバー)が必要です。
※掲載の価格情報は、予告無く変更されることがあります。
GC ONLINE 特集 : 要素分析による単体テストの標準化と定着運用 (Vol.01 2010/04/01号)
単体テスト自動化システムの運用によるソフト品質改善 パイオニア株式会社に見る開発工程での単体テスト実施事例
(GAIO CLUB 2008/2月号より抜粋)
組込みソフト品質を改善する基本検証「単体テスト」の重要性と C1カバレッジに対応した「カバレッジマスターwinAMS V2.2」
(GAIO CLUB 2006/12月号より抜粋)
潜在化するバグを未然に防ぐ「モジュール単体テスト」とテストデータ作成機能を追加した「カバレッジマスター Ver.2」
(GAIO CLUB 2006/2月号より抜粋)
「フェリカネットワークス モジュール単体テスト」についての事例紹介!
(GAIO CLUB 2005/12月号より抜粋)