昨年、【Heartland Day 2020 ONLINE】にて発表された新製品「DT+シリーズ」。
この「DT+シリーズ」に機能安全対応のプロジェクトにお使いいただける「DT+FS(Functional Safety)」が新たに追加されます。

以前からご好評いただいていた機能安全規格「ISO 26262」や「IEC 61508」に適合した動的テストツールである「DT10 Automotive Edition(以下、DT10AE)」の後継モデルとなります。
「DT+FS」では、これまで同様、機能安全対応のプロジェクトでお使いいただけるだけではなく、「DT10AE」にはなかった新しい機能を搭載して、さらに分かりやすいテスト結果やエビデンスを残すことが可能となっています。
本ブログでは、「ISO 26262」に焦点を当てて説明していきます。

ISO 26262におけるツール認定

機能安全規格ではソフトウェア開発で使用するツールが問題ないことの妥当性を証明することを求められます。
また、ツールの挙動や使い方、制約を定義した仕様書や製品文書を備えている必要があります。
さらに、ツールの妥当性確認を実施し、その結果を全て文書化する必要もあります。
このようなツールの妥当性の証明責任はツールベンダー側ではなく、ツールの使用者側にあります。

→「ツール認定」について詳しくはこちらから

DT+FSについて

DT+FSは、前述のツール認定を第三者認証機関であるTÜV SÜD社(テュフ ズード社)から取得した動的テストツールです。
ISO 26262の適用範囲としてはPart6のClause9(Software unit verification)とClause10(Software Integration and verification)になります。
DT+FSではターゲットとなるソースコードに対してテストポイントと呼ばれるフックコードを自動で埋め込みます。
関数の入口(FuncIn)や出口(FuncOut)、各種分岐(if等)のような実行経路を確認する基本的なテストポイントだけではなく、ISO 26262におけるユニットテストや統合テストで取得を要求されるカバレッジを取得するためのテストポイントも併せて自動で挿入します。
この各テストポイントが入った状態でターゲットを動作させることでテストポイント情報が出力され、それらのデータをもとにテストレポートを生成します。

DT+FS機能紹介

DT+FSで実際に取得したテストレポートを解析することで、各種カバレッジデータをまとめたレポートを表示できます。
また、それぞれのカバレッジレポートで未通過となっている箇所も簡単に確認できます。

ステートメントカバレッジ

ステートメントとは基本的にはセミコロン行の箇所を指します。これに加えて”if”構文や”while”構文なども式文1つの塊でステートメントとして計上します。
このように定義されたステートメントを各関数ごとにどの程度網羅できたかを表すのがステートメントカバレッジです。

・ステートメントカバレッジ計測用のテストポイント

・ステートメントカバレッジ計測結果

ブランチカバレッジ

ブランチとは関数の入口や出口、”if”構文等の条件分岐のような「プログラムの処理の流れに変化が発生する分岐点」を指します。
このように定義されたブランチを各関数ごとにどの程度網羅できたかを表すのがブランチカバレッジです。
また、コード上省略されたelse文についても対象となるため、else文を明記した上でテストポイントを自動で挿入します。

・ブランチカバレッジ計測用のテストポイント

・ブランチカバレッジ計測結果

関数コールカバレッジ

関数コールカバレッジとは各関数内に存在する関数呼び出しをどの程度網羅できたかを表すものです。
また、関数コールカバレッジには「Caller」と「Callee」の2通りの算出方法が存在します。
「Caller」は着目する関数の中に記述された関数呼び出し処理がどれだけ実行されたかを測定します。
「Callee」は着目する関数自体の関数呼び出し処理がどれだけ実行されたかを測定します。

・関数コールカバレッジ計測用のテストポイント

・関数コールカバレッジ計測結果

関数カバレッジ

関数カバレッジとは各ソースファイル内で全関数の中でテストポイントをいずれか1つでも通過している実行済みの関数がどの程度の割合かを表すものです。

・関数カバレッジ計測用のテストポイント

・関数カバレッジ計測結果

MC/DC(Modified Condition/Decision Coverage)

MC/DCとはDO-178Cが定義する「Modified Condition/Decision Coverage」の略で、以下のような要件を確認する必要があります。
・プログラムの全入口/出口を少なくとも一回はテストすること
・プログラムの判定に含まれる全条件は可能な値を少なくとも一回はテストすること
・プログラムの全判定は可能値を少なくとも一回はテストすること
・プログラムの判定の全条件は判定の出力に独立して影響することを示すこと

→「MC/DC」についてのホワイトペーパーこちらから

・MC/DC計測用のテストポイント

・MC/DC計測結果


