これはこの質問のフォローアップです。科学的アルゴリズムのライブラリがあるときに、ユニットテストを行う方法を尋ねていました。現在、同様の問題がありますが、プロジェクトが異なります。
私は、DirectX、OpenGl、WebGl、Silverlight、WPFの3Dグラフィックエンジンフレームワークの抽象化に取り組んでいます。シナリオは次のとおりです。このプロジェクトは、同じオフィスで作業している私の同僚の小さなチームによって開発されています。私たちは皆、コンピューターサイエンティストであり、ソフトウェアエンジニアリングコミュニティや実践にはあまり関与していません。SubversionからGitに切り替えて、プロジェクトをCodeplexに公開することを説得するのに苦労しました。プロジェクトは大きくなり(C#の約80K行)、現在はShader Model 5.0までのほとんどのDirectXとOpenGlをカバーしているため、リンクされた質問で説明されているような1人のプロジェクトではありません。また、オープンソースコミュニティとのコラボレーションを促進したいと考えています。
これまでのところ、すべてのデバイスとリソースの初期化、シーンの設定、描画を含む小さなアプリケーションを作成してテストしてきました。問題は、それを異なるものにする方法がわからない、つまり、リソースの割り当て、プリミティブテセレーション、シェーダーコンパイルなど、フレームワークの特定の機能をテストする小さなテストケースを設計する方法です。エンジン全体の初期化。これらのケースのいくつかでは、便利なモックを考えることができますが、一般的に、出力がビジュアル(イメージ、またはアニメーションシーン)の場合、レンダリングアルゴリズムの正確さをどのようにテストできますか?現在、私たちが考え出した最も賢いことは、同じシーンをソフトウェアレンダラーであるDirectXとOpenGlにレンダリングし、それらをピクセルごとに比較することです。
では、ここでの「正しい」テストアプローチとは何でしょうか。