手动测试和自动化测试之间的选择策略受到多种因素的影响,包括成本、目标、功能的稳定性和可用的劳动力资源。
背景: 在自动化的初期,人们认为目标应该是100%自动化测试的覆盖率。后来人们意识到并非所有的检查都应该自动化——有些任务手动执行更简单、更快速且更便宜。
问题: 自动化只有在频繁和重复执行相同场景时才有益。一些一次性、快速变化或主观(视觉、用户体验)检查更容易手动完成。在试图 "自动化一切 "的过程中,预算会迅速膨胀,而收益则会丧失。
解决方案: 首先,应优先自动化以下内容:
手动测试适用于:
关键特点:
在项目中是否可以通过自动化所有测试获得收益?
不可以,因为许多测试在能够收回投入的努力之前就会发生变化,而维护自动化的成本会高于手动执行这些测试的成本。
在生产环境发布时手动测试是否是必要的?
是的,因为某些任务(尤其是与UI/UX和视觉回归相关的任务)很难或不可能被有效自动化。
自动化一次性/探索性任务的测试是否划算?
不划算,因为自动化需要的时间和资源在一次性或少用的测试中是无法收回的。
团队决定自动化所有手动测试用例,包括在非标准设备上的跨浏览器检查和布局的视觉验证。结果,在几个月内花费了数百小时来维护不再适用的测试。
优点:
缺点:
团队与经理一起确定了对业务至关重要的场景(注册、支付确认),并稳定地进行了自动化;其它的则手动测试或部分测试(使用探索性测试)。
优点:
缺点: