【测试基础】三、为什么要做自动化测试?哪种项目合适?

简介: 【测试基础】三、为什么要做自动化测试?哪种项目合适?

又要聊到自动化了,感觉现在不管是主动或者被动,“自动化”已经是我们测试人员避不开的话题了。


主动,你觉得需要做一些测试提效,于是你去学习了解,并在工作中应用。


被动,或许你想换份工作了。当你打开各公司的招聘JD,又会看到“自动化”,还是得去学习了解。


1268169-20210710173021161-1192835716.png


一、什么是自动化测试


我的理解是:能代替我们手工测试的行为


比如常见的Web自动化和接口自动化,就是代替我们人工去执行页面操作和接口的操作,并且还要可以验证结果是否符合预期。


二、为什么要做自动化测试


自动化近几年之所以大受追捧(趋之若鹜),肯定还是有它的优势的:


  • 可以替代大量重复性工作,测试人员可以有更多时间投入到新功能、或者更全面的用例设计上。
  • 可以大幅提高回归测试效率,非常适合敏捷开发过程。
  • 可以更好地利用无人值守时间,去更频繁地执行测试,特别适合现在非工作时间执行测试,工作时间分析失败用例的工作模式。
  • 可以高效实现某些手工测试无法完成或者代价巨大的测试类型,比如关键业务 7×24 小时持续运行的系统稳定性测试和高并发场景的压力测试等。
  • 还可以保证每次测试执行的操作以及验证的一致性和可重复性,避免人为的遗漏或疏忽。


1268169-20210710174020477-13299064.png


缺点?那必须存在:


  • 自动化测试并不能取代手工测试,它只能替代手工测试中执行频率高、机械化的重复步骤,起到互补。
  • 自动化也不智能,只会按照代码里我们既定好的步骤去执行,中间发生任何意外,没有任何处理能力。
  • 自动化测试用例的开发工作量远大于单次的手工测试,所以只有当开发完成的测试用例的有效执行次数大于等于 5 次时,才能收回自动化测试的成本。
  • 自动化测试发现的bug通常会很少,主要职责就是用来回归。
  • 测试的效率很大程度上依赖自动化测试用例的设计以及实现质量,不稳定的自动化测试还不如不要。
  • 实行自动化测试的初期,用例开发效率通常都很低。
  • 自动化测试开发人员必须具备一定的编程能力,这对传统的手工测试工程师会是一个挑战,需要额外学习成本。


1268169-20210710174713831-720578206.png


所以,对于自动化测试,不能一概而论,不管三七二十一就上,具体还是看你的项目是否适合


三、什么项目适合做自动化测试


1. 需求稳定,不会频繁变更


如果需求频繁变,那么对应你的自动化维护成本也会直线上升。你想想,刚调试完的case,结果页面或者接口逻辑变了,又得重调了。


2. 研发和维护周期长,需要频繁执行回归测试


这里说的是软件产品,比如微信app、淘宝web系统。软件产品的生命周期一般都比较长,通常会有多个版本陆续发布,每次版本发布都会有大量的回归测试需求。

而对于项目软件(比如给XX公司开发一套系统,2个月后交付实施),就要视情况而定了。


通常来看,短期的一次性项目并不适合做自动化测试,ROI(投入产出比)不高,以手工探索测试更合适。


对于一些中长期项目,可以这样:


  • 对比较稳定的软件功能进行自动化测试,
  • 对变动较大或者需求暂时不明确的功能进行手工测试,


最终目标,是用 20% 的精力去覆盖 80% 的回归测试。


3. 需要在多种平台上重复运行相同测试的场景


这种其实就比较常见了,比如web端的多浏览器执行、app端的多系统版本或者多机型测试等等。


这些项目中的单个测试用例都需要被反复执行多次,能够使自动化测试的投资回报率最大化。


4. 某些测试项目通过手工测试无法实现,或者手工成本太高


通常为性能和压力测试。


比如,某一个项目要求进行一万并发用户的基准性能测试,难道你真的要找一万个用户按照你的口令来操作被测软件吗?又比如,对于 7×24 小时的稳定性测试,难道你也要找一批用户没日没夜地操作被测软件吗?


这时候必须借助自动化测试技术了,用机器来模拟。


5. 测试人员已经具备一定的编程能力


