ホーム > 組込みソフト開発・検証ツール > カバレッジマスターwinAMS/ゼネラル

カバレッジマスターwinAMS C/C++ モジュール単体テスト自動化ツール

組込みマイコン完全対応!C/C++ 組込みソフト検証用 モジュール単体テスト自動化ツール
マイコンに最も忠実な 「実機コードベース」の単体テストを実行
C0、C1、MC/DCカバレッジに加え 結合フェーズの関数/コールカバレッジ計測をサポート
ホワイト/ブラックボックステストデータを効率的に作成する「テストデータ分析エディタ」を追加
第三者認証機関TUV SUDによる自動車機能安全ISO26262/IEC61508 ツール認証を取得済み


製品の特長

マイコンに最も忠実な 「実機コードベース」の単体テストを実行 カバレッジ計測をフルサポート

「カバレッジマスター winAMS」は、クロスコンパイラで生成した「実装マイコンコード」をそのまま使用して、マイコンシミュレータで単体テスト実行を行います。一般の単体テストツールにありがちなCソースの論理レベルでの単体テストに留まらず、組込み特有のマイコンへの実装に依存した問題点を含めた、マイコンコードに最も忠実で信頼性の高い単体テストを実施します。

コードカバレッジ計測の標準であるC0(Statement Coverage)、C1(Branch Coverage)、機能安全認証で要求されるMC/DC(Modified Condition Decision Coverage)をフルにサポートし、さらに機能安全(ISO 26262)の結合テストで要求される、関数/コール(Function/Call)カバレッジ計測もサポートしています。

自動車機能安全認証ISO26262で要求される「ターゲット環境にできる限り近いテスト」に適合

自動車機能安全規格ISO 26262では、「単体テストの環境はターゲット環境に可能な限り合わせること」。が要求されています。カバレッジマスターwinAMSは、この要求に完全にマッチしています。

(参考)原文:ISO26262-6, 9.4.6 The test environment for software unit testing shall correspond as closely as possible to the target environment.

他社の単体テストツールにありがちな、評価対象のソースコードに計測用コードやテストドライバを追加する方法の場合、テスト時のコードが製品へ実装するコードと異なってしまいます。「論理動作は同じはず」と考えがちですが、組込みの視点では、クロスコンパイラの最適化等により、生成されるコード展開が変化してしまうため、最終製品の品質を確認することにはなりません。カバレッジマスターは、「テスト対象コードに一切手を加えない」テストが可能な業界唯一のツールであり、特に安全性が要求される分野では、高い評価を頂いています。

単体テスト用のビルド環境は不要、製品開発のクロス開発環境をそのまま適用可能

カバレッジマスターwinAMSでは、テストドライバなど、テスト用ソースの追加修正は一切必要なく、製品へ実装する実機コードをそのまま使用して、中に含まれる単数の単体評価が可能なツールです。製品開発と共通のクロス開発環境を単体テストに利用できるため、テスト専用のソース管理や他の環境でのビルドは必要ありません。そのため、ソース管理が容易で、テスト環境の立ち上げも短期間で実施可能です。

ISO 26262/IEC 61508機能安全ツール認証取得

「カバレッジマスターwinAMS/ゼネラル」は、「CasePlayer2」と共に、ISO26262のメタ規格であるIEC61508への対応を加えて、機能安全ツール認証をテュフズードより取得済みです。機能安全のテストエビデンスを要求される様々な業種にて利用可能なツールとして認められています。

link プレスリリース(2013/7/5):自動車機能安全ISO26262 ツール認証を再取得に関するお知らせ


クリックで拡大


コードカバレッジ測定機能

C0/C1カバレッジを自動計測(標準機能)

作成したテストケース(CSVファイル)により入出力テストを行うことで、コードカバレッジ(C0、C1カバレッジ)結果を自動レポートします。テストデータとソース上の実行パスの対応を表示するビューを搭載しており、テスト結果の解析に利用できます。

 C0: ステートメントカバレッジ - Cソース行を網羅して実行したかを示す指標
 C1: ブランチカバレッジ - if文、switch文など条件分岐を網羅して実行したかを示す指標


MC/DCカバレッジ自動計測機能(オプション機能)

MC/DCカバレッジの計測機能は、オプションで提供されています。カバレッジマスターでは、C0/C1カバレッジは、実機に組込むコードをそのまま使用して計測可能ですが、MC/DC計測のためには、条件式に含まれる複合条件を分解して実行する必要があるため、条件式を分解するためのフックコードを自動挿入して、テスト実行します。このMC/DC計測時には、実機に組み込むコードと異なってしまうため、実機に組込むコードも並行して実行し、両者の期待値が一致することを確認して、フックコードの妥当性を検証する仕組みとしています。

