PROMPT
(MBDテストデータ自動生成ツール)
MBDのテストデータ生成を改善

  • 対象業界:自動車業界
  • 対象部門:組込みソフトウェア開発
課題

MBDに膨大なコストと時間が必要な現実

  • 先行開発時のロジックが最適化されずに残っている
  • 〝暫定的〟な修正の繰り返しを行った結果、モデル自体が複雑化・肥大化し、モデル構造の検証が困難となる(破綻してできず困っている)
解決

MBDテストデータ自動生成ツール
PROMPTが膨大なコストと時間の問題を解決します。

「PROMPT(Performable RatiOnalized Model Perfective Tool)」はMATLAB/Simulinkのサブセットとして、大規模・複雑化するモデルに対するモデルカバレッジの網羅性の高いテストベクタを短時間で自動生成するツールです。MATLAB/Simulinkを用いたモデルベース開発(MBD)において課題となる「大規模・複雑化するモデルに対してのテストデータ生成」を解決し、結果として車載システム等に搭載されるECU用ソフトウェアの開発に対する「高安全・高信頼」に寄与することが可能です。
※JAIST(北陸先端科学技術大学院大学)と共同研究開発
PROMPT
PROMPTの特徴

MC/DCカバレッジの高いテストデータ生成に貢献

PROMPTはテスト対象となるモデルを解析し、自動でMC/DCカバレッジを満たすテストデータを生成します。
テストデータ生成ツールとしては後発ですが、他のツールにはない特徴を活かすことで、 人手によるテストデータ追加に比較して、大幅に工数を削減することが可能です。
MC/DCカバレッジの高いテストデータ生成に貢献
  • 特長 1
    形式的手法の苦手パターンを得意とするアルゴリズムを採用
    品質基準の高いテストでは、MC/DCカバレッジ100%のテスト実施が求められます。
    このとき形式的手法を用いたツールがよく利用されていますが、実運用上のモデルに使うには大きな課題があります。 モデルを網羅的に解析する方式のため、テスト対象モデルが大きい且つ複雑だと、状態爆発により解析時間が膨大になります。 仕組み上、非線形演算、周波数特性は苦手です。
    PROMPTはこうした形式的手法が苦手とする条件のテストデータをすばやく生成することができるツールです。
  • 特長 2
    ランダム選択(モンテカルロ法)の苦手・欠点を克服
    従来のツールは、形式的手法で生成困難なパターンを補うために、乱数でテストデータをつくるモンテカルロ法を採用しているものが多くあります。
    モデルを解析しないため、高速で動作するものの、次のような課題があるようです。 狭いゾーンはなかなか当たらず膨大なテストケースと時間が必要となりがちです。 大量の単発テストケースやぐちゃぐちゃな波形では、カバレッジを満たすこと以外に使い道がありません。
    PROMPTは信号テンプレートや軽量解析との組合せで、カバレッジを満たしつつ、価値のあるテストデータを作ることができます。
