PROMPT
MBDテストデータ自動生成ツール
課題
MBDに膨大なコストと時間が必要な現実
- 先行開発時のロジックが最適化されずに残っている
- 〝暫定的〟な修正の繰り返しを行った結果、モデル自体が複雑化・肥大化し、モデル構造の検証が困難となる(破綻してできず困っている)
解決
MBDテストデータ自動生成ツール
PROMPTが膨大なコストと時間の問題を解決します。
「PROMPT(Performable RatiOnalized Model Perfective Tool)」はMATLAB/Simulinkのサブセットとして、大規模・複雑化するモデルに対するモデルカバレッジの網羅性の高いテストベクタを短時間で自動生成するツールです。MATLAB/Simulinkを用いたモデルベース開発(MBD)において課題となる「大規模・複雑化するモデルに対してのテストデータ生成」を解決し、結果として車載システム等に搭載されるECU用ソフトウェアの開発に対する「高安全・高信頼」に寄与することが可能です。
※JAIST(北陸先端科学技術大学院大学)と共同研究開発
PROMPTの特徴
MC/DCカバレッジの高いテストデータ生成に貢献
PROMPTはテスト対象となるモデルを解析し、自動でMC/DCカバレッジを満たすテストデータを生成します。
テストデータ生成ツールとしては後発ですが、他のツールにはない特徴を活かすことで、 人手によるテストデータ追加に比較して、大幅に工数を削減することが可能です。
-
特徴1
形式的手法の苦手パターンを得意とするアルゴリズムを採用
品質基準の高いテストでは、MC/DCカバレッジ100%のテスト実施が求められます。
このとき形式的手法を用いたツールがよく利用されていますが、実運用上のモデルに使うには大きな課題があります。 モデルを網羅的に解析する方式のため、テスト対象モデルが大きい且つ複雑だと、状態爆発により解析時間が膨大になります。 仕組み上、非線形演算、周波数特性は苦手です。
PROMPTはこうした形式的手法が苦手とする条件のテストデータをすばやく生成することができるツールです。 -
特徴2
ランダム選択(モンテカルロ法)の苦手・欠点を克服
従来のツールは、形式的手法で生成困難なパターンを補うために、乱数でテストデータをつくるモンテカルロ法を採用しているものが多くあります。
モデルを解析しないため、高速で動作するものの、次のような課題があるようです。 狭いゾーンはなかなか当たらず膨大なテストケースと時間が必要となりがちです。 大量の単発テストケースやぐちゃぐちゃな波形では、カバレッジを満たすこと以外に使い道がありません。
PROMPTは信号テンプレートや軽量解析との組合せで、カバレッジを満たしつつ、価値のあるテストデータを作ることができます。
PROMPTの機能
-
機能1
テストハーネスモデル生成
-
機能2
テストデータ生成
-
機能3
Simulinkモデルカバレッジ計測
-
機能4
Stateflowモデルカバレッジ計測
-
機能5
カバレッジレポート出力
-
機能6
テストデータ出力
-
機能7
テストデータ取り込み
-
機能8
カスタム波形
-
機能9
定数キャリブレーション
-
機能10
自動化を前提としたCLI(Command Line Interface)
-
機能1
テストハーネスモデル生成
テスト対象モデルからテスト用に入力ドライバーとなるSignal Builder(またはSignal Editor)をつないだハーネスモデルを作成します。
モデル全体を対象とするか、または、サブシステムを切り出すことができます。01
-
機能2
テストデータ生成
本製品の主機能です。テストデータを生成します。
生成波形の調整や試行回数など、生成オプションがあります。 中断後に再開することや、取り込み機能との前後順も自由です。
乱数シードはあらかじめ用意されており、同じモデルに対して同じ波形を生成できます。 また、シード値を変更することで異なる波形も生成できます。02
-
機能3
Simulinkモデルカバレッジ計測
テストデータの生成時および取り込み時に、内部で本製品独自にモデルカバレッジの計測を行います。
Simulinkの対象ブロックの判定カバレッジ(DC), 条件カバレッジ(CC), MC/DCの各カバレッジ達成状況を計測します。
S-functionやMATLAB-functionなど、一部対象外のブロックもあります。03
-
機能4
Stateflowモデルカバレッジ計測
チャート(Chart)、状態遷移表(State Transition Table)および真理値表(Truth-Table)ブロックのカバレッジ計測を行います。
04
-
機能5
カバレッジレポート出力
生成または取り込んだテストデータによるモデルカバレッジ達成状況をJSON形式のテキストファイルに出力できます。
達成・未達成を含む全体のカバレッジレポート、未達成部分のみに絞った残件確認用の未達レポート、および、未サポートブロックのレポートをそれぞれ出力できます。05
-
機能6
テストデータ出力
生成したテストデータを、Signal Builder以外の後工程ツール向けにエクスポートすることができます。
CSV形式のテキストファイルまたは、MATLABのtable変数形式を選択できます。 table変数から各種ツール向けに変換するユーティリティ作成例も用意してあります。06
-
機能7
テストデータ取り込み
CSV出力と同じフォーマットのCSVファイルでテストデータを取り込むことができます。 単発のテストケースも取り込みできるようになりました。
07
-
機能8
カスタム波形
既存の8種類の信号テンプレートに加えて、お客様独自の信号テンプレートを作成・登録、ご利用できるようになりました。MATLAB関数で定義した波形をPROMPTから呼び出し波形生成に利用できます。 この機能をご活用頂くと、より現実的な(狙った)波形で残す価値のあるテストを作成できます。
たとえば、0で始まりある地点から単調増加する(ランプ)波形が欲しい場合、既存のNLinear波形でちょうどその特徴を満たすパターンに調整するのは確率的に困難です。 このような場合に、ランプ波形の特徴に制約した信号テンプレートを独自に定義いただき、利用できます。08
-
機能9
定数キャリブレーション
PROMPTは、事前に設定された時間・回数内で、入力信号からモデルカバレッジを満たすテストデータ生成を試行し続けます。 しかし、このとき、ブロックパラメーターの設定値によって達成不可能なパスが含まれており、いつまでも生成完了できない場合があります。 解析時にブロックパラメーターを変更することによって、カバレッジを達成する方法のことを本ツールでは「定数キャリブレーション」と呼びます。
テストデータ生成時に定数値を変える場合は設定ファイルを準備してください。 取り込み時はCSVファイルに記載された定数値を自動的に定数キャリブレーション対象として取り扱います。
なお、定数キャリブレーションはシミュレーション前に値を変更します。1ステップごとに定数値を変更することはできません。09
-
機能10
自動化を前提としたCLI(Command Line Interface)
PROMPTの各機能はPrompt.Projectクラスに集約されています。ハーネスモデル作成からデータ出力までMATLABスクリプトで自動化できます。
10
アップデート情報
関連資料ダウンロード
ピックアップ
pick up
止まらない「技術」で、
未体験の進化を共創する。
製品・サービスの詳細や資料請求につきましては、
お気軽にお問い合わせください。