ApprovalTests.com 正在做什么样的测试,还有其他类似的框架吗?

软件测试 单元测试 用户验收测试 测试自动化框架
2022-01-23 16:24:33

我今天遇到了ApprovalTests.com框架,很好奇它是如何分类的。我熟悉单元测试、功能测试和用户验收测试的概念,但这似乎是一种不同类型的测试,因为它基于将测试输出与已由人类验证或生成的预先批准的输出相匹配。我想将其称为验证或验证测试,或者可能是自动化的用户验收测试,但我很好奇是否有一个官方术语用于使用先前批准的输出值而不仅仅是原始类型的断言的框架。

还有其他使用类似方法的框架吗?ApprovalTests 似乎与 Eclipse/Visual Studio、数据序列化器/查看器和各种 Diff 工具集成得很好,但我很想看看其他人是否以及如何完成此类测试。

3个回答

有一个称为“金大师”测试的概念,这是批准测试使用的,并试图自动化。

这个概念与单元测试、功能测试和用户接受度正交的原因是所有这些仍然通过断言原始值来进行验证。

所有测试都包含 2 个部分:

1)做

2) 验证

这些测试之间的真正区别在于“执行”部分的范围。单元测试很小,通常是 1 或 2 个方法。功能测试端到端运行,通常通过依赖边界(服务器、数据库等),而用户测试总是通过 GUI(或类似物)的“前门”来做事。

批准测试都是关于“验证”方面的事情。因此可用于所有 3 种类型的测试,以及更多(如系统特性测试)。批准允许您轻松地在更大的级别进行验证,但这并不意味着范围不重要,它只是意味着您现在可以选择如果范围更大,则无需支付更高的验证成本。

希望这可以帮助

Approvaltests.com 称它们为单元测试,所以我不会争论 :) 虽然我不确定你为什么要寻找一个硬定义。它从单元测试中获取价值,添加可读输出并对其进行截图。有点整洁的过程,可用于 UAT 并迫使开发人员使用 TDD。我认为类似的工具是 Cucumber、jBehave 和 Concordion(虽然每个都有自己的特定风格)。

我将 Approvaltest 称为Regression_tests:它验证测试的结果是否与测试的最后执行相同。

换句话说,它验证结果没有改变。