1

最終製品ハードウェアの Vxworks で動作する製品を使用しています。ただし、開発はクロス コンパイラを使用して Visual Studio で行われ、テスト用にハードウェアにダウンロードされます。製品の単体テスト ケースを作成する予定です。私の質問は、開発が Windows で行われているためです。実際のシナリオに似ていないため、単体テスト ケースを実行するにはどうすればよいですか?

任意の入力を歓迎します

4

3 に答える 3

1

システム コールを介して VxWorks と頻繁にやり取りするコードがあると思われます。そこに抽象化のレイヤーを入れるのは難しいでしょう。

c または c++ を使用していますか?

C++ を使用していて、システムの次の部分を特定できる場合:

  • 頻繁に変更される可能性があります。と
    • 主に内部データを処理しています。また
    • 周囲のシステムの定義済み/形式化されたサブセットに関連するだけです (たとえば、プロトコル処理または個々の PLC 制御ロジック モジュール)。

次に、最初にモジュールとシステムの残りの部分の間に c++ インターフェイスを挿入する必要があります。このモジュールは、インターフェース/アダプターにのみ関連する必要があります。次に、ビジュアル スタジオのテスト ハーネスにストラップで留めることができる分離されたピースができます。

次に、(頻繁な) 変更または監査の対象となる、バグが発生しやすいシステム内の領域を特定するように努める必要があります。ターゲット システムで 50% のカバレッジを達成することはおそらくないでしょうが、コード ベースの 40% をカバーする範囲内で毎日のコーディングの 90% が行われるシステムを達成することはできます。

于 2012-04-25T06:41:53.600 に答える
0

他のシステムと同じように行います。

  • 単体テストを書く
  • コンパイルしてターゲットシステムにロードする
  • 単体テストを実行する
  • 結果を確認する

それが実行される場所は重要ではありません。最大の問題は、出力機能が制限された組み込みシステムです。ただし、LEDが1つしかない場合でも、成功と失敗を通知できるはずです。それだけが「合格」を示すよりも少し抽象的なものです。

于 2012-04-25T06:44:34.960 に答える
0

追加の労力なしでは不可能です (新しいプロジェクト。2 回コンパイルします。ホスト用に実行し、ホストで実行します)。この場合、単体テストのターゲットをサポートする開発環境を検索します (例: http://www.parasoft.com )。 /jsp/products/embedded_cpptest.jsp

parasoft C++ 単体テストの質問 を読み進めてください。

于 2012-04-25T06:08:39.760 に答える