如何为图形库编写测试?

时间:2012-01-25 09:24:40

标签: unit-testing graphics integration-testing

我正在用Python编写OpenGL 2D库。一切都很顺利,代码库正在稳步增长。

现在我想编写单元测试,以便在修复其他/创建新功能时不会意外地引入新错误。但是我不知道它们如何与图形库一起使用。

我想到的一些事情:

  • 制作参考屏幕截图并将其与测试中自动生成的屏幕截图进行比较
  • 用日志记录语句替换opengl调用并比较日志

但两者似乎都是个坏主意。测试图形库的常用方法是什么?

2 个答案:

答案 0 :(得分:4)

我过去用于组件级别测试的方法是:

  • 使用均匀的彩色背景,有几种不同的颜色。
  • 在测试中使用统一的彩色矩形作为图形对象(使用几种不同的颜色)。
  • 将矩形放置在已知位置,您可以自己计算图像中的投影位置。
  • 计算每个像素(背景,前景或混合物)的每个通道的预期强度。
  • 如果您的测试方案导致非圆位置,请使用不准确的比较(例如相关性)
  • 使用计算来创建预期结果图像。
  • 将输出图像与预期结果图像进行比较。
  • 如果您有模糊效果,请比较强度之和而不是离散强度。

正如格雷厄姆所说,内部单位可以进行单元测试,不受图形调用的影响。

答案 1 :(得分:2)

进一步分解。

使图形的调用依赖于算法 - 测试算法。