0

私の現在のプロジェクトはかなり複雑で、多くの計算を行っていますが、その結果は事前にはわかりません。単体テスト (JUint) を作成しようとしています。私は現在、すでに書いたいくつかのテストを持っており、その結果を手で見て、それらが正しいように見えるかどうかを確認していますが、私のプログラムは複雑な数学の結果を決定する方法であるため、そうではありません正確性を確認する方法を本当に確信しています。

コードの非常に小さな部分をテストするための単体テストは他にもありますが、より大きな部分のテストを作成する方法がわかりません。誰にも考えやガイドラインはありますか?

もう少し詳しく、それは 1 つの番号ではありません。それは、「入力: 100,000 行の csv データ」出力「100,000 行の csv 分析」のようなものです。しかし、行は互いに依存しているため、10 行の csv データに対してコードを実行しても意味のある計算を行うには十分ではありません。

4

4 に答える 4

1

特定の入力を選択し、それらの入力に対して期待される結果を得ることができる必要があります。いくつかのテスト ケースの結果を手動で作成できない場合は、テストしている部分を複数のテスト可能な部分に分割する必要があります。テストとテスト対象の項目で異なる手法を使用して、数学の問題を解くこともできます。これに関する問題は、それらが異なる場合、どちらが間違っているかということです..しかし、少なくとも何を探すべきかはわかっています。

于 2013-04-09T21:18:12.930 に答える
0

これは、実行している数学の種類に大きく依存します。たとえば、微分方程式を解く場合、半分のステップ サイズで同じ答えが得られることを確認するか、結果を逆オイラー法などの既知の正確な (しかし遅い) 方法と比較します。

あなたがしている数学の種類を知らなくても、倍精度演算を使用していると思います。結果を BigDecimal などの任意精度ライブラリと比較して、丸め誤差や切り捨て誤差が多く発生していないことを確認してください。

于 2013-04-09T21:18:25.917 に答える