組込みソフト単体テスト、カバレッジ計測ツールのデファクトスタンダード

カバレッジマスター winAMS

カバレッジマスター winAMS

組込みソフト単体テスト、カバレッジ計測ツールのデファクトスタンダード

機能安全規格ISO26262 / IEC61508に準拠し、ステートメント、ブランチ、MC/DC、関数コールなどのコードカバレッジ計測可能な、組込みソフト向けC/C++ソフトウエア単体テストツールです。マイコンシミュレータを内蔵し、コンパイルされたオブジェクトコードを実行して単体テストを行います。一般の単体テストツールにありがちなCソースの論理レベルでの単体テストに留まらず、組込み特有のマイコンへの実装に依存した問題点を含めた、マイコンコードに最も忠実で信頼性の高い単体テストを実施します。

マイコンに最も忠実な 「実機コードベース」の単体テストを実行

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


C0、C1、MC/DCカバレッジに加え 結合フェーズの関数/コールカバレッジ計測をフルサポート

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


自動車機能安全ISO26262/IEC61508 ツール認証を取得済み

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


ホワイト/ブラックボックステストデータを効率的に作成する「テストデータ分析エディタ」を搭載

カバレッジマスターには、要求仕様を基にしたテストケースを効率的に作成するためのエディタ「テストデータ分析エディタ」が搭載されています。これは、ガイオが単体テスト受託サービスを通じて確立した単体テストデータ設計手法「テストデータ分析手法」を使用して、関数の要求仕様からのテストデータ設計を効率的に行う機能です。
自動生成されたテストデータと、要求仕様書とを照らし合わせながらテスト設計を行う事で、要求仕様確認であるブラックボックステストと、コードの構造確認であるホワイトボックステストを効率的に進めることが出来ます。


実機コードとCSVテストケースを使用したテストの流れ

クロスコンパイラにより生成された実機コードの実行と、単体テストのテストケースの作成の流れを示しています。

単体テストの達成度を示す「コードカバレッジ測定」

テスト対象の関数ごとに作成するテストデータ(CSVファイル)により、関数のテスト網羅度を示す指標、コードカバレッジを自動計測します。

●C0: ステートメントカバレッジ
●C1: ブランチカバレッジ
●MC/DC
●関数カバレッジ
●コールカバレッジ


要求仕様に基づいたテストケースを設計する「テストデータ分析エディタ」

カバレッジマスターには、要求仕様を基にしたテストケースを効率的に作成するためのエディタ「テストデータ分析エディタ」が搭載されています。単体テストのテストケース導出手法である、境界値、最大/最小値、同値分割による代表値等の関数に与えるテストデータを、表形式で管理する機能がサポートされています。
テスト対象の関数を指定すると、コード解析に基づくコードの構造が自動的に表示され、コードから抽出した境界条件値、最大/最小値が自動入力されます。
これら自動生成されたテストデータと、要求仕様書とを照らし合わせながらテスト設計を行う事で、要求仕様確認であるブラックボックステストと、コードの構造確認であるホワイトボックステストを効率的に進めることが出来ます。


テスト実行工程をスクリプトで自動化する CLI機能

テストの手順を記載したスクリプト(Windows標準のバッチコマンド )を使用して、カバレッジマスターを制御、操作するためのCLI(Command Line Interface)機能がサポートされています。カバレッジマスターの操作のほぼ全てをスクリプトで行う事が可能にとなり、テスト管理、実行を容易に行う事ができるようになります。
ソースコードの修正を追加したリビジョンアップ時に、全体を通した単体テストにより、変更箇所の影響を確認する「レグレッションテスト」が必要になります。また、組込みソフト開発一般の流用開発、自動車分野でのAUTOSARなどのプラットフォーム化により、同一ソースコードを多品種(車種)に実装することが多くなっています。CLI機能を使用することで、バッチコマンドによりクロスコンパイラのMakefile実行を含めたテストの工程を、1つのバッチファイルで記述できます。同じテストの繰り返しを、人のUI操作を介在すること無く、完全自動化します。


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

CasePlayer2の生成するフローチャートやモジュール構造図(関数呼び出し構造図)とリンクして、単体テストのためのソースコード解析作業に利用することができます。検証対象の関数が使用する外部変数の自動検索機能により、入力条件となる変数の設定作業を効率化し、また変数指定忘れ、漏れと言ったヒューマンエラーを防ぐことができます。


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

結合レベルでの構造カバレッジ計測機能をサポートしています。自動車機能安全規格ISO26262の結合テスト(Part.6-10)が要求する、指定したソースファイル内の関数が網羅されて実行されたかを示す「関数カバレッジ」、指定した関数内のサブ関数コールが網羅されてコールされたかを示す「コールカバレッジ」の計測が可能です。
【関数カバレッジ】
機能コンポーネントの最上位関数にテストケースを与えて関数を駆動することで、機能コンポーネントを構成するサブ関数を網羅して実行したかを計測します。
【コールカバレッジ】
テスト対象の関数にテストケースを与えて関数を駆動することで、その関数内のサブ関数コール位置を網羅して実行(関数コール)したかを計測します。


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

カバレッジマスターには、ソース解析ツール「CasePlayer2」との連携により、if、switch、for、whileなど、条件分岐の構造を解析することで、C1、MC/DCを100%網羅して実行するためのテストケースを自動生成する機能が備わっています。
データ作成ビューには、検証対象の関数に含まれる条件文(if文、switch文など)がリストアップされます。各条件をクリックすると、その条件文に関わる変数を自動検索し、さらに、条件文に設定された境界値の情報から、カバレッジに必要なデータを自動生成します。



各種機能

コードカバレッジ計測ステートメント(C0)、ブランチ(C1)、MC/DC、関数、コール
マイコンシミュレータAltera、ARM、Cypress、Infineon、JRC、Melexis、NXP、Panasonic、Renesas、Sony、ST Microelectronics、Texas Instruments、Toshiba など多数の組み込みマイコンをサポート
テストデータ自動生成分岐条件解析に基づいたC0、MC/DCカバレッジデータ
コマンドライン実行バッチファイルによるテスト実行機能(CLI = Command Line Interface)
機能安全認証ISO26262(TCL1~TCL3)、IEC61508 に対応したツール認証を取得、安全マニュアル(リファレンスワークフロー)をユーザーへ発行

関連資料