parasoft c/c++埋め込みユニットテスト:基本知識と利点


紹介する
ユニットテストは何年も存在しています.「Test early,test often」は、ユニットテストに関する口癖ですが、ソフトウェアプロジェクトごとに適切で先進的なユニットテストキットがあるわけではありません.組み込みシステムに直面すると、ソフトウェアの品質に対する要求が持続的に増加しているため、この考え方は変更する必要があります.IEC-61508-3、ISO/DIS-26262またはDO-178 B/Cのような国際規格では、必要な機能セキュリティレベルを達成するためにモジュールテストが必要です.モジュールレベルのユニットテストは、この要件を達成するのに役立ちます.しかし、機能セキュリティはコスト回収の問題だけでなく、信用を失うことになります.私たちが発表したソフトウェアが不快な事故を起こさないように、より多くの時間と精力を費やす必要があります.
この記事では、ASRの簡略化されたシミュレーションモジュールに関するユニットテストを作成し、メンテナンスし、構築し、利益を得る方法について説明します.Keil評価ボードMCBSTM 32 EとCortex-M 3 MCUを使用して、新しいULINKPro debugとtrace adapterを備えたMDK-ARM、Parasoft C/C++testを使用します.IDE/テストフレームワークの統合を最大化し、テストツール専用ホストの通信チャネルULINKProを使用して初期設定を簡素化する方法が表示されます.また、テスト能力の拡大にとって、このインストール作業がどのように重要な役割を果たすかを見ることができます.
ユニットテストの基礎知識
ユニットテストはよく知られている概念である.本質的には、単一の機能またはメソッドのクラスを含み、与えられたパラメータのセットで呼び出されます.実行が完了すると、最良の結果は予想された要求に達したことです.このようなコードの完了はテスト例となっている.検査結果は通常、断言の形式で行われます.たとえば、次の機能「foo」があるとします.
int foo (int a, int b) {
return b – a -1;
}

1つのテスト例は、次のようになります.
void test_foo ()
{
int Ret = foo(1,2);
assertTrue(ret = 0, “Wrong value returned!”);
}

メリット
ユニットテストには多くのメリットがあります.ユニットテストのケースを作成すると、開発者のレベルが低くても、高レベルの機能テストのコード部分まで実行できます.これにより、テスト担当者は「コーナーサンプル(corner cases)」をテストし、異常を処理することができます.
2つ目の重要な利点は、開発者に「テスト可能」なコードを書くように促すことです.これにより、コードは複雑にすぎず、分解しやすく、より良い全面的な設計が可能になります.
もう1つの利点は、ユニットテスト・インスタンス・スイートがアプリケーションに大きなセキュリティ・ネットワークを構築することです.コードを再構築しても古いコードを処理しても、この点は非常に重要です.通常、この場合、開発者は新しいエラーを導入することを恐れています.このセキュリティネットワークがあれば、安心してコードを修正することができます.何かエラーが発生した場合、セキュリティネットワークはすぐにアラートを発行します.これにより、生産性が向上し、より品質の高いコードを書くことができます.
最後の点も同様に重要であり、ユニットテストの例は、開発サイクルの早期にエラーを暴露することができる.統合テストフェーズでエラーを修正するのは、システムテストフェーズの後期よりもコストが少ないことはよく知られています.
上記の理由により、テスト駆動開発(TDD)の発明がもたらされる.TDDは、開発者に各機能のユニットテストケースを作成し、それを実現させる.