Ada単体テストの自動化
Ada単体テストと結合テストは、従来からコードのビルドに合わせて実施されています。ソフトウェアコンポーネントがそれぞれ作成されるのに応じて、テスト対象コードの外部インターフェイスに代わるテストコードが生成されます。このテストコードは一般に「テストハーネス」と呼ばれ、テスト対象コードの関数をスティミュレーションするドライバーと、テスト対象コードから呼び出される従属関数の代わりとなるスタブから構成されています。VectorCASTのソフトウェアは、テストハーネスを作成する過程でスタブとドライバーを自動生成するため、開発者は浮いた時間をテストケースの品質と網羅性の確保に回すことができます。
VectorCAST/Adaでは、単体テストをネイティブで、あるいは特定のターゲットやターゲットシミュレーター上で実行できます。アドオンモジュールのVectorCAST/RSPはVectorCASTのランタイム支援パッケージで、これを使用することにより、テストケースをターゲットハードウェア上で自動的かつシームレスに実行することができます。さらに、ホスト環境で開発されたテストを、ターゲットやクロスコンパイラーの性能を検証するために組込ターゲット上で再実行できます。
特長
- 手動によるテストプロセスから脱却して技術的な厳格さを実現
- 新規または既存アプリケーションへの適用が可能
- 開発者によるテストを合理化された再現可能なテクノロジーとして確立
- 新規開発コードを切り離した自動化フレームワークの作成による、定評あるコスト削減
- 開発時間を伸ばすことなく品質を追及できる
- Ada 83、Ada 95、Ada 2005、Ada 2012に対応
- Ada単体テスト、結合テスト対応の完全なテストハーネスを、テストコードを記述することなく構築
- ドライバーおよびスタブコードの自動ビルド
- GUIまたはスクリプトによるテスト実行
- 軍事および航空宇宙の要求に特化したコードカバレッジ解析
- IBM® Rational® Rhapsody®、AdaCore GNAT、Green Hills® AdaMULTI™、Atego™ ObjectAda®、DDC-I™ SCORE®、IBM® Rational® DOORS®などのツールと統合
- ターゲットおよびシミュレーターでのテスト実行
- コード複雑度の解析により、リスクの高いコードを強調表示
- デシジョンパスに基づくテストケースの自動生成
- デバッグを支援するテスト実行のプレイバック
- 既存のテストを利用してリグレッションテストを自動化
動作の仕組み
VectorCAST/Adaを使用して、Adaの組込ソフトウェアのテストを自動化する方法
VectorCAST/Adaはソースコードを解析してコードジェネレータを呼び出し、完全かつ実行可能なテストハーネスの構築に必要なテストコード(スタブとドライバー)を自動生成します。テストハーネスを構築した後は、ユーティリティーを使用して、テストケースのビルドと実行、カバーされるコードの表示、静的測定のレポートが行えるようになります。テストデータはテストハーネスとは切り離して保管されるため、容易な自動リグレッションテストが可能になります。
VectorCAST実行可能ハーネスの構成要素
- テストドライバー
- テスト対象となるソースファイル
- 従属関数用の完全なスタブ
- スタブ化されていない従属ユニットのソースファイル
テストハーネスはデータ駆動であり、実行時にテストデータを読み込みます。このアプローチによって、新しいテストのたびに新規の実行可能ハーネスをコンパイルし、リンクする必要がなくなります。
また、VectorCAST/Adaは、テスト対象コードに含まれる未テスト領域を表わす、コードカバレッジのメトリックも生成します。読みやすいコードカバレッジビューアーには、実行すべきテストが残っているコード行が表示されます。また、このビューアーはDO-178Bなど、さまざまな業界標準で規定されている多様なレベルのカバレッジをサポートします。
Adaでサポートされるコンパイラー
VectorCAST/Adaが生成したすべてのテストハーネスコンポーネントは、お持ちのコンパイラーを使用して自動的にコンパイルされ、リンクされます。コンパイラーのデバッガーにもインターフェイスが用意されるため、デバッガーの制御下でテストケースを実行できます。追加の設定は必要ありません。
エディション
- 完全なテストドライバーやインテリジェントなスタブ/モックなどのテストハーネスの自動生成
- テストケースの自動生成
- 型を識別するポイントアンドクリック型のテストエディター
- スクリプトベースのリグレッションテスト
- ステートメント、分岐、MC/DCカバレッジ計測のためのコード埋込み
- ソフトウェア要件とテストケースのマッピング
- コードカバレッジビューアーおよびレポート機能
- 組込ターゲットをサポートするためのVectorCAST RSPのサポート
- MISRAに対応するLint解析*
- 複数のコンフィギュレーションのテスト、Python APIによるテストデータへのアクセス、JenkinsなどのCI/CT統合のためのCLIを含む、エンタープライズテスト機能
- 変更ベーステスト
- 解析によるカバレッジ(CBA)
- フォールトインジェクションおよびホワイトボックステスト用のプローブポイント
- VectorCAST/Analytics