近两年来,自动化测试工程师越来越火了,薪资待遇也快接近开发工程师了。
企业对于自动化测试的需求量也越来越高
如上图所示,真正工作中无法全部满足以上条件,所以需要作出权衡,一般来说,只需要满足以下几点,就可以对项目开展自动化测试(图中红色框标注的选项):
①需求稳定,不会频繁变更
自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;
折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手工测试;
②多平台运行,组合遍历型、大量的重复任务
测试数据、测试用例、自动化脚本的重用性和移植性较强,降低成本,提高效率和价值;
③软件维护周期长,有生命力
自动化测试的需求稳定性要求、自动化框架的设计、脚本开发与调试均需要时间,这其实也是一个软件开发过程,如果项目周期较短,没有足够的时间去支持这一过程,那自动化测试也就不需要了;
④被测系统开发较为规范,可测试性强
主要出于这几点考虑:被测试系统的架构差异、测试技术和工具的适应性、测试人员的能力能否设计开发出适应差异的自动化测试框架;
进入主题:
今天来给大家讲讲,在2022年,我们学习软件测试,应该学什么?如何才能高效学会自动化测试?
零基础入门
正所谓万丈高楼平地起,我们不管是学任何一个技术,都是要从零基础开始的,学习软件测试也是同样的。
软件测试学习不是单一的,内容比较多,同样应用的场景也非常多。如果你想从事软件测试工作,就要更急专心和努力,坚持方向不动摇!
测试理论(掌握测试流程、用例设计、缺陷跟踪,测试报告)
01.了解软件测试职业以及发展定位(测试行业需求分析、测试职业发展阶段、测试职业规划;
02.软件测试分类体系系统学习(测试的定义&目的&原则、测试的对象、测试的分类(策略);
03.软件测试的生命周期&软件测试工作流程(软件的生命周期、测试流程;
04.如何做软件需求分析(软件测试需求定义、测试需求的必要性、如何做测试需求分析;
05.软件测试计划的编写(测试计划定义、测试计划组成、制定测试计划;
06.软件测试用例的常用方法- -四大金刚(等价类划分法、边界值分析法、因果图分析法、场景法;
07.如何编写测试用例&用例评审(测试用例定义、测试用例的重要性、测试用例的组成、编写测试用例;
08.BUG编写规范,写出不LOW的缺陷(BUG的组成、BUG的生命周期,如何提交BUG;
09.禅道的使用(禅道的简介、禅道的安装、禅道的使用;
10.浏览器的兼容性测试&软件测试报告(兼容性测试定义、执行兼容性测试、软件测试报告的编写;
11.掌握上面的内容,基本上理论面试题题都掌握了。
Linux(掌握Xshell/Xftp的使用以及Shell命令使用)
01.Linux环境搭建(虚拟机VMware Workstation Pro安装,SUSE Linux环境搭建,VMware Tools辅 助工具安装,Windows_ linux系统之 间文件共享);
02.Linux初级命令学习(Linux概述、起源、架构,Linux目录。目录操作命令(11, cd, mkdir, rmdir) , 文件操作命令(touch, cp, mv),文件查看命令( cat, more, head);
03.Linux中级命令学习(编辑器命令vim ),链接文件命令(ln),文件搜索命令( find/which/whereis/grep);
04.Linux高级命令学习(系统资源命令(df/free.ps )打包压缩命令(tar) .其他系统命令(halt, poweroff, shutdown),权限命(chmod, chown);
05.Linux下Web环境部署1 Tomcat+jdk(web项目基本架构知识,Linux下快速安装tomcat/ jdk与配置;
06.Linux下Web环境部署2 Mysql数据库(Linux下快速安装Mysql数据库,Mysql数据 库的登录,Mysql数据库命令行模式下常见命令使用);
07.Linux服务器访问操作(xshell/xftp的安装,使用xshell/xftp操作服务器端的文件);
08.Linux面试题(常见Linux面试题刷一下);
Mysql数据库(掌握Mysql环境搭建、SQL语句使用(DDL/DML/高级查询)
01.Mysql环境搭建(Mysq1服务端安装,常见客户端Navicat安装与破解,Mysql自带命令行模式常见命令使用);
02.Mysql之数据库、表的sql命令(数据库概念、分类以及使用场景,SQL的分类及命令,数据库创建命令,表创建/修改/销毁命令,数据库常见数据类型理解与使用);
03.Mysql之数据完整性约束使用(数据库约束的定义、作用与分类,掌握实体完整性,域完整性,引用完整性等约束的创建与删除命令);
04.Mysql之增删改的sql命令(增删改命令 insert,delete,update,数据库运算符的使用 算数运算符,比较运算符,逻辑运算符,位运算符);
05.Mysql之查询的sql命令(数据库查询-select的用法, 掌握in, like, distinct, between, order by,if null,分页功能limit等的用法);
06.Mysql之高级查询-关联查询sql命令(数据库高级查询的用法,掌握多表关联查询( inner, join, left, join, right, join) 等的用法;
07.Mysql之高级查询-函数&子查询sql命令(数据库高级查询的用法,掌握聚合函数(max, min, count ),分组查询(group by),子查询,多行子查询,单行子查询,in, exist) 等的用法);
08.数据库面试题(常见数据库面试题刷一下);
接口测试(掌握接口测试的理论以及工具的使用)
01.接口测试概念(接口测试的概念、原理和目的,接口测试的流程(如何做分析,整理业务,准备数据以及实现接口脚本);
02.接口文档(接口文档的组成,接口数据的获取与接口文档的编写);
03.用例设计与评审(掌握常用的接口测试用例设计的方法,对接口用例进行评审);
04.Postman工具(了解Postman页面菜单,Collection, History, Body, Heads, Tests等);
05.工具接口测试(利用postman进行get/post接口请求,post请求设置各种类型入参,请求头Content-Type, Cookie的使用);
06.断言设置(在Tests中编写脚本对测试结果进行校验:包括请求头,响应码, 请求体的断言);
07.Postman工具之关联与变量设置(掌握关联概念,掌握局部变量与环境变量的设置和引用语法,在Pre-requests中用脚本动态获取变量的操作,最好有实战项目);
08.Postman工之Collection集合测试(利用Collection完成接口测试用例编写以及测试);
09.Fiddler工具(各类抓包工具介绍与对比,fiddler安装, 常用菜单 tools, rules, view,命令行等);
10.Fiddler原理与Http协议(理解B/S架构和请求过程,Fiddler的抓包原理,HTTP的请求、响应报文);
11.Fiddler抓包与过滤(Fiddler抓取HTTP、HTTPS的数据包;数据包过滤: Find, Filter, Rules );
12.Fiddler断点(Fiddler进行局部断点/全局断点/请求前断点/响应后断点设置;篡改数据(请求前、响应后数据)对资源和接口进行断点调试;
13.Fiddler模拟mock实战(Fiddler利用Autoresponder对资源进行重定向,Fiddler构建不存在的接口(mock);
14.Fiddler弱网测试(Fiddler完成弱网环境设置,模拟弱网测试);
15.接口面试题(常见的接口测试面试题刷一下);
App测试(掌握App的ADB/Monkey指令的使用)
01.App测试技术(App测试的概念,App功能测试策略:安装/升级/卸载测试、兼容性测试、异常测试,App自动化测试,App安全测试等);
02.App测试环境部署(App环境搭建: JDK安装 与部署,Android SDK环境安装,模拟器安装,ADB工具使用;
03.App稳定性测试-Monkey测试(App稳定性测试定义、指标与方式,Monkey 原理,Monkey命 令类型);
04.Monkey测试基础参数使用(COUNT,-- throttle,-p, -v, -s, – ignore -crashes等;
05.Monkey测试高阶参数使用(Monkey高阶参数使用: 百分比事件使用,在不同app.上定制合理的时间百分比;
06.App稳定性测试之日志分析与bug定位(App稳定性测试项目实战,日志记录与分析,bug的定位与跟踪,稳定性测试报告的提交;
07.App面试题(常见App测试面试题刷一下);
永远不要因为前方路途遥远,而忘了,从前的自己坚持了多久才走到了这里。
作者:程序员阿沐