2008-09-16 17 views
3

私が構築している一連の機器を回帰テストするためのツールを探しています。ブラックボックス回帰テストのテストフレームワーク

現在のコンセプトは、テスト対象のシステムへの入力を指定する入力ファイル(text/csv)をツールに作成することです。ツールは、システムからの出力をキャプチャし、入力と出力を出力ファイルに記録します。

出力は、元の入力ファイルと同じ形式であり、計測された出力を以前の実行からの値と一致させて、ツールの次の実行の入力として使用できます。

2回の実行結果は正確には一致しません。バッテリの状態に依存するか、または装置の他の内部状態によって異なるタイミングがあります。

ツールからのコマンドを機器に渡し、機器の出力をキャプチャするために、独自のインタフェースを記述する必要があります。

これは比較的簡単な作業ですが、ホイール/スチールレッスンの再発明を避けるため、既存のツール/パッケージ/ライブラリを探しています。

答えて

0

すべてのテストフレームワークを使用できます。難しいのは、実際の文字列の比較ではなく、テストシステムからデータを送信/取得するためのツールを作成することです。

あなたのテストはちょうどすべて次のようになります。

x = read_input_file(ifilename); 
y1 = read_expected_data(ofilename); 
send_input_file_to_server(); 
y2 = read_output_from_server(); 
checkequal(y1, y2) 
2

を私は最近、gitの(http://git.or.cz/)の上に、このようなシステムを構築しました。基本的には、すべての入力ファイルをサーバーに送信し、出力を読み戻して一連の出力ファイルに書き込むプログラムを作成します。最初の実行の後、出力ファイルをgitにコミットします。将来の実行のために

、あなたの成功は、gitリポジトリは、実行が終了した後、クリーンであるかどうかによって決定されます。ボーナスとして

test 0 == $(git diff data/output/ | wc -l) 

、あなたは違いを比較するために、すべてのgitのツールを使用して、あればそれらをコミットすることができます違いが改善されたことが判明したので、将来の実行には合格します。また、ブランチ間をマージする際にも効果的です。

+0

これは独創的な方法です。 – kizzx2

1

あなたのニーズに正確に合ったパッケージが1つあるとは思えません。

  1. データを装置に渡す方法と戻す方法を教えてください。これは非常にアプリケーション固有のものですが、通常、良い選択肢は、プログラミング言語に簡単なinterfactが存在する古いシリアルポート(RS232)です。
  2. テストの実行方法。ユニットテストのフレームワークは間違いなくここであなたを助けることができます。既存のフレームワークには、実行するテストの選択、レポートの詳細レベルの選択(最初に詳細なデバッグ、後の生産段階のPASS/FAIL分析で非常に重要)など、多くの基本機能が実装されています。 PerlとPythonの両方のテストフレームワークを使用して、組み込みデバイスをテストした経験がありました。
  3. また、比較の方法も決定する必要があります。あなたが正しく述べたように、結果は等しくはありません。これはあなたのドメインの知識が得られる場所です。通常、あなたのドメインに適用されるエラーマージンを使用して単純に実装されます。もちろん、基本的なdiffツールを使用することはできず、知的なスクリプトを作成する必要があります。
関連する問題