22.自动验收测试

“很好,你现在用单元测试来验证代码是否完成了你期望的行为,发给客户吧。我们很快会知道这是否算是用户期望的功能。”

你于用户一起工作,开发他们想要的功能,但现在,你要能确保他们得到的数据库是正确的,至少在用户看来它是正确的。

几年前,Andy做了一个项目,在项目中,他们的行业标准规定凌晨12:00点式一天的最后一分钟,在12:01是一天的最早一分钟(一般情况下,商业计算机系统任务凌晨11:59是一天的最后一分钟,12:00是一天的最早的一分钟)在验收测试的时候这个很小的细节导致一个严重的问题——无法进行正确的合计。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

关键业务逻辑必须要独立精细严格的测试,并且最后需要通过用户的审批。

但你也不可能拉这用户,逐一检查每个单元测试运行结果。实际上你需要能自动比较用户期望和实际完成的工作有一个办法是可以是验收测试不同意单元测试你应该让用户在不必学习编码的情况下,根据自己的需要进行添加,更新和修改数据,你有很多方法来实现它。

Andy使用了一下架构,把测试数据放到一个页面文件中并且用户可以直接修改这些实际。Venkat实现Excel做过类似的事情,根据环境的不同,也可以找出一种能然偶那个号自然接收的方法(数据可以在页面的文件Excel 文件,数据库中)。或者可以考虑选择一个现成的测试工具,它们会会你完成很多功能。

FIT,即集成测试框架,它很实用,可以更容易的使用HTML表格定义的测试用例,并比较测试结果的数据。

中运行,你也需要测试他们。

阅读 ‧ 电子书库

使用FIT,客户可以定义带有新功能的使用样本,客户,测试人员和开发人员(根据样本)都可以成绩表格,为代码描述可能的输入和输出值,开发人员会参照带有正开发的代码结果在FIT表格中的样本编写测试代码,测试结果成功或者失败都会显示在HTML教程页面中,用户可以很方便的查阅。

如果领域专家提供了业务的算法,运算后者方程式,为他们实现一套可以独立运行的测试(参考第136页习惯35)。要让这些测试都成为测试套件的一部分,你会在项目生命周期保持实现为他们提供正确的答案。

为刻心的业务逻辑创建测试。让你的客户单独验证这些测试,要让他们像一般的测试一样可以自动运行。

切身感受

它像是协作完成的单元测试:你仍然是在编写测试,但从其他人那里获取答案平衡的艺术? 不是所有客户都恩能够给你提供正确的数据,如果他们已经有了正确的数据,就根本不需要新的系统了。

? 你也许会在酒系统(运行时电脑系统,也是是人工系统)中发现一起根本不知道的bug,或者一起不存在的真正的问题? 是客户的业务逻辑,但是不要陷于无边无际的文档写作之中。