FA・産業機器ソフトウェア開発で「C/C++test」が選ばれるポイント

IEC 61508およびISO 26262、IEC 62304に準拠、効率的な運用を補助する各機能を搭載
FA・産業機器を海外での製品販売するにあたり、ソフトウェア品質に関わる国際規格への準拠に適用を求められます。機能安全にかかわるソフトウェア開発の要件が各種規定があり、ツールが開発プロジェクトで使用するのに妥当なものであるかを検証するよう求めています。この検証をユーザーが行うとすると、ツールの使用実績や実行結果などのドキュメントを用意し、第三者に検証を依頼する必要があり、手間や費用がかかります。「C/C++test」は、規格に準拠したソフトウェア開発を支援するさまざまな機能を備えたテストツールです。ユーザーによるツール認定の時間や負荷を軽減することができます。
C/C++testは、静的解析(コーディング規約チェック、フロー解析)と単体テストが、同一ツールでカバーできるため、機能別に複数のツールを導入する必要がありません。 C/C++testは、さまざまな組み込みソフトウェアのクロス開発環境をサポートしています。ホストマシン(開発用マシン)上でのフロー解析はもちろんのこと、シミュレーターや実機(ターゲット機)上で単体テストを実行することが可能です。 それぞれのポイントごとにC/C++testを利用するメリットをご紹介します。
機能安全規格:IEC 61508およびISO 26262、IEC 62304ツール認証取得済み
コーディングガイドラインの準拠、機能安全規格に準拠したテストツール
C/C++testは、国際的な第三者認証機関であるTÜV SÜD社によりIEC 61508-3:2010を満足するT2クラスのソフトウェアサポートツールとして、およびIEC 61508から派生した自動車分野の安全規格であるISO 26262-8:2018を満足するTCL3のソフトウェアツールとして認証されています。また、IEC 61508から派生した医療機器分野の安全規格であるIEC 62304:2006+AMD1:2015を満足するツールとして認証されています。
C/C++testは、機能安全規格に準拠したソフトウェア開発を支援するさまざまな機能を備えており、ユーザーによるツール認定の時間や負荷を軽減することができます。

