Đây là một theo dõi cho câu hỏi này . Ở đó tôi đã hỏi làm thế nào để kiểm tra đơn vị khi bạn có một thư viện các thuật toán khoa học. Tôi có một vấn đề tương tự bây giờ nhưng với một dự án khác.
Tôi đang làm việc với một bản tóm tắt khung công cụ đồ họa 3D cho DirectX, OpenGl, WebGl, Silverlight, WPF và về cơ bản bất kỳ API 3D nào hiện có trên C #, được gọi là Rendering .NET . Kịch bản là như sau, dự án đang được phát triển bởi một nhóm nhỏ các đồng nghiệp của tôi, tất cả đều làm việc trong cùng một văn phòng. Chúng tôi là tất cả các nhà khoa học máy tính, không tham gia nhiều vào cộng đồng kỹ thuật phần mềm và thực tiễn. Tôi thậm chí đã có một thời gian khó thuyết phục để chuyển từ Subversion sang Git và xuất bản dự án trên Codeplex. Dự án đang trở nên lớn (khoảng 80 nghìn dòng C #) và hiện tại nó bao gồm hầu hết DirectX và OpenGl cho đến Shader Model 5.0, do đó, đây không phải là dự án của một người như mô tả trong câu hỏi được liên kết. Chúng tôi cũng muốn khuyến khích cộng đồng nguồn mở cộng tác.
Cho đến nay chúng tôi đã thử nghiệm bằng cách viết các ứng dụng nhỏ liên quan đến việc khởi tạo tất cả các thiết bị và tài nguyên, thiết lập cảnh và vẽ. Vấn đề là, tôi không biết làm thế nào để làm cho nó khác đi, ý tôi là, làm thế nào để thiết kế các trường hợp thử nghiệm nhỏ kiểm tra các tính năng cụ thể của khung, như phân bổ tài nguyên, tessname nguyên thủy, biên dịch shader, v.v., mà không phải tạo lại khởi tạo toàn bộ động cơ. Đối với một số trường hợp này, tôi có thể nghĩ về các giả lập hữu ích, nhưng nói chung, làm cách nào tôi có thể kiểm tra tính chính xác của thuật toán kết xuất khi đầu ra là trực quan (hình ảnh hoặc cảnh hoạt hình)? Ngay bây giờ, điều thông minh nhất mà chúng tôi đã đưa ra là kết xuất cảnh tương tự với trình kết xuất phần mềm, DirectX và OpenGl và so sánh chúng từng pixel theo pixel,
Vậy, phương pháp thử nghiệm "chính xác" ở đây là gì?