これはあなたのほとんどのための非常に素朴な質問かもしれませんが、私はそれで混乱しています。
いくつかのプログラムのテストケースを設計する必要がある場合、期待される価値/結果がどのようなものかをどのように知るのでしょうか。プログラムはいくつかの複雑な計算を行い、複雑なアルゴリズムを使用して最終的な出力を計算しますが、これは他の手段で計算することはできません。たとえ同じ入力を別の手段で計算してからその平均値を期待値として使用して元のプログラムをテストしても、別のプログラム/プログラムから計算された期待値が、プログラムがまたテストされなければならないことを確かめるために、正しいものだったので、正方形に戻ってきました。
あなたの質問は、「オラクル」問題と呼ばれるソフトウェアテストで最も難しい問題になります。
テストをサポートするために、テスト入力に期待される結果の信頼できるソースを提供したいと考えています。ほとんどのテストシナリオでは、これは本質的に、テスト対象システムの完全なバグのない実装と同等であることを意味します。もちろん、もしそれがあれば、おそらくSUTの開発とそのテストをスキップすることができます。
しかし、それは通常そうではありません。したがって、テストケースの期待される結果を生成するための多くの実用的な(そしていくつかのエキゾチックな)戦略があります。これは、スプレッドシートを使用して関数を計算したり、結果を知っているいくつかのクエリを選んだり、既存の同等または類似のシステムの出力をテスト中のシステムの出力と比較したりするのと同じくらい簡単です。
私の本テストオブジェクト指向システムの第18章では、oraclesのための16のテストデザインパターンを提供しています。そのほとんどは自動化が可能です。
This page gives a summary of the book and links to Amazon http://www.robertvbinder.com/home/thought-leadership/books/
ボブ