※認証取得を目的としてご利用になる場合は、お問い合わせください。
C/C++testの導入ユーザーの方は、IEC 61508の認証が必要な情報が提供される「Functional Safety Distribution Package」を入手することができます。
※ソフトウェアの検証をしなくて済むということではありません。
- 機能安全に敏感なソフトウェアを操作するために用意されるプラットフォーム、環境、および機能
- 機能安全に関連する、既知の未解決の結果と回避策/ソリューション
- 機能安全に敏感なソフトウェアをテストするための推奨される構成とカスタマイズオプション
※ソフトウェアの検証をしなくて済むということではありません。
多彩な静的解析用テストコンフィギュレーションを搭載
C/C++testは、業界団体の推奨や機能安全規格などのコーディング標準に適合したルールを集めたテストコンフィギュレーションを多数搭載しています。《機能安全規格準拠に役立つルールセット》
- HISソースコードメトリクス チェックルール
- MISRA C:1998 、MISRA C:2004、MISRA C++:2008、MISRA C:2023 (MISRA C:2012)、MISRA C++:2023 規約チェックルール
- FDA C/C++(米国食品医薬品局)に関するルール
静的解析・単体テストを1つのツールで!C言語/C++言語対応のオールインワンテストツール
C/C++testは、静的解析、単体テスト、カバレッジの計測、実行時メモリエラー検出、効率的な運用や規格順守を補助する機能などを搭載したC言語/C++言語対応のオールインワンテストツールです。
組み込みおよびクロスプラットフォーム開発では、ホストベースまたはターゲットベースの両方で静的解析と動的解析を利用できます。
- 静的解析 - コードの静的な解析、データフロー・制御フロー静的解析、メトリクス解析
- 単体テスト – テストドライバ・テストケース・スタブ作成、実行、最適化、保守
- 実行時エラー検出 – アプリケーション実行時のメモリアクセス、メモリリーク、メモリ破壊チェックなど
静的解析:バグの作り込みを抑制、ソースコードの可読性と保守性を強化
C/C++testは、コーディング規約チェック機能、およびプログラムのあらゆるパスをシミュレートする静的フロー解析機能でバグを早期に発見します。複雑度が高くバグが入り込みやすいコードを検出できます。早期にリファクタリングすることで、バグを未然に防止とテストしやすいソースコードの実装が可能です。- コーディング規約チェック機能は、ルール違反を発見して報告します。チェックするコーディングルールは変数の宣言に関するものや、書式の規則、コーディング規約、命名規則など、さまざまな規約に対応しています。チームで決めたルールのみを選択してチェックできます。
- フロー解析機能は、問題が発生するソースコード上の実行フローを発見して報告します。例えば、メモリリークや未初期化変数の参照などの致命的な問題を検出し、問題に至った完全な実行パスおよび問題が出現する正確なコード行を報告します。 メモリリークや未初期化変数の参照などフロー解析の技法を使わないと正確なチェックできない項目など、規格準拠を支援します。
- メトリクス計測は、オブジェクト間の結合や継承の深さなど、コードの保守性や再利用性の指標となるメトリクスを計測し、一覧データとして確認が行えます。 サイクロマチック複雑度やエッセンシャルサイクロマチック複雑度、その他のコードメトリクスを計測して出力することもできます。
単体テスト:テストドライバー・スタブ・テストケースの生成でテスト工数を削減
単体テストを実施するには、テスト仕様を策定し、テストケースを実装する必要があります。一般的にはテストケースの実装はソースコードを作成することになり、テスト対象のコードの数倍の量になることもあります。
C/C++testは、テストケースを作成、管理するのに便利な機能を提供します。GUI操作のみで「テストケース」の作成や「スタブ」の生成、さらにスタブの複雑な振る舞いの設定も可能です。 テストケース、スタブを作成するための工数およびこれらを管理、メンテナンスするための工数を大幅に削減します。また、外部テストデータの取り込みや、既存のテスト資産の再利用が可能です。
C/C++testは、テストケースを作成、管理するのに便利な機能を提供します。GUI操作のみで「テストケース」の作成や「スタブ」の生成、さらにスタブの複雑な振る舞いの設定も可能です。 テストケース、スタブを作成するための工数およびこれらを管理、メンテナンスするための工数を大幅に削減します。また、外部テストデータの取り込みや、既存のテスト資産の再利用が可能です。
単体テストの実行をサポートするテストエディター画面
カバレッジ計測:単体テストの網羅性を視覚的にレポート
C/C++testは、単体テストを実行するのと同時にコードカバレッジを計測します。C/C++testがレポートするテストカバレッジには、行カバレッジ、ステートメントカバレッジ、判断文カバレッジ、条件カバレッジといった、C0、C1、C2に相当するコードカバレッジや、MC/DCカバレッジ、機能安全規格対応で要求されるコールカバレッジなどが含まれています。これらの複数のカバレッジを同時に計測することができます。 画面上で実行/未実行の箇所を分かりやすくハイライト表示するため、視覚的に確認することができます。
<C/C++testがレポートするカバレッジ>
- ステートメントカバレッジ (C0:命令網羅率)
- 判断文カバレッジ (C1:分岐網羅率)
- 単純条件カバレッジ (C2:条件網羅率)
- MC/DC (Modified Condition/Decision Coverage)
- 関数カバレッジ
- コールカバレッジ
- 行カバレッジ
- 基本ブロックカバレッジ
- パスカバレッジ
行カバレッジの計測結果の例
実行時エラー検出:アプリケーション実行時に、メモリ関連エラーの検出とカバレッジを計測
C/C++testは、システムテストを実施しながらカバレッジを計測することで、テストの抜け漏れを効率的に確認できます。不正メモリアクセス・メモリ破壊・メモリリーク・未初期化メモリの参照・NULLポインター参照などを検出し、スタックトレースと併せて問題をレポートします。また、システムテストに限らず、他のユニットテストフレームワークや独自のユニットテストフレームワークでのテスト実行時のカバレッジを計測できます。
アプリケーション実行時のカバレッジ計測イメージ
実機やシミュレーターで、単体テスト・カバレッジ計測が可能
さまざまな組み込みソフトウェアのクロス開発環境をサポート
C/C++testをインストールしたホストマシンだけでなく、実機(ターゲット機)や開発環境などに付属するシミュレーター上でも、単体テスト、カバレッジ計測(単体テスト時とアプリケーション実行時)および実行時メモリエラー検出を実行できます。C/C++testは、さまざまな組み込みソフトウェアのクロス開発環境をサポートしています。
ホスト環境でクロスコンパイルして生成したテスト用モジュールを実機(ターゲット機)やマイコンベンダーが提供するシミュレータなどで実行し、結果をホスト環境で取り込むといった一連の流れをワンクリックで自動実行します。
サポートしている対応開発環境、クロスコンパイラの詳細については、稼動環境にて、ご確認ください。
ホスト環境でクロスコンパイルして生成したテスト用モジュールを実機(ターゲット機)やマイコンベンダーが提供するシミュレータなどで実行し、結果をホスト環境で取り込むといった一連の流れをワンクリックで自動実行します。
サポートしている対応開発環境、クロスコンパイラの詳細については、稼動環境にて、ご確認ください。
クロス開発環境でのC/C++testの活用
豊富な情報を見やすいレイアウトでレポート出力
テスト結果を、HTML・PDF・XML・CSV・SARIF形式でレポート出力できます。コーディング規約が、守られていることを証明する場合などにレポートを利用できます。テスト実行に関する詳細な追加情報を出力することも可能です。
品質状況をリアルタイムに表示、レポートを自動生成
C/C++testは、MISRA、AUTOSAR、CERT、CWEなどの遵守状況をリアルタイムに表示するダッシュボード機能を提供します。また、コーディングガイドラインに則った遵守サマリーレポートや逸脱のレポートを自動生成します。 コーディングガイドラインの遵守状況の説明責任を果たすことが容易になるだけでなく、未遵守箇所を早期に特定し必要な措置を講ずることにより、欠陥のあるソフトウェアに関連するビジネスリスクを排除することが可能になります。
Parasoft DTPと連携したCI環境イメージ図
導入後も安心してお使いいただけるサポート体制
C/C++testは、導入時のサポートから、運用支援、問題発生時のQ&A対応など導入後も安心してお使いいただけるサポート体制でお客様をバックアップいたします。
C/C++testを活用することで、多くの要求に対してテストやエビデンス生成作業を簡略化することが可能です。詳細については、お問い合わせください。
PICK UP
イベント・セミナー
ニュース・キャンペーン
静的解析ツール・単体テストツール C/C++testに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- parasoft-info@techmatrix.co.jp