自动化测试
一直觉得,软件测试是一个起点很低的工作,而正因为其起点较低,所以,随着越来越多的大学毕业生以及转行人员,陆陆续续的涌入软件测试这个行业,使得“长江后浪推前浪,前浪死在沙滩上”成为这个行业目前最真实的写照,不断的有新鲜血液涌入软件测试这个行业,使得所谓的“前辈们“倍感压力。最基础普通的功能测试已经无法满足社会以及IT行业发展的需求。不断掌握新的技能,提高软件测试“找bug”的能力也就变成了目前软件测试从业人员迫在眉睫需要解决的问题。因此,现在大部分初级功能测试人员都在向自动化、性能、安全靠拢,不想被这残酷的社会淘汰,就再也不能“泰山崩于前而面色如土”。本篇文章,主要是对自动化测试做一个大致的梳理。
“生活不易,但坚持下来一定会很酷”。工作上的转型亦是如此吧。前路漫漫,坚持下来,一定会更酷!
WHAT 什么是自动化测试
测试,这个我们熟悉,测试的本质:过程。测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容:运行被测试的软件,执行软件的功能运行其他工具,去检查软件的内部和外部。而自动化,则是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。既然测试是一个过程,那么自动化测试,就是自动的执行的过程。
WHY 为什么要进行自动化测试
1.节约成本:人不能没日没夜的工作,但是机器可以,自动化测试,可释放部分人力资源;
2.有些测试项目,手工测试很难实现,或者说,手工实现成本较高(哦,其实说到底还是成本,用有限的资源,实现收益最大化😄);
3.项目流程需要
4.and 其他等等
WHICH 什么项目适合开展自动化测试
1.软件需求变动不频繁,功能稳定
测试脚本的稳定性,决定了自动化测试的维护成本,需求变更频繁,测试人员需要花费大量的时间和精力去维护测试用例和测试脚本,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
2.项目周期较长
自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
3.自动化测试脚本可重复利用
4.通过固定输入和固定操作而进行的流程化测试
5.重复的普通测试
6.大量数据的输入
7.系统模块间的接口调用测试
HOW 如何开展自动化测试
和其他的测试一样,自动化测试也是由用例的执行和“缺陷”的验证组成,区别仅在于,工具代替“人手”。
1.找到合适的测试工具
2.测试框架的搭建
3.用合适的编程语言编写测试脚本
4.准备测试用例
5.添加断言,验证检查点
6.记录测试日志,生成测试报告
自动化测试流程
与功能测试一样,项目一旦考虑做自动化测试,则其也贯穿着整个项目过程。
1.测试需求评审:任何测试都是基于对产品功能需求的了解,自动化测试也不例外。无论你技术多牛,如果不了解需求,那也是徒劳无功。
2.测试计划:对项目需求有个大致的测试规划,包含:有多少需求,涉及的测试过程,人力,时间,风险。
3.测试策略:确定自动化测试的工具、编程方案、代码管理、测试重点。
4.测试设计:使用测试设计方法对被测试的需求进行设计,得出测试的测试点、用例思维导图等。
5.测试实施:根据测试设计进行用例编写,并且将测试用例用编程的方式实现测试脚本。
6.测试执行:执行测试用例,运行测试脚本,生成测试报告。
自动化测试工具
基于Web UI的自动化测试工具主要有两大类:付费的商业版工具和免费使用的开源版工具。
典型的有两种:
UFT,QTP被惠普收购以后的新名称。
1. WebUI自动化测试
2. 通过程序的录制,可以实现测试的编辑
3. 录制的测试脚本是 VBScript 语法3. 成熟版的商业付费工具4. 工具比较庞大,对具体的项目定制测试有难度
Robot
1. WebUI自动化测试
2. Robot Framework是一款python编写的功能自动化测试框架。
3. 具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。
4. 主要用于轮次很多的验收测试和验收测试驱动开发。
Selenium
1. WebUI自动化测试
2. 本身不是测试工具,只是模拟浏览器操作的工具
3. 背后有 Google 维护源代码
4. 支持全部主流的浏览器
5. 支持主流的编程语言,包括:Java、Python、PHP、Ruby、JavaScript等
6. 工具很小,可以实现对测试项目的定制测试方案
7. 基于webDriver协议进行通讯,基于标准的WebDriver语法规范
Appium
1. AppUI自动化测试
2. Appium 是一个移动端自动化测试开源工具
3. 支持iOS 和Android 平台,支持Python、Java 等语言
4. Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端连接后,会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在HTTP响应中返还给客户端。