車載ソフトウェア開発で「C/C++test」が選ばれる3つのポイント

車載ソフトウェア開発

自動車業界の規格・ガイドラインへの対応を効率化するさまざまな機能

複雑かつ膨大な車載ソフトウェア開発において、その安全性やセキュリティを担保するには多くの作業が必要となります。
C/C++testは、車載ソフトウェア開発で求められるISO 26262、ISO/SAE 21434の規格対応や、MISRA、CERT、AUTOSARのコーディング規約対応などを広くサポートし、車載ソフトウェア開発の品質向上と効率化を実現します。

また、CI/CDパイプラインに統合することによるテスト自動化や、ダッシュボード機能による品質状況の可視化・レポート共有などが容易なため、開発者の負荷低減やチームでの効率的なツール運用を実現することができます。

車載ソフトウェア開発でこんなお悩みはありませんか?

コーディング規約

  • MISRA、CERT、AUTOSARなどの準拠対応に手間や時間がかかる。
  • 誤検出が多く修正作業に時間がかかる・検出できないルールがある。
  • 準拠証明のためのレポート作成を手作業で行っている。

カバレッジ計測

  • MC/DCカバレッジなどを満たす単体テストを効率的に行いたい。
  • カバレッジを満たすためのテストパターンの作成に苦労している。
  • ISO 26262の規格対応にあたり、認証取得済みのツールを使いたい。

環境構築

  • ツール実行やレポート共有を手動で行っているため、チームでの円滑なツール運用ができていない。
  • CI/CDや構成管理、コンテナなどと連携した開発ワークフローの自動化ができていない。


C/C++testは、これらの課題を解決する静的解析・動的解析の機能や、ツールチェーン連携機能を搭載したオールインワンテストツールです。それぞれのポイントごとにC/C++testを利用するメリットをご紹介します。

MISRA、CERT、AUTOSARなどの準拠を効率化、準拠証明のためのレポートを自動生成

車載ソフトウェア開発で利用されるコーディング規約に広く対応

MISRA、CERT、AUTOSARなどのコーディング規約チェックを自動化します。CWE TOP 25やOWASP TOP 10など、その他のさまざまなコーディング規約にも対応しています。
 
<コーディングルール設定(抜粋)>
  • MISRA C:1998
  • MISRA C:2004
  • MISRA C++:2008
  • MISRA C:2023 (MISRA C:2012)
  • MISRA C++:2023
  • AUTOSAR C++14
  • HISソースコードメトリクスチェックルール
  • SEI CERT C
  • SEI CERT C++
  • CWE TOP 25
  • OWASP TOP10

ダッシュボード上でMISRA、CERT、AUTOSAR、CWEの準拠状況を可視化、レポートを自動生成

MISRA、CERT、AUTOSAR、CWEの準拠状況は、専用のダッシュボードで把握、管理することができます。
また、MISRAの準拠証明に必要となる4種類のレポートを自動生成し、準拠証明の作業を大幅に削減することができます。

MISRAコンプライアンスパック:ダッシュボードとレポート

社内独自のコーディング規約もチェック可能

業界標準のコーディング規約だけではなく、社内で独自に定めているコーディング規約についても、C/C++testで自動的にチェックを行うことが可能です。

独自のコーディング規約を作成する「RuleWizard」の機能により、社内のコーディング規約に合わせて、既存のコーディング規約を独自のルールに修正することや、新規にルールセットを作成することができます。

静的解析ツールC/C++test:ユーザー定義コーディングルール

ユーザー定義コーディングルール作成画面

高度な解析テクノロジー「フロー解析」を用いた静的解析

あらゆるパスをシミュレートし、関数・ファイルにまたがるバグを自動的に検出

C/C++testが選ばれる理由のひとつに、複数のファイル、関数にまたがるパスをトレースしバグや脆弱性を検出する「フロー解析」機能による高度な静的解析があります。

フロー解析はコーディング規約対応だけではなく、致命的なバグを早期に発見するうえでも有効な機能です。さまざまなバグの可能性を検出し、バグに至るまでのデータフローをレポートすることも可能です。


<フロー解析で検出可能な項目(抜粋)>
  • メモリリーク/リソースリーク
  • バッファオーバーフロー
  • NULLポインターの参照
  • 未初期化変数の参照
  • 整数オーバーフロー
  • ゼロ除算
  • 配列の境界外アクセス
  • イテレーター範囲外アクセス
  • セキュリティ脆弱性
  • デッドロック

静的解析ツールC/C++test:静的フロー解析イメージ図

静的フロー解析イメージ図

機能安全規格「ISO 26262」などの要求を満たす単体テストをサポート

車載ソフトウェア開発で求められるカバレッジ計測にも対応

C/C++testは、単体テストにおけるテストドライバーやテストケース、スタブをGUI操作で簡単に作成することができるため、開発者は効率的に単体テストを行うことができます。

さらに、テスト実行時に機能安全規格ISO 26262のASIL Dで要求される関数カバレッジ、コールカバレッジ、ブランチカバレッジ、MC/DCなどを含む9種類のカバレッジを計測することが可能です。

