前言:本文4004字*(不信你数),包含功能测试体系内全部知识。建议不要在收藏落灰。另外建议不要报名线上功能课程,学费6-7k。还不如在CSDN,学个小班课。因为功能测试偏理论,入门简单。
什么是软件测试?
测试学习线路图和成长途径
需要扩充什么知识?
需要掌握什么工具?
就是通过需求分析和测试用例用手工或者自动化两方面来看软件的预期是不是和实际一致。
这里不过多解释了,随便蹭一节公开课,都会明白什么是软件测试。但是小心公开课把软件测试吹的天花乱坠的。
网上热议“软件测试并不是很重要”。我尽量态度中立回答这个问题,功能测试真的不是很重要的。
疫情不知道大家的公司有没有受到影响,但是我和我身边朋友的多多少少都受到影响了。技术部门整改裁员,最先裁的就是测试岗位。连经理带组员全裁了,可能公司不一样,仅个人看法。我们公司是因为就三个测试,全是功能测试,他们能找到的bug产品经理也可以,运营也可以。
但是如果你要转行互联网行业,软件测试我还是推荐的。因为真的很好入门,很容易上手。但绝不建议你只停留在功能测试。
长期背锅,转型很难,有测不完的业务需求和技术需求,地位低。因为功能到自动化,其实差的不是一个阶段,不是你以为的先入门功能,工作两年就会自动化了。完全不是,而且很可能功能入门后就安于现状了。
说这么说就是带大家了解一下软测,也不要被那些大几千的课程骗了。
第一个阶段学习内容:前置基础知识
计算机基础知识:计算机组成部分,操作系统分类,B/S和C/S架构,常用DOS命令,服务器域名。
这个阶段,还是那句话。蹭课就足够了。
测试理论:依旧是蹭课可以知道软件测试的目的,软件测试的定义,软件测试的原则,产品质量模型,测试基本流程。
HTML基础:基础语法,标签属性,图片标签,超链接,锚点,表单;
CSS基础:CSS基础语法,CSS四类选择器,常用位置属性,行高属性,边框,盒子模型,内外边距;
Js基础:基础语法和引入方式。
第二阶段:Linux和数据库
这块相对小白会有点点难度,但是看书+视频课程足够了。
1)LINUX(熟悉)
操作系统介绍、操作系统发展历史、CentOS图形界面、文件和目录、常用LINUX命令使用、vim文本编辑器的使用
2)数据库介绍(熟悉)
数据库基本概念、关系型数据库介绍、MySQL安装与使用、Navicat使用
3)SQL语言(重点)
数据表操作、数据操作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练
4)数据库高级功能(了解)
数据库设计、命令行操作数据库、函数、存储过程、视图、事务、索引、外键、用户密码
5)redis数据库功能(掌握)
掌握Redis的string类型、hash类型、set类型、list类型等基本类型和操作;
第三阶段:测试基础
1)软件测试理论
软件测试的分类,软件开发模型和测试模型,软件的质量模型,测试用例的定义和要素
2)测试用例设计
等价类方法、边界值方法、因果图、判定表、状态迁移法、正交、场景
3)缺陷管理
缺陷定义、缺陷的判定标准、缺陷报告、缺陷跟踪流程
4)Web项目实战
搭建项目的测试环境,如何快速熟悉项目,项目的测试流程,测试计划和方案,功能测试分析,状态迁移法的使用,流程测试分析,非功能测试分析,测试报告编写,Fiddler抓包
5)App项目实战
6)测试管理工具
禅道的使用,JIRA的使用
上述阶段学习完成之后,就是一个可以去外包公司,拿个6-8k的功能测试啦。不过劝大家不要,转行穷3年,要是功能测试可能还多穷个2年~~~
进阶自动化阶段:编程+数据结构
需要掌握python基础的语法有一定的编程能力,要建立编程思维和面向对象程序设计。
1)Python开发环境
Python开发环境的搭建、Pycharm使用
2)Python基础
变量以及变量的类型、标识符和关键字、变量名命名方式、算数运算符、变量数据类型转换、输入和输出、注释、if语句基本格式、if…else…语句、if…elif…else语句、逻辑运算符、比较关系运算符、运算符优先级、while循环语法格式、while嵌套应用、break的用法、continue的用法、列表概念及操作、元组概念及操作、字典概念及操作、字符串概念及操作、集合概念及操作、for循环及for…else用法、函数的基本语法、函数执行流程、文档注释、带参数的函数、带返回值的函数、函数的嵌套调用、匿名函数、递归函数、局部变量和全局变量、引用、文件的概念、文件的打开与关闭、文件读写, 以及文件定位读写、文件、目录相关操作
3)面向对象
面向对象介绍、类和对象的概念、魔术方法的意义及作用、对象成员的访问控制权限、继承的概念及意义、继承、多层继承和多继承、多态的概念以及应用、类属性和实例属性、实例方法、类方法、静态方法、设计模式: 单例模式
4)异常处理
理解异常的作用、捕获异常、异常的传递规则、自定义异常
5)模块和包
模块和包的概念、__all__的用法、import语句用法、from…import…用法、from…import * 用法
基本的编程思想和数据学会了之后,需要分方向了。在这里快速分方向是在web自动化和app自动化上做出学习的主次。
web自动化需要学习内容:
1)WEB自动化入门
自动化测试的理论知识、主流的Web自动化测试框架介绍、Selenium的发展历史及工作原理、元素查看工具使用、环境搭建
2)WEB自动化基础
元素基础定位方法、Xpath和CSS元素定位方法、元素常见操作、浏览器操作方法、鼠标键盘操作、显示等待和隐式等待、HTML特殊元素处理、窗口截图、验证码处理
3)WEB自动化中级
UnitTest框架、Fixture、UnitTest断言、参数化、测试报告
4)WEB自动化高级
PO模式、数据驱动、日志处理
5)项目实战
自动化测试流程、项目自动化框架设计、自动化代码实现
1)移动自动化特性
APP应用系统架构、测试环境及发布平台、APP敏捷开发模式、APP应用测试要点、业务功能测试、兼容性测试、安装卸载升级测试、交叉事件测试、Push消息测试、性能测试、用户体验测试、稳定性测试
2)移动自动化基础
移动端测试分类及特点、ADB命令及Monkey使用、appium环境搭建、appium工作原理
3)移动自动化中级
APP和手机系统操作、元素定位、元素操作、高级手势操作、混合APP测试、PyTest测试框架、定制测试报告、YAML数据读写
4)移动自动化高级
PO模式、数据驱动、Git、Jenkins持续集成
5)项目实战
APP项目实战
学到这里,基本上就是一个起薪15K的自动化测试工程师了。分享学习内容暂时也就停留在这里,后续会详细更新,接口—性能—项目实战的内容。
在实战中了解不同行业的不同业务。其实初级跟中级测试,差的也是行业经验。你在一个领域久了,遇到问题立马就可以快速找到问题。
全方位透析真实企业软件测试流程
1,TestDirector(大而全)
2,jira(简单好用)
3,Quality Center(复杂,收费)
4,禅道(简单好用)
5,bugzilla(功能简单)
6,svn(代码和文档管理工具)
7,vss类似svn
8,git,同svn,但是多分支管理比svn好
9,Note(大而全,费用太贵)
10,CQ(ClearQuest-IBM产品-大而全)
课程:首次公开头条软件测试实战项目完整版