一、什么是自动化测试

以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。自动化的测试涵盖了:功能(黑盒)自动化测试,功能(白盒)自动化测试,性能测试,压力测试,GUI(Graphical User Interface)测试,安全性测试等。

关于什么是自动化,查阅了一些资料,并没有一份权威规范的解释,以下摘自维基百科:

In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or add additional testing that would be difficult to perform manually.

首先,test automation跟 automation test是有区别的,测试自动化涵盖的面更广泛。本文阐述的是自动化测试,在这里暂且混淆这两个概念。

这一段英文不难,自行翻译。我眼里看到的几个要点:1.需要工具;2.工具控制流程,比较预期输出与实际输出;3.重复性高且有必要的测试流程可以自动化;4.用于手工测试难以达成的领域

说说我自己的理解:

自动化测试是测试思想的一个延伸,为测试工程师提供了一个“触须”,其行为可以看成一个工具,但是本质上自动化测试还是一种思想。

顺便提一句,狭义上的自动化测试指的就是基于GUI的自动化测试,而单元测试跟API测试,你有想过怎么用手工不借助任何工具去做吗?所以它们天生就属于测试自动化的范畴。

二、自动化测试的优势编辑

回归测试更方便可靠 ;可运行更多,更繁琐的测试,且快速高效;可执行一些手工测试执行相当困难或者做不到的测试,如大量的用户并发;更好的利用资源,具有一致性和可重复性的特点,自动化测试脚本完全可复用;提升了软件的可信度;多环境下测试等。

自动化最实在的优势在于——工作好找:有一个测试工程师(并不是本人)发现一个有趣的现象,她申请过的几乎所有测试职位,在招聘时都需要自动化测试经验。但当她开始工作后,就发现这些公司都试图做自动化测试,但是结果大多不怎么地。不过,尽管她参与的都是一些杯具的项目,不过她总能把这些杯具包装成洗具以应对下一次面试。

所以呢,既然自动化测试有那么多优势,为什么还有那么多项目做失败了呢?

我个人有个推论:自动化测试的优势都是自动化测试成功完成得到的结论,而自动化测试的劣势才是自动化项目立项的基础。

还有个优势:自动化测试可以将产品的知识固化到脚本中,以降低测试人员流动对项目造成的影响。但是这个优势的前提是,这些脚本易于维护,这就需要一些必要的文档,这又是另一个议题了。

三、自动化测试无法做到的事以及劣势

永远不可能完全替代手工测试,自动化测试无法做到手工测试的覆盖率,不是每个测试用例都适合做成自动化,如建议一个页面的布局是否正确、安装测试、文档测试、兼容性测试、恢复性测试。

手工测试发现的缺陷远比自动化多。自动化测试是几乎无法发现新缺陷的,最大的用途是用来回归,确保曾经的bug没有在新的版本上重新出现。

自动化测试工具是死的,它不具备任何想象力。自动化测试的好坏,完全取决于测试工程师。

成本投入高,风险大。对测试人员的技术要求高,对测试工具同样有要求。

关于成本,包括了资金预算,人力资源,人员培训,硬件资源等。下图显示了自动化测试的投入成本与时间的关系,很显然,前面多数时间,成本是很高的。

基于以上劣势,所以虽然“贵为”自动化测试工程师,我有一大半的时间在劝老板,“亲,能不能不做自动化”。这真是个悲伤的故事。
四、合适引入自动化

项目周期长,系统版本不断,并且需求不会频繁变更,此时是适合引入自动化测试的。

系统的测试对象基本可以正常识别,以及对无法识别的控件能否提供一个解决方案。

系统中不存在大量的不可识别第三方控件。

需要反复测试,如可靠性测试、回归测试等需要进行上千次的系统测试。

五、不适合自动化

项目周期短,需求频繁变更。即使是周期长的项目,如果经常需求变更,也不适合做自动化。

软件版本还没有稳定的情况下,主功能或大量功能有被重新更改的可能话,也不适合做自动化。

没有明确的项目测试自动化计划,措施和管理。

多数对象无法识别,以及脚本维护频繁与艰难,二者有其一,自动化必定失败。

六、自动化测试的流程

合理的自动化切入点:通常,项目只有经历了完整的系统测试之后才算具备了基本的引入测试自动化的条件。