如果测试团队的成员没有任何开发编程的基础,推行自动化测试就会比较困难:


  • 短期收益:前期的学习成本通常会比较大,很难在短期内对实际项目产生实质性的帮助。此时如果管理层对自动化测试没有正确的预期,很可能会叫停自动化测试。
  • 本末倒置:如果测试人员不能正确地看待自动化测试,很可能会花大量的精力放在自动化测试技术的学习与实践上,而忽略了测试用例的设计,这很致命。


所以,要综合实际情况来看待“自动化测试”。它的确可以从一定程度上解放测试人员的劳动力,完成一些人工无法实现的测试,但并不适用于所有的测试场景。


如果,维护自动化测试的代价高过了节省的测试成本,往往会得不偿失。

相关文章
|
29天前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与质量:AI驱动的自动化测试策略
【2月更文挑战第19天】 在快速迭代的软件发展环境中,传统的手动测试方法已无法满足高效率和高质量的要求。本文探讨了人工智能(AI)技术如何革新现有的软件测试流程,通过引入AI驱动的自动化测试策略,旨在提高测试覆盖率,减少人为错误,优化资源分配,并缩短产品上市时间。我们将分析AI在识别潜在缺陷、生成测试用例、执行测试以及结果分析中的应用,并讨论实施这些策略时可能遇到的挑战和限制。
107 3
|
1月前
|
敏捷开发 测试技术 持续交付
提升软件测试效率与质量的自动化策略
【2月更文挑战第19天】 在快速迭代的软件开发周期中,传统的手动测试方法往往难以满足高效率和高质量的双重要求。本文将探讨如何通过实施自动化测试策略来优化软件测试流程,减少重复劳动,提高测试覆盖率及发现缺陷的速度。我们将分析自动化测试的关键优势,包括时间效率、一致性、可重复性以及其在持续集成环境中的作用,并讨论实施过程中面临的挑战及解决策略。
|
30天前
|
敏捷开发 分布式计算 测试技术
深入理解软件测试中的自动化框架选择与优化策略
【2月更文挑战第29天】 在软件开发的生命周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的普及,自动化测试成为确保软件质量和加快产品上市速度的关键手段。本文将探讨在构建自动化测试框架时面临的挑战,分析不同类型自动化框架的特点及其适用场景,并提出一系列优化策略,旨在帮助测试工程师提高测试效率,确保测试结果的准确性。
16 0
|
29天前
|
安全 测试技术
现代软件测试中的自动化技术应用及挑战
在当今数字化时代,软件测试的重要性日益凸显。本文探讨了现代软件测试中自动化技术的应用现状和挑战,分析了自动化测试在提高效率、降低成本、增强可靠性等方面的优势,同时也提出了自动化测试所面临的挑战和解决方案。
|
25天前
|
jenkins 测试技术 持续交付
现代软件测试中的自动化工具与挑战
随着软件开发领域的不断发展,自动化测试工具在测试过程中扮演着越来越重要的角色。本文将探讨现代软件测试中自动化工具的应用及面临的挑战,旨在帮助开发人员和测试人员更好地理解和应对自动化测试中的问题。
|
9天前
|
敏捷开发 监控 测试技术
深入探索软件测试中的自动化边界
【4月更文挑战第10天】 在现代软件开发过程中,自动化测试已成为提升效率、确保质量的关键手段。然而,随着技术的不断进步和项目需求的多样化,确定自动化的合理边界成为测试工程师面临的重要问题。本文将探讨如何界定自动化测试的有效范围,包括成本效益分析、风险评估与技术选型等方面,并提出一种基于风险和回报权衡的自动化测试策略。
|
12天前
|
测试技术
深入理解软件测试中的自动化边界
【4月更文挑战第7天】 在追求快速交付和质量保证的双重压力下,软件测试领域正经历着从手工到自动化的转变。本文旨在探讨自动化测试的有效边界,即哪些场景适合自动化,以及如何界定这些边界以优化测试策略。通过对自动化测试优势、挑战及适用性的分析,文章为读者提供了一个清晰的框架,用于评估和实施自动化测试。
|
14天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
34 6
|
18天前
|
Java 测试技术 API
软件测试中的自动化工具与策略
软件测试是确保软件质量的重要环节,而自动化测试工具和策略的应用在提高测试效率和准确性方面发挥着重要作用。本文将介绍几种常见的自动化测试工具,并探讨在软件测试中应用自动化测试的最佳实践和策略。