使用 Fit/FitNesse 代替 xUnit 风格的集成测试有什么意义?在我看来,它的语法非常奇怪且非常不清楚。

难道真的只是为了让产品负责人写测试吗?他们不会!这对他们来说太复杂了。那么为什么每个人都应该Fit/FitNesse呢?

更新 那么它完全适合仅业务规则测试吗?

有帮助吗?

解决方案

重点是工作 非程序员,通常甚至是完全非技术人员,例如业务应用程序的潜在用户,了解应用程序应该做什么,然后将其投入测试。虽然进行测试对他们来说确实太复杂了,但他们应该能够讨论填写的示例数据表,例如单词。最棒的是,与传统规范不同,这些文档与您的应用程序一起存在,因为自动化测试迫使您更新它们。

健身简介适合工作流程 作者:James Shore,如果需要,请点击其余文档的链接。


更新: 取决于你所说的业务规则是什么意思?;-) 有些人会非常狭隘地理解它(例如业务规则引擎等),而其他人则非常广泛。

在我看来,Fit 是一个工具,允许您在文档中写下业务(如在领域中)用例以及丰富的实际示例,最终用户或领域专家(在某些领域)可以理解、验证和讨论。同时,这些示例是机器可读的形式,因此它们可以用于驱动自动化测试,您既不需要完全自己编写文档,也不需要要求他们这样做。相反,它是仔细讨论和讨论的产物,反映了双方对应用程序将要做什么的理解不断加深。随着您的进步,示例会变得更加丰富,并且解决了更多的极端情况。

重要的是应用程序将做什么,而不是如何做。这是功能规范的一种形式。因此它相当广泛,并不是真正按模块组织的,而是按使用场景组织的。

从示例中得出的测试将在从业务角度来看重要的方面测试应用程序的外部行为。是的,您可以称之为业务规则。但让我们看一下迭戈·扬西奇的信用评分示例,只是稍作改动。如果 fit 文档的一部分是 1) 列出属性及其分数,然后 2) 提供客户数据和检查结果,那么哪些是实际的业务规则:评分表(属性及其分数)或应用程序逻辑计算每个客户端的分数(基于评分表)?哪些是经过测试的?

Fit/FitNesse 测试似乎更适合验收测试。其他测试(当您不关心与客户、用户、领域专家等的合作时,您只想自动化测试)可能会更容易以更传统的方式编写和维护。xUnit 非常适合单元测试和 API 测试。每个 Web 框架都应该在其修改-构建-测试-部署周期中集成一些用于 Web 应用程序/服务测试的工具,例如。django 有它的小测试客户端。你有很多选择。

而且您始终可以编写自己的工具(或者最好调整一些现有的工具)以更好地适应(双关语)您感兴趣的特定领域中的某些测试。


还有一个普遍的想法。通常(并非总是!!!)更好地以某种形式的明确定义的数据对您的测试、“业务规则”和任何东西进行编码,并由一些简单的通用代码片段进行解释。然后很容易以其他方式使用数据:生成文档,迁移到新的测试框架,将应用程序移植到新的环境/编程语言,用于检查与某些外部规则或其他系统的一致性(只需发挥您的想象力)。从代码中提取此类信息要困难得多,例如。简单的硬编码单元测试或业务规则。

Fit 将测试用例存储为数据。由于其用途,采用非常具体的格式,但仍然如此。您的特定领域测试可能使用不同的格式,例如简单的 CSV、JSON 或 YAML。

其他提示

的想法是,你(程序员)定义了一个易于理解的格式,诸如Excel工作表。然后,产品拥有者进入,是很难理解的人,是不是在该企业的信息...你只是验证你的代码工作作为PO预计动配合。 在使用的xUnit的方式,可用于程序员为易于理解或简单的信息的输入。 如果你将需要输入大量的在你的xUnit测试多个字段怪异的例子,它会变得难以阅读。

想象一下,你必须决定是否给予贷款给客户的基础上,年龄的情况下,已婚/未婚,儿童的数量,工资,活动,... 作为一个程序员,你可以不写这些信息;和一个风险管理者不能写一个的xUnit测试

有助于减少在回归和错误检测冗余。建立测试用例管理库。这就像一次构建和使用,直到永远。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top