<C/C++testがレポートするカバレッジ>
  • ステートメントカバレッジ (C0:命令網羅率)
  • 判断文カバレッジ (C1:分岐網羅率)
  • 単純条件カバレッジ (C2:条件網羅率)
  • MC/DC (Modified Condition/Decision Coverage)
  • 関数カバレッジ
  • コールカバレッジ
  • 行カバレッジ
  • 基本ブロックカバレッジ
  • パスカバレッジ

TÜV SÜD社よりISO 26262およびIEC 61508、IEC 62304のツール認証取得済み

C/C++testは、第三者認証機関であるTÜV SÜD社よりISO 26262およびIEC 61508、IEC 62304に準拠したテストツールとして認証を取得済みです。TÜV SÜD社より認証を取得しているため、ユーザーによるツール認証のための検証依頼をする必要がなく、ツール認証の時間や費用を削減できます。

※認証取得を目的としてご利用になる場合は、お問い合わせください。

C/C++testは、TÜV SÜD社よりISO 26262およびIEC 61508、IEC 62304ツール認証取得済み

開発者のテスト作成・管理をサポートし、効率的な単体テストを実現

GUI操作でテストドライバー・テストケース・スタブを生成


C/C++testはテストケース、スタブを作成するための工数およびこれらを管理、メンテナンスするための工数を大幅に削減します。
GUI操作のみでテストケースの作成やスタブの生成、スタブの複雑な振る舞いの設定などが可能です。

また、テストケースとスタブを1つの画面でコントロールできるため、管理やメンテナンスを容易です。
外部テストデータの取り込みや、既存のテスト資産の再利用することもできます。
 

単体テストの実行をサポートするテストエディター画面

カバレッジを向上させるためのテストデータ作成を支援

ソースコードの任意の行に対するワンステップの操作で、その行のカバレッジを満たすのに必要なテストのパラメータや事前条件を把握できます。

事前条件を即座に把握できるため、ユーザーのテストに掛かる時間や労力を大幅に削減できます。

実行できていない行をエディタで確認画面

CI/CD、構成管理、コンテナなどのツールチェーンと連携した開発ワークフロー

車載ソフトウェア開発で取り組みが進むモダンな開発手法にも対応

昨今、車載ソフトウェア開発の効率化において、CI/CD、構成管理、コンテナなどのツールチェーンを組み合わせた開発ワークフローの自動化の取り組みが多くの開発現場で進められています。

ソフトウェアの品質と開発スピードの両立が求められるなかで、テストツールの運用においてもこれらのツールチェーンを組み合わせたCI/CDパイプラインに組み込んだ効率的な運用体制を整えることが重要です。

また、C/C++testで実行した静的解析、動的解析の結果は、専用のダッシュボードツール「Parasoft DTP」にて、チーム全体で簡単に共有、管理することができます。

テスト実行を自動化するCI環境を構築

C/C++testはCI/CDや構成管理などのツールチェーンを組み合わせたCI環境に組み込んで運用することができます。ソースコードのコミットから、ビルド・テスト実行、結果のレポートなどを自動化することで、開発者の負荷が少ない効率的なツール運用が可能になります。解析結果はダッシュボードでの確認や、開発者のクライアントマシン上のC/C++testに取り込んで確認することができます。

Parasoft DTPと連携したCI環境イメージ図

モダン開発ワークフローにおけるテスト自動化

C/C++testは、近年活用が進んでいるGit、Docker、VSCodeなどのツールチェーンとの連携が容易です。モダン開発ワークフローにC/C++testを組み込むことで、テストの実施漏れを防ぎ、エラーや欠陥のフィードバックサイクルを早めることができます。

C/C++testをより簡単に、かつシームレスに統合できるGitHubおよびGitLab統合におけるマニュアルとパイプライン実装サンプルがあります。プルリクエストをトリガーとした自動実行、開発者が埋め込んでしまった新たな違反のみの確認、自動品質ゲートによるマージリクエストのブロックなど、開発者がツールを意識せずに、バグをメインブランチに混入させないといった開発ワークフローを実現できます。

モダン開発ワークフローにC/C++testを組み込んだイメージ図

Dockerコンテナの活用

Dockerコンテナは、組み込みソフトウェア開発においても活用されるケースが増えてきています。C/C++testはDockerコンテナでの作業をサポートしています。

Dockerを使って開発環境を共通化するのに加え、静的解析や単体テストのテストツールもDockerコンテナに加えることで、開発者のテストツールのセットアップも簡略化することが可能です。
また、複数のプロジェクトでビルド環境が違う場合であっても、コンテナ自体が独立しているためビルド環境の要件や依存パッケージが競合しないため、1 つのCIサーバーで複数プロジェクトのCIを実現することも可能です。

「C/C++test」をDockerコンテナ内で利用するイメージ図

「C/C++test」をDockerコンテナ内で利用するイメージ図

導入後も安心してお使いいただけるサポート体制

C/C++testは、導入時のサポートから、運用支援、問題発生時のQ&A対応など導入後も安心してお使いいただけるサポート体制でお客様をバックアップいたします。

C/C++testデモ申し込み
静的解析ツール・単体テストツールC/C++testを体験版をお試しください。
すべての機能を無償で14日間ご利用可能、すぐにご評価可能なチュートリアル付属
ご評価を円滑に進めるための、技術的なサポート対応あります

静的解析ツール・単体テストツール C/C++testに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。