无论什么测试,越早介入则越有利于降低成本,降低风险。而随着新型的开发模式兴起,自动化测试也具备了尽早介入的条件。比如敏捷开发中,某核心模块核心功能完成后,则可针对该模块的该功能开始实施自动化测试。

测试自动化分析:

(1)可行性分析

(2)抽样demo分析,demo一般选取冒烟测试用例,检查脚本是否能够成功运行通过,已设计的测试点是否全部执行

(3)测试需求分析,分析哪些功能点准备进行自动化

(1)可行性分析是自动化测试最重要的部分之一。可行性分析是自动化测试最重要的部分之一。可行性分析是自动化测试最重要的部分之一。重要的话要讲三遍。

关于可行性分析,请参考2,3,4,5点;你的一个错误决定(自动化测试项目立项),很可能给好几个人带来全职工作机会,从这个角度来讲,还能促进鸡的屁==

(2)抽烟Demo,主要还是用来验证你的工具是否能用

(3)自动化测试不是100%测试,不可能达到手工测试的覆盖率,要筛选功能点进行自动化测试

测试计划定制:自动化测试计划越全面,后期越能循规蹈矩的去实施,自动化测试的成功率越高

计划赶不上变化,有时候太全面了或许也不是什么好事。

自动化测试设计阶段:主要分为自动化测试框架和自动化测试用例。

(1)自动化测试框架的设计,开发与搭建:应能保证测试的分布执行,脚本模块化,数据驱动,日志分析,错误截图,报表回收,共享对象库,公共函数库,环境配置,统一设计模式,异常处理,场景恢复的一个无人值守的,针对每个独立项目的测试框架

通常每种框架都应该支持动态跟静态两种找对象的方式,静态找就涉及到对象库,包括对象库的读、写、合并、维护等一系列问题,这些都可以交给框架做;

(2)自动化测试用例设计三部曲:手工测试用例是从无到有,然后自动化测试用例是根据手工测试用例来写的。首先,筛选手工测试用例。然后转换手工测试用例,最后新增&补充自动化测试用例。

为什么不能用手工测试用例完全替代自动化测试用例?

自动化测试用例的范围往往是核心业务流程或者重复执行率高的,自动化测试的覆盖率不能达到手工测试的覆盖率。自动化测试的用例选择一般以正向为主,而反向的情况却有很多,但是并不是所有反向情况自动化测试都会涵盖,而是有筛选的选取一部分。也并不是所有的手工测试用例都可以用来做自动化的,如页面布局的检查。手工测试可以不需要回原点,但是自动化测试往往是必须的。自动化测试用例与手工测试用例不同,不需要每个步骤都写预期结果。

测试脚本设计与开发

测试脚本大致可划分为:

  •   (1)线性脚本:通过录制直接产生的线性可执行的脚本
  •   (2)结构化脚本:具有顺序,循环,分支等结构的脚本
  •   (3)可共享脚本:可以被多个测试用例使用,被其他脚本调用的脚本(即模块化的脚本)
  •   (4)数据驱动脚本:测试数据跟业务流程控制分离的脚本,通过读入数据文件来驱动流程进行的脚本
  •   (5)关键字驱动脚本:脚本,数据,业务分离,数据和关键字在不同的数据表中,通过关键字来驱动测试业务逻辑。关键字驱动的特点是,它更像是描述一个测试用例在做什么,而不是如何做。
  •   (6)混合型脚本:以上任意两种及以上
  •   (7)敏捷自动化测试脚本/框架:这一块等我有了成功经验再补充=。=

自动化测试执行:

  •   (1)无人值守的测试:环境搭建,部署与配置;自动化测试用例与测试脚本相互绑定;自动化测试用例执行顺序排列与组合
  •   (2)异常处理与场景恢复

提交自动化测试产物:大致需要提交执行情况,测试结果,分析报表,测试报告,质量情况等。

测试脚本维护:严格来讲,每个阶段都在做测试脚本维护。一个不值得维护的自动化测试项目是不值得立项的。

七、我到底能不能学习自动化呢?

自动化测试是一个非常广泛的技术,要想深入精通到更行各业,需要至少5年的钻研才能精通,所以有着足够的技术纵深。熟练到一定级别,甚至做上技术总监也不是没有可能。所以自动化测试是广大测试新手弯道超车老测试的好机会。

总结:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

