1. 早期検査の必要性
2. テスト駆動開発
テスト駆動開発の主要な原則
- できるだけ早くテストを書く テストケースは、実装段階よりも要求仕様から容易に導き出すことができます。
- 反復的なプロセス 機能は小さなサイクルで段階的に開発され、継続的な改善と洗練が可能になります。
- 動作に焦点を当てる テストが成功することで、機能が事前に定義された要求に対して正しく動作していることが確認されます。
結論
テスト駆動開発(TDD)は、コードが要求された基準を満たし、期待通りに動作することを保証するため、機能を開発する際の達成感を高めてくれます。3. BTC EmbeddedPlatformでテスト駆動開発を実装する方法
モデルベース開発におけるTDDの課題
要求のトレーサビリティの欠如:トレーサビリティがないと、すべての要求がテストされていることを保証するのが難しくなり、ギャップや欠陥の見落としにつながる可能性があります。
自動判定の不在:テスト結果の手動レビューは時間がかかり、ミスが発生しやすいです。自動判定を導入することで、迅速かつ信頼性の高い合否判定が可能になります。
テスト自動化の欠如:手動テストは遅く、信頼性も低くなりがちです。自動化により、迅速で再現性のあるテストが可能となり、結果も一貫性を保てます。
ISO 26262認証の未取得:認証がないと、特に自動車業界において、ソフトウェアの安全性と信頼性を保証するのが困難になります。
一般的なテスト環境:モデルベース開発者が一般的に使用するテスト駆動開発(TDD)のセットアップでは、ディスプレイポートや定数ブロックが使われますが、これらには適切なテスト定義やテストケースの判定が存在しません。以下にその一例を示します。
BTC Embedded Systems が提案する TDD MBD ベストプラクティス
上記の課題を克服するために、以下のベストプラクティスを検討してください:
- テストケースはできるだけ早く作成する:要件を理解したうえで早期にテストケースを作成することで、テストが最初から要件に沿ったものになります。
- テストケースの判定結果(Verdict)を明確に定義・管理する:明確な判定結果により、迅速かつ信頼性の高い合否判定が可能となり、手動でのレビュー時間を削減できます。
- テストケースと要件のトレーサビリティを確保する:トレーサビリティを確保することで、すべての要件がテストされていることを保証し、ギャップや欠陥の見落としを防ぎます。
- すべてのテスト実行を自動化し、リグレッションテストを有効にする:自動化により、迅速で再現性のあるテストが可能となり、継続的インテグレーションをサポートします。
- テストケースを後のコードテストプロジェクトでも再利用する:テストケースを再利用することで、時間とリソースを節約し、異なるテストフェーズ間での一貫性を確保できます。
Simulinkから直接TDD:BTC EmbeddedPlatformによる最適なソリューション
Simulink 2022b以降、BTC EmbeddedPlatformはMATLABに組み込まれた統合ソリューションを提供しており、Simulink内で直接テストケースの作成、管理、実行が可能です。
Simulink内でモデルの開発とテストを行うことができ、出力を確認するためにスコープやディスプレイポートを追加する必要はありません。
テストケースは、BTCプロファイルにアップロードすることで後のテストプロジェクトに転送でき、要件とのリンクを通じてトレーサビリティを高めることができます。
このアプローチにより、できるだけ早期にテストケースを作成し、テストケースの判定結果(Verdict)を効果的に定義・管理することが可能になります。
結論
これらのツールとベストプラクティスを活用することで、モデルベース開発者はSimulinkから直接シームレスなテストを実現でき、高品質なソフトウェア開発を可能にし、欠陥の特定と修正にかかる時間とコストを削減することができます。