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

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

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


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


被动,或许你想换份工作了。当你打开各公司的招聘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. 测试人员已经具备一定的编程能力


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


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


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


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

相关文章
|
21天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
74 8
|
28天前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
29天前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
28天前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
51 1
|
30天前
|
Java 测试技术 API
探索软件测试中的自动化框架选择####
在当今快节奏的软件开发周期中,自动化测试已成为确保产品质量与加速产品迭代的关键策略。本文深入剖析了自动化测试的核心价值,对比分析了市场上主流的自动化测试框架,旨在为项目团队提供选型时的考量因素及实践指南,助力高效构建适应未来变化的自动化测试体系。 ####
|
14天前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
64 17
|
26天前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
27天前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
62 4
|
27天前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
36 4
|
26天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!

热门文章

最新文章