2009-05-25 16 views
1

私は、ユーザーの一連の財務計算を実行するJava Webアプリケーションを開発しています。財務計算が実行されると、約30年の異なる入力が、最大18年間(最大15 * 18期待値)にわたって15の異なる値を計算するために使用されます。ご存じのように、計算して検証するには相当量の情報があります。複雑なデータのシナリオをテストする

私が探しているのは、テストデータを準備する方法(30種類の入力をシミュレートする)、一連のオブジェクトにロードする方法、および計算を介してオブジェクトを実行して出力を生成する方法です期待値。

私はデータベースをスタブしようとしましたが、これは終わりにとなりました。すべてを嘲笑することはちょうど退屈であるように思える。可能であれば、外部データベースの依存関係を避けたいと思います。

+0

このパズルのもう1つの要素は、オブジェクトグラフがルートオブジェクトから深くいくつかのレイヤーを実行することです。 すべてのデータシナリオと出力はエキスパートによって事前に定義されていますので、現時点では何も情報を動的に生成しません – rynmrtn

答えて

0

Dbにデータがあり、テストの実行が外部dbに依存しないようにテストデータを作成したい場合は、DbUnitフレームワークを見て、サンプルデータをDB。 これらのXMLは、テスト目的で使用できます。これらのXMLは、commanly利用可能なパーサの数によってjavaオブジェクトに簡単に変換できます。

+0

DBUnitを使用しましたが、良いサンプルコードのチュートリアルを提供できましたか? – rynmrtn

+0

まあ、私はかなり中規模のプロジェクトでDbUnitを使いました。彼らはNet上で利用可能なチュートリアルのカップルです。また、 "Java Power Tools"の本を見ることができます。DbunitのJohn Ferguson Smart章。 まだ問題が見つかったら、サンプルチュートリアルを書くことができます。 – Khangharoth

0

プールから無作為に値を選択し、それらの入力を組み立てるファクトリを使用することをお勧めします。あなたはそのようにしたい人数から多くの候補者を生成することができます。期待される結果と共にそれらを維持する。データベースがあなたの好みに合っていない場合は、おそらくXMLまたはプレーンテキストのシリアル化が行われます。

TDDを実行する場合、いくつかを実行して、期待される結果が何であるべきかを確認することができます。彼らが大丈夫であることを確認する手計算でいくつかをチェックしてください。次に、ファクトリを使用して、必要な大きさのテストセットを生成します。

1

FitNesse(http://fitnesse.org/)のように聞こえるかもしれません。入力と期待される出力を使って、FitNesseでhtmlテーブルを設定します。テストを実行すると、FitNesseは実際の出力が期待される出力と一致するかどうかを知らせます。

+0

私はこの問題を今日解決しています。 – rynmrtn

1

私は、入力パラメータごとに数値制限(境界値)、現実的な値、およびゼロの値を識別します。それから私はallpairsアルゴリズム(http://www.satisfice.com/tools.shtml)を使ってそれらをすべて組み合わせます。

関連する問題