想要一些有关“黄金测试”的一般信息

Jeo*_*hum 5 testing regression

我想知道什么是“黄金测试”。

在我的调查中,有一个黄金档案,这是预期的结果。每日回归测试将今天的输出文件与黄金文件进行比较。

  1. 有人可以解释一下黄金测试的理论吗?

  2. 实际上我该如何实施这个测试程序?

    • 我还想要推荐的框架库。
    • boost.Test 是否涵盖此类测试?

非常感谢!提前。

小智 0

有人可以添加用于实施黄金测试的框架,因为我对此了解不多。我可以概述一下这个理论。

黄金测试就像普通测试一样,您运行某些内容并期望它生成指定的输出。它用于系统与所有外部资源(如服务和数据库)交互的集成测试。S让我们考虑一下接受输入I、进行一些计算并输出的系统的名称O

输入 的输入S是固定的。让我们将其命名为S_fix我们将其存储在某个地方并将其称为golden input(我们可以将golden视为常量的同义词)。每次执行黄金测试时S_fix都会被输入。S

输出 系统S进行处理和输出,我们已经根据我们提供的输入O知道应该输出什么S(我们称之为输出)。我们将这个预期输出存储在某个地方,并将其称为黄金输出。现在,当前执行的输出是。我们的期望是。如果是这种情况,那么我们可以假设它工作正常。O_goldenISO_currentO_golden = O_currentS

**O_current != O_golden** 如果当前输出与黄金输出存在差异(当前输出不等于我们期望的输出),可能有2种情况:

  1. 我们知道 发生了一些变化,S并且预期输出会发生变化,并且当前输出S是应该预期的(不是黄金输出O_golden)。在这种情况下,我们必须更新 to,O_golden因为O_current预期输出会因 S 的变化而改变。这个过程称为golden update
  2. 我们期待着O_current = O_golden,但事实并非如此。这说明一定存在某种缺陷S。在这种情况下,我们必须验证最近的更改S可能导致输出发生变化。

黄金测试通常在系统中添加新更改之前运行,以便该测试监控系统中的每个更改。

我们可以根据我们的需要配置 diffO_current和。O_golden工具通常提供一个配置文件来填充以进行比较。有时,系统的输出还包含时间戳或取决于执行时间的数据或与系统无关的任何内容。因此,输出中会有差异,O_current并且O_golden输出是否包含此类数据。如果不需要,我们可以将比较过程配置为忽略特定类型的数据。