PROMPTの機能
  • 機能 01

    テストハーネスモデル生成

    • テスト対象モデルからテスト用に入力ドライバーとなるSignal Builderをつないだハーネスモデルを作成します。
      モデル全体を対象とするか、または、サブシステムを切り出すことができます。
    • テストハーネスモデル生成
  • 機能 02

    テストデータ生成

    • 本製品の主機能です。テストデータを生成します。
      生成波形の調整や試行回数など、生成オプションがあります。 中断後に再開することや、取り込み機能との前後順も自由です。
      乱数シードはあらかじめ用意されており、同じモデルに対して同じ波形を生成できます。 また、シード値を変更することで異なる波形も生成できます。
    • テストデータ生成
  • 機能 03

    Simulinkモデルカバレッジ計測

    • テストデータの生成時および取り込み時に、内部で本製品独自にモデルカバレッジの計測を行います。
      Simulinkの対象ブロックの判定カバレッジ(DC), 条件カバレッジ(CC), MC/DCの各カバレッジ達成状況を計測します。
      S-functionやMATLAB-functionなど、一部対象外のブロックもあります。
  • 機能 04

    Stateflowモデルカバレッジ計測

    • 生成オプションにて機能を有効化していただくと、テストデータ生成および取り込み時に、Simulinkブロックに追加でチャート(Chart)、状態遷移表(State Transition Table)および真理値表(Truth-Table)ブロックのカバレッジ計測を行います。
      ※Stateflow計測機能は開発中のため、先行公開扱いです。
    • Stateflowモデルカバレッジ計測
  • 機能 05

    カバレッジレポート出力

    • 生成または取り込んだテストデータによるモデルカバレッジ達成状況をJSON形式のテキストファイルに出力できます。
      達成・未達成を含む全体のカバレッジレポート、未達成部分のみに絞った残件確認用の未達レポート、および、未サポートブロックのレポートをそれぞれ出力できます。
    • カバレッジレポート出力
  • 機能 06

    テストデータ出力

    • 生成したテストデータを、Signal Builder以外の後工程ツール向けにエクスポートすることができます。
      CSV形式のテキストファイルまたは、MATLABのtable変数形式を選択できます。 table変数から各種ツール向けに変換するユーティリティ作成例も用意してあります。
    • テストデータ出力
  • 機能 07

    テストデータ取り込み

    • CSV出力と同じフォーマットのCSVファイルでテストデータを取り込むことができます。 単発のテストケースも取り込みできるようになりました。
  • 機能 08

    カスタム波形

    • 既存の8種類の信号テンプレートに加えて、お客様独自の信号テンプレートを作成・登録、ご利用できるようになりました。MATLAB関数で定義した波形をPROMPTから呼び出し波形生成に利用できます。 この機能をご活用頂くと、より現実的な(狙った)波形で残す価値のあるテストを作成できます。
      たとえば、0で始まりある地点から単調増加する(ランプ)波形が欲しい場合、既存のNLinear波形でちょうどその特徴を満たすパターンに調整するのは確率的に困難です。 このような場合に、ランプ波形の特徴に制約した信号テンプレートを独自に定義いただき、利用できます。
    • カスタム波形
  • 機能 09

    定数キャリブレーション

    • PROMPTは、事前に設定された時間・回数内で、入力信号からモデルカバレッジを満たすテストデータ生成を試行し続けます。 しかし、このとき、ブロックパラメーターの設定値によって達成不可能なパスが含まれており、いつまでも生成完了できない場合があります。 解析時にブロックパラメーターを変更することによって、カバレッジを達成する方法のことを本ツールでは「定数キャリブレーション」と呼びます。
      テストデータ生成時に定数値を変える場合は設定ファイルを準備してください。 取り込み時はCSVファイルに記載された定数値を自動的に定数キャリブレーション対象として取り扱います。
      なお、定数キャリブレーションはシミュレーション前に値を変更します。1ステップごとに定数値を変更することはできません。
    • 定数キャリブレーション
  • 機能 010

    自動化を前提としたCLI(Command Line Interface)

    • PROMPTの各機能はPrompt.Projectクラスに集約されています。ハーネスモデル作成からデータ出力までMATLABスクリプトで自動化できます。
    • 自動化を前提としたCLI(Command Line Interface)

PROMPT V2.9アップデート情報

Stateflowカバレッジ計測の拡充 Chart、状態遷移表に加え、新たに真理値表のカバレッジ計測をサポートしました。Stateflowの主要な3タイプを計測可能になりました。
テストデータ取り込みの制限緩和 1ステップ単位のテストケースも取り込み・カバレッジ計測可能になりました。
従来は2ステップ以上の(波形状)データ想定していました。 これにより、単体テスト系ツールが作成する細切れのデータも活用可能です。
テストデータ出力の付加情報強化 テーブル形式選択時に、テーブル本体に付属する信号情報を強化しました。
ベクトル・配列やバス信号などの構造情報や、データ型情報を追加しました。 これにより、今まで以上に簡単にさまざまな用途へ接続可能です。
利用環境拡充 Windows11、Windows Server 2016/2019/2022での利用が可能になりました。
また、MATLAB R2022b、R2023a上で利用が可能になりました。