自动化测试理论
一个项目中,并不是所有场景的测试都需要去做自动化的,需要我们从人力成本、时间成本、代码稳定性、覆盖率等多个角度综合分析,制定性价比最高的测试策略。在开始写自动化脚本之前,应该掌握一些前端基础知识并对被测项目的前端结构进行了解,方便后续进行元素定位和脚本编写。熟悉业务流程是我们做自动化测试的前提,在此基础上我们才能分析出自动化测试能不能做、适不适合做、怎么做等等。把人对软件的测试行为转化为由机器执行
一、初识自动化测试
概念
- 软件测试的定义
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
- 自动化测试的定义
把人对软件的测试行为转化为由机器执行测试行为的一种实践,用代码测试代码。
- WebUI自动化测试
由自动化测试工具模拟人工在web程序上各种操作,并自动验证结果是否符合预期。
- AppUI自动化测试
由自动化测试工具模拟人工在APP程序上各种操作,并自动验证结果是否符合预期。
- 接口自动化测试
由自动化测试工具模拟系统或组件之间通过接口传输数据,并自动验证结果是否符合预期。
自动化测试的优缺点
优点

缺点

自动化测试可行性分析

常见的自动化测试工具
Selenium:WebUI自动化测试
QTP/uft:WebUI自动化测试
Appnium/airtest:APP自动化测试
Monkey/MonkeyRunner:app自动化测试
Jmeter:接口、性能测试
Postman:接口测试
SoapUI:接口测试
LoadRunner:性能测试
Jenkins:持续集成
等等等等。
测试金字塔的概念
- 测试金字塔的概念来自Mike Cohn,在他的书《Succeeding With Agile》中详细描述着:“测试金字塔最底层是单元测试,然后是业务逻辑测试,最后是端到端的测试(GUI或CLI)。

- 我们应该有更多低级别的单元测试,而不仅仅是用户界面运行的高层的端到端的测试
- 分层自动化测试倡导的是从黑盒UI单层到黑白盒多层的自动化测试体系,从全面黑盒的自动化测试到对系统的不同阶段、不同层次进行自动化测试。
- [小型测试]是指单元测试,用于验证应用的行为,一次验证一个类
- [中型测试]指集成测试,用于验证模块内堆栈级别之间的互动或相关模块之间的互动
- [大型测试]是指端到端的测试,用于验证跨越了应用的多个模块的用户操作流程
- 从小型测试到大型测试,各类测试的保真度逐级提高,但维护和调试工作所需的执行时间和工作量也逐级增加。因此,我们编写的单元测试应多于继承测试,集成测试应多于端到端的测试。虽然各类测试的比例可能会因应用的用例不同而异,但通常建议各类测试所占比如下:小型测试70%,中型测试20%,大型测试10%
二、selenium自动化测试流程分析
1.熟悉业务流程
熟悉业务流程是我们做自动化测试的前提,在此基础上我们才能分析出自动化测试能不能做、适不适合做、怎么做等等。
2.选取场景
一个项目中,并不是所有场景的测试都需要去做自动化的,需要我们从人力成本、时间成本、代码稳定性、覆盖率等多个角度综合分析,制定性价比最高的测试策略。
3.确定方案
确定要做自动化之后,就可以进行工具选型了。appium?seleium?airtest?QTP?等等。选能实现需求且自己擅长的就可以了。
4.了解前端
在开始写自动化脚本之前,应该掌握一些前端基础知识并对被测项目的前端结构进行了解,方便后续进行元素定位和脚本编写。(之后文章详解)
5.元素定位
6.编写脚本
7.运行优化
8.产生报告
9.持续维护
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
更多推荐



所有评论(0)