1.前言
自动化在改进软件开发方面有很大的潜力,然而不幸的是,自动化往往被视为一种奢侈品。 自动化测试的优先级较低,并且自动化测试计划总是被手工测试累计的大量工作无限期推迟。 自动化确实需要大量的资源投资,然而,尝试使用自动化测试会让你们的工作得到改善。如果一开始就不自动化测试,会发生什么呢?
2.时间
自动测试将自动运行,手动测试必须手动运行。如果只运行一次测试,那么自动化就没有投资回报。 但是,如果多次运行测试,自动化可以避免测试人员重复自己的测试。 另外,这很简单,按下按钮,等待结果。自动化测试几乎总是比手动测试运行得更快。考虑到时间就是金钱,大量手工测试人员的工资也不便宜,实现自动化可以一劳永逸。
3.覆盖范围
自动化测试可以实现比手动测试更大的覆盖率,特别是对于回归测试。 随着产品开发的进展,测试用例的数量也在不停的增加。旧的测试必须定期运行,以验证新功能不会破坏现有功能。 如果回归测试是手动的,那么测试人员必须在重复进行相同测试的过程中耗费数小时,在大型项目中,甚至需要几天。 为了赶上上线时间,他们会跳过了一些测试,不是因为偷懒,而是上线时间基本不会因为测试而推迟。 为了缩短测试时间,跳过用来会增加线上 bug 的风险。如果这些回归测试是自动化的,那么就没有理由缩小覆盖范围,因为它们很容易运行。
4.一致性
人会犯错,没有人是完美的。手动测试很容易出现人为错误,因为是由人运行的。 而代码和机器更容易保持一致性,他们没有感性,不会因为几天没睡觉而反应迟缓,也不会因为失恋就拒绝工作。
5.持续集成
持续集成(CI)通过实时构建和测试每个代码更改来保护代码不受缺陷的影响。 CI 系统将始终自动触发测试,这能将整个流程标准化。
6.交付
持续交付(Continuous delivery,CD)是持续集成的延伸,在这种集成中,软件产品可以作为 CI 管道中的最后一步自动交付(甚至可能部署)。 整个上线过程甚至都不需要人工值守,你再也不用每周二熬夜加班了。
7.测试结果
自动化测试会产生更准确和更全面的结果,并且自动生成测试报告,自动化还可以生成测试报告,测试人员不需要浪费时间编写邮件,或者进行填字游戏。
并且手工测试的结果通过可以伪造,而自动生成的数据则不会说谎。
8.创新
手动测试可能会演变为重复的体力劳动:只需反复执行步骤即可。 对于测试人员来说,可以把这些重复工作直接交给机器,专注于探索性测试而不是确定性测试将更加有效。 虽然自动化测试可以覆盖固定的、重复的测试场景,但探索性测试可以让测试人员找到创造性的方法来发现缺陷并判断产品的实际工作情况。
9.心安
使用自动化测试能让测试人员有更深入的研究领域,让他们有一个更好的职业发展。