MC/DC: 条件式に含まれる各複合条件の論理(TRUE/FALSE)を網羅して実行したかを示す指標

※右の例では、2つめのif文の複合条件式の「gb_c>30」のFALSEケースがテストされていないことを示しています。C1のカバレッジ基準ではOKとなりますが、MC/DC基準では、NGとなります。

関数の要求仕様を基にテストケースを設計する「テストデータ分析エディタ」(標準機能)

単体テスト受託サービスの手法、ノウハウをツールに実装

カバレッジマスターには、要求仕様を基にしたテストケースを効率的に作成するためのエディタ「テストデータ分析エディタ」が搭載されています。これは、ガイオが単体テスト受託サービスを通じて確立した単体テストデータ設計手法「テストデータ分析手法」を使用して、関数の要求仕様からのテストデータ設計を効率的に行う機能です。

境界値、最大/最小値、同値分割による代表値などを漏れなく抽出

テストデータ分析エディタには、単体テストのテストケース導出手法である、境界値、最大/最小値、同値分割による代表値等の、関数に与えるテストデータを表形式で管理する機能がサポートされています。要求仕様からテストケースを抽出する作業において、抽出するデータの粒度のばらつきやテスト項目の抜け漏れの発生を防ぎ、テスト担当者のスキルに依存しない標準化されたテストデータ設計を可能にします。

コード解析によるコード構造と要求仕様を照らし合わせながら効率的にテストケースを設計

テストデータ分析エディタには、CasePlayer2のコード解析に基づくコードの構造が自動的に表示されます。また、設定により、コードから抽出した境界条件、最大/最小値も自動入力できます。これら自動生成されたテストデータと、要求仕様書とを照らし合わせながらテスト設計を行う事で、要求仕様確認であるブラックボックステストと、コードの構造確認であるホワイトボックステストを効率的に進めることが出来ます。
※本テストデータ設計機能は、標準でサポートされます。

テスト実行工程をスクリプトで自動化する CLI機能(オプション)

ALM系ツール、テスト駆動ツールからのテスト実行を可能に

テストの手順を記載したスクリプト(Windows標準のバッチコマンド )を使用して、カバレッジマスターを制御、操作するためのCLI(Command Line Interface)機能がサポートされています。

例えば、自動車機能安全規格(ISO26262)では、要求仕様項目とテスト項目のトレーサビリティーを管理することが求められており、各種テスト管理ツールやALM(Application Lifecycle Management)ツールにより、単体テスト管理、実行を行う事が必要となっています。CLI機能により、カバレッジマスターの操作のほぼ全てをスクリプトで行う事が可能にとなり、テスト管理、実行を容易に行う事ができるようになります。

レグレッションテストなどの繰り返しテストを効率化

ソースコードの修正を追加したリビジョンアップ時に、全体を通した単体テストにより、変更箇所の影響を確認する「レグレッションテスト」が必要になります。また、組込みソフト開発一般の流用開発、自動車分野でのAUTOSARなどのプラットフォーム化により、同一ソースコードを多品種(車種)に実装することが多くなっています。同一のC/C++ソースコードを異なるマイコンへ実装する場合や、品種(仕向け)展開により、一部を変更したコードを製品に搭載する場合など、製品リリース毎に繰り返しテストを行うことが多くなっています。

CLI機能を使用することで、バッチコマンドによりクロスコンパイラのMakefile実行を含めたテストの工程を、1つのバッチファイルで記述できます。同じテストの繰り返しを、人のUI操作を介在すること無く、完全自動化します。

※本CLI機能は、追加オプションです。

結合テストフェーズ向けカバレッジ計測機能(オプション)

「関数カバレッジ、コールカバレッジ」計測機能

カバレッジマスターは、V3.6にて結合レベルでの構造カバレッジ計測機能をサポートしました。自動車機能安全規格ISO26262の結合テスト(Part.6-10)が要求する、指定したソースファイル内の関数が網羅されて実行されたかを示す「関数カバレッジ」、指定した関数内のサブ関数コールが網羅されてコールされたかを示す「コールカバレッジ」の計測が可能です。

【関数カバレッジ】
機能コンポーネントの最上位関数にテストケースを与えて関数を駆動することで、機能コンポーネントを構成するサブ関数を網羅して実行したかを計測します。

 

【コールカバレッジ】
テスト対象の関数にテストケースを与えて関数を駆動することで、その関数内のサブ関数コール位置を網羅して実行(関数コール)したかを計測します。


