最近我读了一些关于验收测试的好处的一些疑问的文章,因为与它带来的相比它是相当昂贵的.为了形成我自己的观点,我想尽可能多地收集自动验收测试的好处.你能帮助我吗?
一般而言,自动化测试是有道理的,条件是在产品寿命期间建立和维护自动化测试的总投资低于在产品使用寿命期间进行手动测试的总投资.
因此,与手动运行测试相比,如果创建测试的成本非常低,自动化测试会变得更有吸引力(例如,在您基本上创建电子表格的情况下进行适合性测试),或者如果测试的执行数量足够大抵消成本差异.
单元测试运行良好,因为有足够多的执行次数 - 每次轻微的更改或重构都要确保没有新的故障.
验收测试更为严格,因为重复执行的可能性因项目而异,业务需求会影响长期支持和维护问题.
如果项目一旦通过验收测试就交付,并且没有进一步的支持或更改,那么自动验收测试可能没有意义,除非生成自动化测试非常便宜.
另一方面,如果人们预计未来的发布(甚至是同一客户)或长期支持合同,那么初始投资可能会随着时间的推移而变得值得.
我们公司为各种客户生产交易系统和算法,新功能和产品建立在旧的基础之上.手动运行所有测试的成本非常高,我们正在努力为之前手动测试的许多场景添加自动验收测试.
跟进:
恕我直言,首先必须有非常清晰和完整的逐步测试计划(一个优秀的QA人员或团队在这里至关重要).在验收测试的情况下,客户可以提供他们自己或QA必须提供给他们的客户.我认为测试计划通常应该是合同的一部分.
一旦你拥有它,就可以更容易地估计人类运行它需要多长时间(你可以试验一个人来找出它).重要的是要注意哪些步骤需要"笨拙的工作",以及哪些步骤需要真正的人为输入或自由裁量权.
这是一个重要的区别.例如,假设您正在构建绘图程序.如果你告诉人类在特定坐标中绘制线条,这可以很容易地自动化.但是,如果您的步骤说:"确认形状是一朵花",人类可以轻松地完成它,但几乎不可能实现自动化.许多测试用例可以是半自动化的.您为用户输入留下"钩子",让测试人员专注于这些.按钮启动一系列操作,并向用户显示"输出的输出是否正确?".
我的经验是,自动化的成本非常直观.但是,通常需要修改现有程序以使其更易于测试.例如,在上面的示例中,如果您有一个允许您向画布添加行的API,那么事情就很棒了.如果你必须编写一个将逻辑坐标转换为屏幕的鼠标机器人,那就更长了.