DT+FSでは各種カバレッジの計測だけではなく、実行経路を確認したり指定した変数の値を出力可能です。
これらの情報をよりわかりやすくするため、新機能となる「レポート分割」機能と「変数値評価判定」機能が新たに追加されました。
また、DT+FSはテストの自動化も見据えており、コマンドラインでも実行できる機能が多数存在します。

レポート分割

テストポイントで予め設定してある情報を判別して、分割区間を割り出し、分割区間ごとに1つのテストレポートを生成することが可能になりました。
これにより例えば複数のテストケースを実施したテストレポートを、1テストケースにつき1テストレポートと分割できます。
また、レポート分割の際にはテストポイントで設定している文字列情報をそのままテスト項目名(テストレポート名)として登録できるので、トレーサビリティIDをテスト項目名として保存することにより、トレーサビリティツールとの連携を図ることもできます。

変数値評価判定

DT+FSでは事前にコマンドファイルと呼ばれる変数値のフォーマットや評価基準を指定出来るファイルを作成し、対象のDTプロジェクトに読み込ませることで、コマンドファイル内にて指定したフォーマット適用時に評価結果の自動出力が可能になりました。

FSCmdによるDT+FSの自動化

DT+FSの基本的な操作はコマンドラインで実行可能です。
新機能の「レポート分割」、カバレッジ計測結果や変数の判定結果を出力するための「レポート解析」等もコマンドラインで実行できます。

DT+FSと機能安全関連サービスDiETの適用事例

プロジェクト適用サービスDiETのご紹介

弊社では「DiET」(Dynamic test Efficiency Technique)というDT+FSを使用して機能安全規格に対応したテストの効率的な実施を支援するサービスを提供しています。
機能安全に対応する際の様々な課題に対して機能安全の知識を持ち、さらにDT+FSの活用法を熟知しているエンジニアがサポートします。
DiETではお客様の課題に応じて以下の5つのメニューから最適なものをお選びいただくことが可能です。


A社様向けDiET適用事例

機能安全への対応が必要なプロジェクトにおいて、DT10AEを用いたテスト環境の構築、運用支援を実施しました。
具体的には、以下の内容を実施しています。

・テストの戦略、計画の策定支援とテストの実施
・現行ターゲット機器へのDT10AEの導入
・各テストケース毎のテストレポート取得
・取得したテストレポートへのトレーサビリティIDの付与
・取得した変数値の評価判定の実施
・各種出力レポートのエビデンス化

通信内容の妥当性を確認したい

複数コアを持つマイコンのコア間の通信データが正しく送受信できているかの妥当性を確認したいという要求においては、「Core-A」が「Core-B」に送信したデータに対して、「Core-B」が「Core-A」から受信したデータが妥当であるかどうか、また、「Core-B」が「Core-A」に送信したデータに対して、「Core-A」が「Core-B」から受信したデータが妥当であるかどうかを確認しました。

変数値出力ポイントの自動挿入

Core-A/Bそれぞれに対する入力/出力データを確認できる変数を変数値出力ポイントでテストレポートに出力します。
変数値出力ポイントは事前に記載したコメントを検索してそのコメントの次行に自動挿入されます。
その際、変数値出力ポイントのプロパティ情報もコメント内に記載しておけばプロパティ設定も自動設定された状態となります。

レポート分割とトレーサビリティIDの付与

取得したレポートを各テストケース毎に分割し、さらに分割したレポートにはテスト項目名としてトレーサビリティIDを自動付与

出力した変数値の評価判定

コマンドファイルを設定することで変数値を指定したフォーマットで表示したり、指定した評価基準による変数の評価結果を出力

出力した変数値の評価判定

分割レポート出力時に併せて変数レポートをエクスポートしたCSVファイルが自動で出力されているので、その内容を参照してテスト仕様書のテスト結果欄に自動記載するPythonスクリプトを作成

まとめ

DiET適用事例にもある通り、DT+FSでは機能安全認証プロセスにおいて必要となる解析情報やエビデンスを出力する機能が多数存在します。
特に従来からお使いいただけていた各種カバレッジデータの取得だけではなく、テストケース毎のレポート分割やトレーサビリティの確保、変数値の自動評価など、より効率的に機能安全規格に則った開発作業を実施していくことを手助けする機能が追加されています。
DT+FSの導入はもちろんのこと、今回ご紹介したプロジェクト適用サービスDiETでもより最適なご提案が可能です。
機能安全認証プロセスをより効率的に実施したい方は是非弊社までご相談ください。


機能安全規格に適合した動的テストツール「DT+FS」

「ISO 26262」「IEC 61508」に適合した動的テストツール 「DT10AE(Automotive Edition)」の解析機能を継承しつつ、新機能で手間のかかるテストをより効率的に。