有进阶自动化测试的心,但是目前公司只要点点点有必要吗?相关推荐

  1. 手工测试2年面临职场危机,3个月进阶自动化测试后,老板终于留我了...

    ​前言 从学校到职场已经3年时间了,大学学的计算机专业,最开始事项从事java开发的,最终被现实打败,然后就从事了软件测试,现在已近过去了2年,为什么说是2年了,大学毕业有一段空窗期,后面也是通过自学 ...

  2. 从功能测试进阶自动化测试涨薪7k,终究是逼了自己一把...

    目录 前言 什么是自动化测试? 一.软件自动化测试的学习步骤 二.自动化测试的本质 三.自动化测试学习的误区 四.自动化测试的职位 五.自动化测试分类 六.Web自动化测试分类 七.自动化测试的知识点 ...

  3. 4年功能庸庸碌碌,进阶自动化测试拿到了24k,测试之路不再平凡...

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  4. 为什么很多公司只给博士发安家费,却不给研究生和本科生发?

    老穆首先要纠正一下题主的问题,研究生包括博士研究生和硕士研究生,所以题主的问题应该是: 为什么很多公司只给博士研究生发安家费,却不给硕士研究生和本科生发? 老穆认为,主要有如下几点原因: [1]好博士 ...

  5. 功能测试进阶自动化测试,你不试一下永远不知道自己的潜能

    绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师. 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的 ...

  6. 功能测试进阶自动化测试,一个5年字节测试人的自我改变

    绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师. 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的 ...

  7. 2023年软件测试的前景?测试工程师技能提升,进阶自动化测试...

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  8. PS进阶篇——如何PS软件给公司单位图片加版权水印(六)

    有时候在单位任职,是不是老板经常让发些朋友圈或者小程序宣传文章之类的配图,还要加写文字或者logo水印呢,加个字简单,但是做的有点内涵就需要懂点脑筋了,什么内涵?仁者见仁智者见智,不同环境,不同技术的 ...

  9. 为什么大公司只喜欢招985 211?学历真的很重要?

    我们在应聘工作的时候,往往看到很多大企业明文规定只招收985 211院校毕业的人才,一些大企业虽然没有在明面说明,但暗箱操作,对重点院校和普通院校区别对待. 作为一家招聘机构,从企业招聘的角度说下大企 ...

最新文章

  1. jQuery中的事件机制深入浅出
  2. Delphi 调用C#编写的WebService 参数为Null解决方法
  3. Tomcat-上传文件路径填坑
  4. USACO / Stamps(DP)
  5. boost::hana::not_equal用法的测试程序
  6. Android EditText中插入图片并响应点击事件
  7. cf244D. Match amp; Catch 字符串hash (模板)或 后缀数组。。。
  8. 计算机应用设计的目的意义,高等教育自学考试计算机及应用专业+本科毕业设计(论文)的目的与要求...
  9. php解析二级json,PHP Json 解析
  10. 6.看板方法---价值流映射
  11. Flutter实战之底部导航栏 BottomNavigation
  12. 仲裁服务器的作用,仲裁:见证服务器如何影响数据库可用性
  13. mysql 主节点挂机_云服务器如何重启MySQL服务,正确重启mysql
  14. 2014-10-18 多玩初面
  15. 坚果pro官方固件_锤子坚果Pro(OD103)刷机包_线刷包_救砖包_官方ROM包_固件包下载- 线刷宝ROM中心...
  16. 服务器 虚拟机 崩溃,认识VMware虚拟机,系统崩溃或异常,可通过快照还原磁盘文件系统...
  17. keras中的K.gradients()函数
  18. java 字符串 哈希值_Java 获取字符串Hash值
  19. log4cxx vs2019编译
  20. 陆道培医疗冲刺香港上市:持续亏损,毛利率下滑,陆佩华为董事长

热门文章

  1. 橘子洲头共享生态盛宴‖华为中国 ICT 生态之行走进长沙
  2. 学习笔记之——LIO-mapping
  3. 在Mac mail签名中添加的图片,接收方不显示为附件。
  4. IaaS、PaaS、SaaS、BaaS和FaaS, 这些区别你真的了解吗?
  5. 账号交易明细查询(分页)
  6. 我的团队,我的产品,我的回忆——演员表
  7. 股粮网:无协议脱欧恐慌先至 英国民众花超300亿屯粮
  8. Android发展简报
  9. Android四大组件易考题分析
  10. 关于stm32通信协议:软件模拟SPI、软件模拟I2C的总结(fishing_8)