最終製品ハードウェアの Vxworks で動作する製品を使用しています。ただし、開発はクロス コンパイラを使用して Visual Studio で行われ、テスト用にハードウェアにダウンロードされます。製品の単体テスト ケースを作成する予定です。私の質問は、開発が Windows で行われているためです。実際のシナリオに似ていないため、単体テスト ケースを実行するにはどうすればよいですか?
任意の入力を歓迎します
最終製品ハードウェアの Vxworks で動作する製品を使用しています。ただし、開発はクロス コンパイラを使用して Visual Studio で行われ、テスト用にハードウェアにダウンロードされます。製品の単体テスト ケースを作成する予定です。私の質問は、開発が Windows で行われているためです。実際のシナリオに似ていないため、単体テスト ケースを実行するにはどうすればよいですか?
任意の入力を歓迎します
システム コールを介して VxWorks と頻繁にやり取りするコードがあると思われます。そこに抽象化のレイヤーを入れるのは難しいでしょう。
c または c++ を使用していますか?
C++ を使用していて、システムの次の部分を特定できる場合:
次に、最初にモジュールとシステムの残りの部分の間に c++ インターフェイスを挿入する必要があります。このモジュールは、インターフェース/アダプターにのみ関連する必要があります。次に、ビジュアル スタジオのテスト ハーネスにストラップで留めることができる分離されたピースができます。
次に、(頻繁な) 変更または監査の対象となる、バグが発生しやすいシステム内の領域を特定するように努める必要があります。ターゲット システムで 50% のカバレッジを達成することはおそらくないでしょうが、コード ベースの 40% をカバーする範囲内で毎日のコーディングの 90% が行われるシステムを達成することはできます。
他のシステムと同じように行います。
それが実行される場所は重要ではありません。最大の問題は、出力機能が制限された組み込みシステムです。ただし、LEDが1つしかない場合でも、成功と失敗を通知できるはずです。それだけが「合格」を示すよりも少し抽象的なものです。
追加の労力なしでは不可能です (新しいプロジェクト。2 回コンパイルします。ホスト用に実行し、ホストで実行します)。この場合、単体テストのターゲットをサポートする開発環境を検索します (例: http://www.parasoft.com )。 /jsp/products/embedded_cpptest.jsp
parasoft C++ 単体テストの質問 を読み進めてください。