3

私たちが構築している一連の機器を回帰テストするためのツールを探しています。

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

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

2 回の実行の結果は完全に一致するわけではありません。バッテリーの状態に依存する、または機器の他の内部状態に依存する、いくつかのタイミングの違いがあります。

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

これは比較的単純な作業ですが、車輪の再発明や教訓を盗むことを避けるために、既存のツール/パッケージ/ライブラリを探しています。

4

3 に答える 3

2

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

今後の実行では、成功は、実行の終了後に git リポジトリがクリーンであるかどうかによって決まります。

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

おまけとして、すべての git ツールを使用して相違点を比較し、相違点が改善されたことが判明した場合はそれらをコミットして、将来の実行が成功するようにすることができます。ブランチ間のマージにも最適です。

于 2008-09-16T22:05:43.097 に答える
1

あなたのニーズにぴったり合う単一のパッケージがあるかどうかはわかりません。考慮すべき点がいくつかあります。

  1. 機器にデータを渡す方法とそれを回収する方法。これは非常にアプリケーション固有ですが、通常は適切なオプションは、どのプログラミング言語にも簡単に相互作用する古い「n」適切なシリアルポート(RS232)です。
  2. テストの実行方法。ユニットテストフレームワークは、ここで間違いなく役立ちます。既存のフレームワークには、実行するテストの選択、レポートの詳細レベルの選択など、多くの基本機能が実装されています(最初の詳細なデバッグと、後の実稼働段階のPASS / FAIL分析にとって非常に重要です)。私は、組み込みデバイスのテストから、PerlとPythonの両方のテストフレームワークを使用した良い経験をしました。
  3. また、比較の方法を決定する必要があります。あなたが正しく指摘したように、結果は等しくなりません。これがドメイン知識の出番です。通常、ドメインに適用できるエラーマージンを使用して実装されます。もちろん、基本的なdiffツールを使用することはできず、インテリジェントなスクリプトを作成する必要があります。
于 2008-09-17T16:12:25.993 に答える
0

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

テストはすべて次のようになります。

x = read_input_file(ifilename);
y1 = read_expected_data(ofilename);
send_input_file_to_server();
y2 = read_output_from_server();
checkequal(y1, y2)
于 2008-09-16T22:02:14.350 に答える