自动化测试概述
1.自动化测试的产生的背景
1.重复、频繁的工作太多
2.任务重,时间短
3.创新性的工作太少
4.测试结果有时需要精确到毫秒,手工做不到
2.概述:自动化测试就是借助于测试工具、依照测试规范,从局部或全部代替人工进行测试以及提高测试效率的过
程。
3.自动化测试的两大特征
1.自动测试过程是通过模拟人工操作,完成对被测系统的输入,幵且对输出进行检验的过程;
2.自动测试是由软件代替人工操作,对被测系统的GUI发出指令,模拟操作,完成自动测试过程;
4.优势
1.可重复
2.可程序化
3.可靠
4.提高测试的精确度
5.提升测试资源的的利用率
5.和手工测试比较的特点
1.优化成本;
2.可靠;
3.快速;
4.规范化;
5.可重用。
手工测试VS自动化测试
谁发现的缺陷多?(测试质量的高低)能够更多的发现缺陷需要依赖脚本和代码的实现。如果脚本和代码没有让程序自动进行判断,工具程序永远不会发现bug
测试质量能够更好的发现缺陷,甚至是用例中没有涉及的缺陷程序中没有涉及到的测试点,不做测试,因此会漏掉一部分缺陷
与开发关系一般和开发较为对立,不写代码,不知道开发有多难因为写代码,所以更能体会和理解开发的难处;跟开发的关系也更为密切
各自的局限性执行效率低,可靠性不高,准确度会受到情绪的影响,精确度不够高执行效率高,可靠性高,全天候全时段运行,准确度高,精确度高,不易出错 .如果代码不对,就无法得出准确结果;如果被测试的程序界面修改了,代码也不能正常运行没有错误联想功能
自动化测试工具的分类
1.从软件使用的目的分类:
功能测试:QTP/UFT,Selenium
性能测试:Loadrunner, JMeter
测试管理:禅道
其他测试:Postman
2.从软件的获取分类:
自主研发
开源
商业
关键字驱动测试方法,也叫表格驱动测试方法,是软件自动化测试的一种方法。关键字驱动测试把测试脚本的编程工作分离出去,使得编程经验不足的人也能开发自动化测试脚本
自动化测试工具的介绍
1、功能上自动化测试工具:基于界面(UI)/黑盒的测试工具
1)web自动化测试:Selenium可以通过一个插件,实现可视化的操作,但是功能很单一;突出特点是通过Java或者Python进行脚本代码的编写,实现更自由的自动化测试
2)移动端自动化测试:APPium,是一个可以实现可视化操作,重点也是通过代码完成对移动端APP的自动化测试
3)QTP---UFT:Mercury公司首发,HP公司收购,Micro focus购买;功能很强大;非常专业的;收费很高
2、性能测试工具:需要代码基础不需要很高,但是业务的分析、专业性能术语要求较高
1)HP Loadrunner。Mercury公司首发,HP公司收购,Micro focus购买;功能很强大;非常专业的;收费很高
2)Apache Jmeter(阿帕奇):开源,刚开始,只进行web服务的性能测试;后来扩展到很多功能
3、测试管理工具:在数据统计、任务分配上有很好的作用
1)bugfree---禅道:开源版/商业版。功能齐全
2)QC/ALM:Mercury公司首发,HP公司收购,Micro focus购买;功能很强大;非常专业的;收费很高
3)JIRA:商业软件;费用也不低;功能也比较强大
4、接口测试工具:技术含量不高,但是需求较多
1)Postman。界面美观,功能完善,但是只支持进行HTTP和HTTPS的协议的接口测试。商业软件,可以免费使用
2)Apache Jmeter(阿帕奇):开源,支持多种协议的接口测试
3)Fiddler。抓包工具。
实施自动化测试-流程
一.流程:
1.自动测试决定
2.测试工具获取
3.自动化测试引入
4.制定测试计划(5w1H)、测试设计(测试用例:测试步骤、测试数据、预期结果)、测试开发(编写测试脚本、在工具中完成测试场景的开发)---最关键的一个环节
5.测试执行与管理(脚本的运行、过程监控、结果管理)
6.测试审评和评估
实施自动化测试-测试方案的选择
二.考虑因素:
1.项目影响
2.复杂度
3.时间
4.早期需求和代码的稳定性
5.编护工作量
6.覆盖率
7.资源
8.自动化测试的执行
实施自动化测试-场景
三.自动化测试实施场景
合适:
1.回归测试
2.更多更频繁的测试
3.手工测试无法实现的工作
4.跨平台产品的测试
5.重复性较强的操作
不合适:
1.软件版本不稳定
2.涉及与物理设备交换的测试
3.测试结果较容易通过人工判断的测试
实施自动化测试-工具的选择
四.自动化测试工具选择
1.只买对的,不买贵的
2.选择主流的测试工具
3.分阶段、逐步引入测试工具
4.选择技术支持完善的产品
5.如需多种工具,尽量选择一个公司的产品