3

私は、開発環境とターゲット環境がまったく異なるプロジェクトに取り組んでいます。ターゲット環境にはさまざまな周辺機器、IO カードなどがあり、私のプロジェクトではこれらの周辺機器を頻繁に使用しています。私の開発環境にはこれらの周辺機器がありません。したがって、私の開発ボックスでの単体テストは、ほとんどの場合役に立ちません。

私は Eclipse CDT とリモート デバッグ プラグインを使用しており、ネットワーク経由でデバッグしています。単体テストをより有効に活用したいと考えており、上記の事実に基づいて、最適なオプションは何かを考えています。これまでのところ、追加する新機能ごとにテスト プログラムを作成し、リモート デバッグでテストしていますが、テストの作成とテストの実行に多くの時間がかかるため、非効率的なテスト方法のように思えます。

助言がありますか?

4

1 に答える 1

1

この環境では、高価なツールなしで実行することは非常に困難です。最善の解決策は、これまでと同じようにテストプログラムを作成することだと思いますが、それらをすべて1つのプログラムにまとめて、一度起動すれば、手動で介入することなくすべてのテストを実行できます。これにはBoostTestライブラリを使用します。

本当の鍵は、テストを自己チェックできるようにテストを作成する方法を理解することです。結果を手動で検証する必要があるようなことをテストコードに実行させたくありません。これは、ターゲット環境の周辺機器からの出力を監視し、テストコードが送信することになっているものと一致しない場合に文句を言う、他の場所で実行されている2番目のプログラムがあることを意味する場合があります。テストは、結局のところ、何かがクラッシュしないことを証明するだけでなく、正確さを検証することを目的としています。

そしてもちろん、テストもインテリジェントに作成する必要があります。通信プロトコルとネットワークドライバーを設計している場合、正しいバイトがネットワークポートから送信されていることを確認するためにリモートテストコードが必要になる場合がありますが、通信プロトコルをテストするためにこれは必要ありません。テストコードは仮想ネットワークデバイスを作成し、その上でプロトコルテストを実行できるため(開発環境でも実行できます)、開発環境でハードウェアドライバーを除くすべてをローカルでテストできるはずです。

于 2012-05-17T05:37:51.050 に答える