TPT(ソフトウェア)

時間分割テスト(TPT)
開発者シノプシス株式会社
安定版リリース
2024.12 / 2024年12月 (2024年12月
オペレーティング·システムウィンドウズ
入手可能な英語
タイプソフトウェアテスト
ライセンス独自の
Webサイトwww .synopsys .com /検証/仮想プロトタイピング/tpt .html

TPT (タイム パーティション テスト) は、組み込み制御システムサイバー フィジカル システム、およびデータフロー プログラム自動ソフトウェア テスト検証を行う体系的なテスト方法論です。TPT は、入出力を信号として表すことができる組み込みシステムのテストと検証に特化しており、システムの連続的な動作をテストするための専用手法です。[ 1 ]ほとんどの制御システムはこのシステム クラスに属します。制御システムの顕著な特徴は、実際の環境と密接に連動して相互作用することです。コントローラーは環境を観察し、その動作に応じて反応する必要があります。[ 2 ]システムは環境との相互作用サイクルで動作し、時間的な制約を受けます。これらのシステムをテストすることで、タイミング動作を刺激して確認します。従来の機能テスト方法ではスクリプトが使用されますが、TPT ではモデル ベース テストが使用されます。

TPTは、テストケースのための体系的かつグラフィカルなモデリング手法と、様々な環境での完全自動テスト実行および自動テスト評価を組み合わせたものです。TPTは以下の4つのテストアクティビティをカバーします。

グラフィックテストケース

バリアント付きハイブリッドオートマトンによるテスト記述

TPTでは、特殊なステートマシンと時間分割を用いてグラフィカルにテストをモデル化します。[ 1 ] [ 3 ] 1つのテスト対象システムのすべてのテストケースは、1つのハイブリッドオートマトンを用いてモデル化できます。テストは多くの場合、一連の論理フェーズで構成されます。有限ステートマシン状態は、すべてのテストで共通するテストの論理パスを表します。トリガー条件は、テストフェーズ間の遷移をモデル化します。オートマトンの各状態と遷移には、異なるバリアントが存在する場合があります。これらのバリアントの組み合わせによって、個々のテストケースがモデル化されます。

自然言語テキストがグラフィックの一部となり、プログラマー以外の方にもシンプルで分かりやすい読みやすさを実現します。並列・階層分岐ステートマシン、条件分岐、リアクティブ、信号記述、測定信号、そしてシンプルなテストステップリストといった充実した技術により、複雑なテストケースであっても直感的でグラフィカルなモデリングが可能です。

テストの複雑さはグラフィックの背後に隠れています。最下位レベルの信号記述は、テストステップリストまたはいわゆる直接定義のいずれかで構成されます。

テストステップリストの例

単純なシーケンスのモデリング: テストステップリスト

テスト ステップ リストを使用すると、信号の設定 (Set channel)、信号のランプ (Ramp channel)、パラメータの設定 (Set parameter)、待機 (Wait) など、並列実行する必要のない単純なテスト ステップのシーケンスをモデル化できます。テスト シーケンス内で期待されるテスト結果を要求して、テスト対象のシステムを実行中に評価できます。また、テスト ステップ リストにサブオートマトンを配置することもできます。サブオートマトンにはオートマトンとシーケンスが含まれるため、階層的なテスト ステップ リストが作成されます。テスト シーケンスは他のモデリング手法と組み合わせることもできるため、テストを大幅に複雑 (または単純) にすることができます。テスト シーケンスは、他のモデリング手法と組み合わせて並列化することもできます。

信号の直接的な定義

直接信号の定義: 直接定義

テストステップリスト内では、いわゆる「直接定義」を実装できます。このタイプのモデリングを使用することで、信号を時間関数、過去の変数/テストイベント、その他の信号として定義できます。また、「Cスタイル」のコードを記述したり、測定データをインポートしたり、手動の信号エディタを使用したりすることで 、これらの信号を定義することも可能です。

機能

クライアントまたはサーバーとして機能する関数を定義することができます。クライアント関数はテスト対象システム内のTPTから呼び出され、TPTに実装されたサーバー関数はテスト対象システムから「スタブ関数」として呼び出されます。TPT自体もサーバー関数を呼び出すことができます。

体系的なテストケース

TPTは、組み込みシステムの継続的かつ反応的な動作をテストするために特別に開発されました。[ 4 ] TPTは、タイミング動作の観点から分類木法の拡張版と見なすことができます。テストケース生成における体系的なアプローチにより、TPTは、徹底的なテストには多数のテストケースが必要となる非常に複雑なシステムにも対応し、理想的な数のテストケースでテスト対象システムの障害を発見することが可能です。

TPTの体系的な考え方の根底にあるのは、テストケース間の類似点と相違点を分離することです。ほとんどのテストケースは構造プロセスにおいて非常に類似しており、「わずか」な、しかし重要な詳細においてのみ差別化が可能です。[ 5 ] TPTは、共同モデリングと共同構造の使用によってこの事実を活用します。これにより、一方では冗長性が回避されます。他方では、テストケースが実際に何において異なるのか、つまり、それぞれがどの特定の側面をテストするのかが非常に明確になります。このアプローチにより、テストケースの比較可能性、ひいては概要が向上し、テスターの注意はテストケースの本質的な違い、つまり差別化要因に集中します。

テスト ケースの階層構造により、複雑なテストの問題をサブ問題に分割することが可能になり、明確さが向上し、結果としてテストの品質も向上します。

これらのモデリング技術は、テスターが実際に関連するケースを見つけ、冗長性を回避し、多数のテストケースを追跡することをサポートします。[ 6 ]

自動テストケース生成

TPT には、テスト ケースを自動的に生成するいくつかの機能が含まれています。

TPTダッシュボードを使用したインタラクティブな手動テスト
  • 同値クラスからのテストケース
  • 静的解析と探索ベースの手法を用いたSimulinkモデルのカバレッジのためのテストケース[ 7 ]
  • テストモデルの状態と遷移のバリエーションからシーケンスを構築してテストケースを作成する
  • グラフィカルユーザーインターフェース(ダッシュボード)を介してテスト対象システムとユーザーとのインタラクションの記録を変換することにより、テストケースを作成します。

反応テスト

TPTを使用すると、各テストケースはテストプロセス中にシステムの挙動[ 8 ]にリアルタイムで反応することができます。例えば、特定のシステム状態が発生したときやセンサー信号が特定の閾値を超えたときに、正確にシステムに反応することができます。例えば、エンジンコントローラーのセンサー故障を、エンジンのアイドリング回転数を超えたときにシミュレートする場合、テストケースの説明で「エンジンのアイドリング回転数を超えた」というイベントに反応できるようにする必要があります。

テスト実行

TPTのテストケースは、その実行とは独立して作成されます。いわゆる仮想マシン(VM)コンセプトにより、テストケースはリアルタイム環境でもほぼあらゆる環境で実行できます。例としては、MATLAB / SimulinkTargetLink、ASCET、CコードCANAUTOSAR、SystemDesk、DaVinci CT、LABCAR、INCA、ソフトウェア・イン・ザ・ループ(SiL)、HiLなどが挙げられます。したがって、TPTは、単体テスト統合テストシステムテスト回帰テストなど、開発のあらゆるテストフェーズで使用できる統合ツールです。

コード カバレッジの分析と測定のために、TPT はC コード用の Testwell CTC++ などのカバレッジ ツールと連携できます。

GUI ウィジェットに基づく構成可能なグラフィカル ユーザー インターフェイス (ダッシュボード) を使用して、テストを操作できます。

TPT仮想マシン

TPTでモデル化されたテストケースはコンパイルされ、テスト実行中にいわゆる仮想マシン(VM)によって解釈されます。VMはすべてのプラットフォームとすべてのテストで同一です。個々のアプリケーションのシグナルマッピングは、プラットフォームアダプターによってのみ実現されます。TPT-VMはANSI Cで実装されており、必要なメモリはわずか数キロバイトで、動的なメモリ割り当てを一切必要としないため、最小限のリソースしか必要としない環境やリソースの少ない環境にも適用できます。Cおよび.NET用のAPIも用意ています

TPTの仮想マシンは、定義された応答動作でリアルタイムにテストを処理できます。TPTテストケースの応答時間は通常、マイクロ秒以内ですが、これはテストの複雑さとハードウェアによって異なります。

プログラムテスト評価

効率的なテストプロセスを確保するためには、個々のテストケースにおける期待されるシステム動作も自動的にテストする必要があります。TPTは、期待される動作の特性をオンライン(テスト実行中)とオフライン(テスト実行後)で計算する機能を提供します。オンライン評価ではテストモデリングと同じモデリング手法が使用されますが、オフライン評価では、外部参照データとの比較、限界値監視、信号フィルタ、状態シーケンスや時間条件の分析といった操作を含む、より複雑な評価のためのより広範な可能性を提供します。

オフライン評価は、技術的にはPythonスクリプト言語をベースにしており、特定の構文言語要素と専用の評価ライブラリによって拡張されており、テスト評価を最適にサポートします。スクリプト言語の使用により、テスト評価における高い柔軟性が確保されます。参照データへのアクセス、他のツールとの通信、そしてテスト評価のための独自のドメイン固有ライブラリの開発がサポートされます。スクリプトベースのテスト結果評価に加えて、ユーザーインターフェースによってテスト評価への容易なアクセスが提供され、非プログラマーでもスクリプト作成を回避できます。

TargetLinkSimulinkの信号ロギング、MCD-3の測定データなど、他のソースからの測定データを自動的に評価できます。これらのデータはテスト実行とは独立して使用できます。

テストドキュメント

IEEE 829準拠のTPTテストドキュメントは、テスト評価の結果をHTMLレポートでテスターに​​提示します。このレポートでは、各テストケースのテスト結果として「成功」、「失敗」、「不明」といった純粋な情報だけでなく、テスト実行中に観察された、あるいはテスト評価中に計算された特性パラメータや信号といった詳細情報も表示できます。テスト評価はタイミングやチェックされた動作に関する適切な情報を返すため、これらの情報をレポートで利用できます。テストドキュメントの内容と構造は、テンプレートを使用して自由に設定できます。

テスト管理

TPT は、次のアクティビティを通じて TPT テスト プロジェクトの テスト管理をサポートします。

  • テストプロジェクトにおけるテストケースの開発
  • テストセット構成とテスト実行構成によるテスト計画
  • テストキャンペーンにおける自動テスト実行と評価(アセスメント)
  • テストレポート(個々のテスト実行の詳細)
  • 異なるリリースサイクルにわたるテスト概要レポートと
  • 要件、テスト、テスト実行、テスト結果のトレーサビリティ

要件トレース

IEC 61508DO-178B、EN 50128、ISO 26262などの業界規格では、要件とテストのトレーサビリティが求められています。TPTは、 Telelogic DOORSなどの要件ツールとのインターフェースを提供し、これらの活動をサポートします。

応用

TPTはモデルベーステストツールであり、主に自動車用コントローラの開発に適用されています[ 9 ]。元々はダイムラーAG社内で自社開発用に開発されました。ダイムラーは長年にわたりこのテストツールの開発を調整してきました[ 10 ] 。2007年以降、PikeTecがこのツールの開発を継続しています。TPTは、 BMWフォルクスワーゲンアウディポルシェゼネラルモーターズなどの多くの自動車メーカーや、ロバート・ボッシュGmbHコンチネンタルヘラなどのサプライヤーにも使用されています[ 11 ]

参考文献

  1. ^ a b「Justyna Zander-Nowicka、Abel Marrero Pérez、Ina Schieferdecker、Zhen Ru Dai:組み込みシステムのテスト設計パターン、10th International Conference on Quality Engineering in Software Technology、CONQUEST 2007、ポツダム、ドイツ、2007年9月」(PDF) 。 2012年3月2日時点のオリジナル(PDF)からアーカイブ。 2013年8月8日閲覧
  2. ^ Karl J. Åström、Richard M. Murray (2008). 『フィードバックシステム:科学者とエンジニアのための入門』(PDF) . プリンストン大学出版局. ISBN 978-0-691-13576-2
  3. ^ 「Schieferdecker、Bringmann、Grossmann:Continuous TTCN-3:組み込み制御システムのテスト、Proceedings of 28th International Conference on Software Engineering、Shanghai、China、2006」(PDF) 。 2013年8月8日閲覧
  4. ^ 「Bringmann, Krämer: 自動車システムの連続動作の体系的テスト In: International Conference on Software Engineering: Proceedings of the 2006 international workshop on Software, Shanghai, China, 2006」(PDF) 。 2013年8月8日閲覧
  5. ^ 「Lehmann, TPT – 論文、2003年」(PDF) . 2013年8月8日閲覧
  6. ^ 「Lehmann: Time Partition Testing: A Method for Testing Dynamical Functional Behavior IN: Proceedings of Test2000, Lindon, Great Britain, 2000」 . Evotest.iti.upv.es . 2013年8月8日閲覧
  7. ^ Benjamin Wilmes: Hybrides Testverfahren für Simulink/TargetLink-Modelle、学位論文、ベルリン工科大学、ドイツ、2015 年。 [1]
  8. ^ 「Grossmann, Müller: TestMLの形式的動作意味論; Proc. of ISOLA 06, Paphos, Cyprus, November 2006」(PDF) . Immos-project.de.
  9. ^ Bringmann, E.; Krämer, A. (2008). 「自動車システムのモデルベーステスト」(PDF) . 2008 International Conference on Software Testing, Verification, and Validation . International Conference on Software Testing, Verification, and Validation (ICST). pp.  485– 493. doi : 10.1109/ICST.2008.45 . ISBN 978-0-7695-3127-4
  10. ^ミルコ、コンラッド;フェイ、イネス。グロヒトマン、マティアス;クライン、トルステン (2001-07-09)。 「Modellbasierte Entwicklung eingebetteter Fahrzeugsoftware bei DaimlerChrysler」。情報 - Forschung und Entwicklung20 ( 1–2 ): 3–10 .土井: 10.1007/s00450-005-0197-5
  11. ^ハウザー・オートモーティブ・ウェブサイト。2015年3月16日閲覧。 2015年11月24日アーカイブ。Wayback Machineにて。