計測結果はHTML、CSVファイルで出力可能

計測結果は以下の様なフォーマットで出力されます。CSVファイルへの出力も可能です。


構造カバレッジ(C1、MC/DC)計測のためのテストケース自動生成

カバレッジマスターには、ソース解析ツール「CasePlayer2」との連携により、if、switch、for、whileなど、条件分岐の構造を解析することで、C1、MC/DCを100%網羅して実行するためのテストケースを自動生成する機能が備わっています。

データ作成ビューには、検証対象の関数に含まれる条件文(if文、switch文など)がリストアップされます。各条件をクリックすると、その条件文に関わる変数を自動検索し、さらに、条件文に設定された境界値の情報から、カバレッジに必要なデータを自動生成します。

 

機能安全ISO26262/IEC61508への対応とツール認証取得について

第三者認証機関TUV SUDより 機能安全規格IEC61508、自動車機能安全規格ISO26262のツール認証を取得済み

「カバレッジマスターwinAMS/ゼネラル」は、「CasePlayer2」と共に、自動車機能安全規格ISO26262と、そのメタ規格であるIEC61508に対応したツール認証を取得済みです。機能安全のテストエビデンスを要求される様々な業種にて利用可能なツールとして認められています。

本ツール認証は、自動車機能安全規格ISO26262においては、最も煩雑なツール認定作業が必要となるTCL3 (Tool Confidence Level 3)に設定した場合にも適用されます。従って、本ツールのユーザーは、TCLによらずツール認定に関わる作業を省略することが可能です。また、静的解析およびユニットテストフェーズにおいて、全ての安全度水準(ASIL)に対応したツールであることがテュフズードにより認められています。


単体テスト効率化機能

プログラム解析ツール CasePlayer2 と連携して、ソース参照・解析作業を効率化

CasePlayer2の生成するフローチャートやモジュール構造図(関数呼び出し構造図)とリンクして、単体テストのためのソースコード解析作業に利用することもできます。

評価対象の関数が使用する外部変数の自動検索機能によりテスト条件設定を効率化

ソース解析ツール「CasePlayer2」との連携により、検証対象の関数が使用する外部変数を自動検索することができます。従来必要だったソースコードをトレースしながら、入力条件となる変数を探す作業を短縮することができます。また、変数指定忘れ、漏れと言ったヒューマンエラーを防ぐことができます。

加速オプション : 対象関数を選択するだけで テストデータ作成から実行、構造カバレッジ計測を完全自動化

数百、数千に渡る膨大な数の関数毎にテストファイル(CSV)を作成する作業は、単体テスト工程で大きな工数となります。「加速オプション」(追加オプション機能)を使用すると、関数の入力/出力変数を指定したテストファイルのフォーマットを、完全に自動作成可能です。大きな工数削減が期待できます。

さらに、「加速オプション」には、テスト対象関数をリストから選択するだけで、C1、MC/DC構造カバレッジ計測までの操作を完全に自動化する機能がサポートされています。ソースコードの静的解析により テストケースを自動生成し、 構造カバレッジ計測の作業を、最大限に加速します。

<自動化される操作>
 ■対象関数の入出力変数の選択
 ■C1、MC/DC構造カバレッジ計測のためのテストケース生成
 ■テストデータCSVファイルの生成
 ■単体テスト実行
 ■テスト結果(入出力テスト結果、カバレッジレポート)の出力


C++コードの単体テストに対応 (オプション機能)

C++コードの単体テストに対応しています。クラスの定義を元に、テスト時にクラスオブジェクトを指定メモリエリアに自動生成したり、コードに存在する静的オブジェクトを指定したりしながら、クラス内の関数(メソッド)を単体テストすることができます。クラス内に定義されたメソッドに対して、カバレッジ計測を行うことが可能です。

 

カバレッジマスター ゼネラル

組込みマイコンに依存しない Cソースコードレベル単体テストツールパッケージ

組込みマイコンに依存しないアプリケーションソフト向け、単体テストツールパッケージです。単体テスト実行のための汎用ANSI-C準拠コンパイラとテスト実行シミュレータを搭載しています。単体テスト実行、C1、MC/DCカバレッジテストデータ作成など、単体テストの機能は、「カバレッジマスターwinAMS」と同一です。

 

対応MPU一覧

国内外半導体メーカー製マイコンを数多くサポートしています。

link対応MPUについて : 対応表より、「カバレッジマスター」の項目をご覧下さい。

 

稼働環境

 

参考リンク

参考資料(GAIO CLUB)