最近我读了一些关于验收测试的好处的一些疑问的文章,因为与它带来的相比,这是非常昂贵的。为了形成我自己的观点,我想尽可能多地收集自动验收测试的好处。你能救我吗?
答案 0 :(得分:8)
一般而言,自动化测试是有道理的,条件是在产品生命周期内建立和维护自动化测试的总投资低于在产品使用寿命期间进行手动测试的总投资。
因此,与手动运行测试相比,自动化测试变得非常便宜(例如,基本上可以创建电子表格的适合测试),或者如果有足够多的执行次数,则自动化测试变得更具吸引力。测试以抵消成本差异。
单元测试运行良好,因为有足够多的执行次数 - 每次轻微的更改或重构都要确保没有新的失败。
验收测试更为严格,因为重复执行的可能性因项目而异,业务需求会影响长期支持和维护问题。
如果项目一旦通过验收测试就交付,并且没有进一步的支持或更改,那么自动验收测试可能没有意义,除非生成自动化测试非常便宜。
另一方面,如果有人预计未来发布(甚至是同一客户)或长期支持合同,那么初始投资可能会随着时间的推移而变得值得。
我们公司为各种客户生产交易系统和算法,新功能和产品建立在旧的基础之上。手动运行所有测试的成本非常高,我们正在努力为之前手动测试的许多场景添加自动验收测试。
跟进:
恕我直言,首先必须制定非常明确和完整的逐步测试计划(一个优秀的QA人员或团队在这里至关重要)。在验收测试的情况下,客户可以提供他们自己或QA必须提供给他们的客户。我认为测试计划通常应该是合同的一部分。
一旦你拥有了它,就可以更容易地估计人类运行它需要多长时间(你可以试验一个人来找出它)。重要的是要注意哪些步骤需要“笨拙的工作”,以及哪些步骤需要真正的人为输入或自由裁量权。
这是一个重要的区别。例如,假设您正在构建绘图程序。如果你告诉人类在特定坐标中绘制线条,这可以很容易地自动化。但是,如果您的步骤说:“确认形状是一朵花”,人类可以轻松地完成它,但几乎不可能实现自动化。 许多测试用例可以是半自动的。您为用户输入留下“钩子”,让测试人员专注于这些。按钮启动一系列操作,并向用户显示“输出的输出是否正确?”。
我的经验是,自动化的成本非常直观。但是,通常需要修改现有程序以使其更易于测试。例如,在上面的示例中,如果您有一个允许您向画布添加行的API,那么事情就很棒了。如果你必须编写一个将逻辑坐标转换为屏幕的鼠标机器人,那就更长了。
答案 1 :(得分:3)
自动化有哪些好处 验收测试?
我经常是一个单人店,所以从我的角度来看,主要的好处是让机器代替我。
答案 2 :(得分:3)
编写自动验收测试可以获得很大的好处。特别是,它将:
虽然您现在可能对该应用程序100%熟悉,但请尝试将其放置几个月或几年,然后再回到它进行更改。相信我,能够运行一系列测试来证明你的新变化没有破坏任何东西要容易得多。
最后,考虑在编写代码之前编写验收测试,ala Test Driven Development时尚。这不仅可以为您提供更好的代码,还可以在您完成后获得完整的测试套件覆盖率。
不要自欺欺人地花钱。是的,编写和维护自动验收测试套件需要时间,精力和精力。但是这比没有测试的替代品更便宜,并且不知道如果你改变一些东西会发生什么以及它会产生什么样的撞击效果。您的客户信心值多少钱?发布错误后修复错误的实际成本是多少?