自学软件测试的3个要素:一是方法(学习路线),二是愿望,三是自律。这三个要素中任何一个的提高,都会加快目标的实现。当然如果要在同样时间内实现目标,三个要素其中一个要素的增高,也就同时降低对其他两个要素的要求。
1、开始自学的时候最好找一家培训机构领一些基础知识资料和他们的零基础课程大纲(ps;学习路线)培训机构的课程大纲就是你现阶段要学的别问为啥,因为他们是专业的。可以让你少走很多弯路。差不多1个月左右的时间,要能看懂明白里面的知识,这个阶段主要是学习理论知识;
2、有基础知识之后找一个软件来自己操作、从开始写测试计划、测试用例,到自己完成测试、并输出测试报告(这个阶段必须自己操作,如果有问题可以去软件测试类论坛提问,或者去培训机构薅羊毛)。这里如果产品小的话1个月左右,软件功能多的话2个月多都有可能,建议从功能少的软件入手;
3、在执行第二个步骤的时候经常多去软件测试类论坛看看那些问题帖子,绝对增长你的知识量;要么去听免费的公开课。
4、前面3个步完成之后可以开始关注招聘网站那些招聘软件测试的公司,去看看他们公司的做的什么产品,可以把他们的产品下载回来按照步骤2的方式来自己写用例执行测试、记录BUG、提交测试报告等内容(如果你去面试公司的时候拿着你的测试报告以及BUG单的话,成功率会高很多);
延伸阅读:关于小编对软件测试的一些理解
作为一位软件测试工程师,最重要的是建立自己的测试思维。因为测试思维相当于你有关软件的世界观,这个跟开发的世界观是不同的;因为对于开发而言,他们是目标型的世界观,即需求要完成什么我去完成,如果你在开发中待的时间太长,容易习惯这样目标型世界观;而测试关注的是多方面的,有时候,就是一些在开发所谓的不可能、无所谓的东西最后造成软件的失败。
如何建立自己的世界观呢?那就要通过测试的方法论的理解,举个例子:很多人喜欢把黑盒测试方法论、白盒测试方法论,分得很清楚,其实两者是相通的,看懂这些东西很快的,但是悟透,这个过程会漫长。进一步之后需要会的知识会越来越多。
希望你不要被我写得这么多东西吓到了,这些知识是在软件测试的进化过程中慢慢积累起来的,不是所有人都一开始就会了,如果你是计算机专业毕业的,那么计算机硬件、网络、操作系统、数据库什么的都应该在学校的时候有学到的,所以应该不是问题。
一个初级功能工程师所需要的基本素质:
1、软件测试的基本方法(边界值、等价类、错误分类、流程分析等等黑盒、白盒测试方法要有了解,并且掌握)这个不难,但请务必牢记在心中,它是你去建立自己世界观的基础,所有的测试逃不出这些方法;
2、会写的基础的测试文档(测试用例、缺陷报告等);
3、会看开发文档(需求说明书、操作手册);
4、知道软件工程中,测试所需要做的事情,了解性能测试、安全测试等。
当你有了基础,同时也有了自己的世界观,祝贺你已经入门了,这个时候,我建议你可以去了解不同软件开发不同环节人所做的事情,不单单是开发,需求、设计、运维等等,因为这样你会知道什么是体系、规范,为你以后的发展有着很好的帮助,这也是测试相对于开发优势的地方,开发更关注的是点,而测试要关注的是面,所以对于测试而言,除了准确的抓住细节的同时,大局观要好,否则做不好测试。
软件测试是一个入门简单、但深入浅出的工作。
入门的时候只要会看懂中文、理解能力没问题就可以按照测试用例来执行用例了。
最后才是细节技术就是所谓的白盒测试、性能测试、自动化、安全等等,这些其实对测试而言反而是小节,技术永远不会阻碍你前行的脚步,反而思维,这个你可以根据自己喜好去发展,没有固定模式。
最后是小编自己学习路线:想要以下小编学习资料笔记文档的关注头条关联公众号:阿里大叔说测试
史上最牛零基础软件测试学习路线:
功能测试基础理论实战专题
基础/流程/BUG/兼容性/Web体系...
- 软件测试基础概念和软件测试分类
- 软件测试定义&软件测试目的&软件测试行业前景分析
- 软件测试的分类及概念说明
- 软件开发流程、生命周期以及开发模型(瀑布,V,W,敏捷开发模型)
- 软件测试八大原则及详解
- 软件测试的误区&软件测试分类及概念说明
- 软件的生命周期及各阶段具体活动及常见开发模型
- 软件测试流程及相关文档编写规范
- 软件测试流程(需求分析&测试计划&测试方案&测试用例&测试报告规范)
- 测试需求分析:为什么要做需求分析及需求分析的作用及需求分析的流程
- 软件测试用例设计规范及用例要素详解&实操应用
- 软件测试用例设计方法:等价类,边界值 ,场景法案例详解
- 软件测试用例设计方法:错误推测法,因果图法,判定表法案例详解
- 软件测试用例设计方法:正交试验法案例详解
- 软件测试用例的评审(组内评审,三方会审)及小项目实操用例
- 软件测试报告编写规范&s应用实战&测试结果分析
- Bug流程,生命周期及管理工具详解
- 什么是Bug以及Bug的分类和级别定义
- 如何有效记录Bug以及优化Bug再现步骤
- Bug报告内容&Bug报告的5C原则和二八定理
- Bug的生命周期&Bug流程及BUG状态及BUG跟踪
- 常用的缺陷管理工具及缺陷管理工具禅道详解
- 兼容性测试、版本控制工具、Web体系详解
- 浏览器兼容性测试的重要性和原因
- 浏览器兼容性测试场景和测试工具详解
- 版本控制工具SVN的使用
- 版本控制工具Git,GitHub,Gitee的使用
- 文件扩展名,Dos命令,批处理命令以及网络配置IP/TCP协议
金融项目功能测试实战专题
项目实战:计划/用例/评审/Bug提交...
- 金融项目立项&项目实战需求分析
- 项目组创建/测试项目需求分配/了解熟悉测试需求
- 需求评审/沟通需求疑点
- 项目任务及时间的规划、测试计划的编写
- 根据项目需求文档,进行需求分析,详细列出测试点
- 复核需求分析测试点,测试点整理
- 金融项目实战测试计划编写和评审
- 根据项目需求分析以及测试点量化后编写测试计划文档
- 测试计划文档评审和优化
- 金融项目实战之测试用例设计及评审
- 根据测试点结合用例设计方法设计编写测试用例
- 用例评审,优化测试用例,达到一定的覆盖率,避免漏测
- 金融项目实战之bug提交,跟踪以及评审
- 熟练使用BUG工具,熟悉BUG流程
- 好的BUG单编辑规范及注意事项及对BUG单点评
- BUG状态的跟踪,直到BUG关闭
- 金融项目实战测试报告编写和评审
- 项目总结&测试报告编写&项目结果分析与汇总
- 测试报告文档评审和优化
App专项测试项目实战专题
App功能/弱网/Monkey/H5/小程序...
- App专项测试之H5和小程序测试
- App测试技术&App项目常见测试问题
- H5测试技术&小程序测试技术
- App专项测试之日志分析
- App专项测试之APP项目测试实战
- App项目敏捷开发模式之项目立项
- App项目敏捷开发模式之任务认领
- App项目敏捷开发模式之需求分析
- App项目敏捷开发模式之测试执行及总结
- App专项测试之性能、弱网、Monkey测试
- App专项测试之介绍&App专项测试之兼容测试
- Monkey测试之Monkey基础参数及高阶参数使用
- 弱网测试概念及FiDDLer配置弱网
- 弱网测试之Emulator工具使用及数据参考
- GT工具获取CPU、内存>工具获取流畅度、耗电量、流量
- soloPi获取基础性能指标及录屏分帧
Linux服务器操作系统专题
安装/远程工具/常用命令/环境搭建...
- Linux起源,安装以及解析器详解
- Linux的起源
- Linux的硬件、内核等层级关系
- Linux系列:CentOS,Ubuntu,Redhat
- Vmware虚拟机以及Linux安装详解
- Linux命令解析器详解
- 功能测试理论实战专题阶段性面试题清考
- Linux网络配置,常用命令以及远程工具
- Linux最常用的是命令以及目录结构
- Linux网络连接模式以及IP地址配置详解
- 远程连接工具XShell,SSH,CRT等使用
- Linux如何重启网络服务
- Linux关闭防火墙命令详解
- Linux网络配置、虚拟网卡问题解决方案
- Linux文件和文件夹命令详解
- Linux文件类型详解
- Linux文件夹新建,删除,复制,剪切命令
- Linux文件新建,删除,复制,剪切以及重命名命令详解
- Linux文件查找find搜索命令
- Linux文件,文件夹以及通配符的使用
- Linux文件查看命令:Cat,More,Less,Head,Tail
- Linux文件vi编辑命令
- Linux文件权限的处理
- Linux中zip,rar,tar.gz压缩和解压操作
- Linux搭建JAVA项目测试环境实战
- 实战项目环境介绍:开发环境,测试环境,生成环境,预发布环境
- Linux服务器硬件环境
- JAVA项目测试环境搭建之JDK安装以及环境配置
- JAVA项目测试环境搭建之WEB服务器tomcat安装和配置
- JAVA项目测试环境搭建之数据库安装和配置
- JAVA项目之WAR项目包配置
Mysql数据库操作实战专题
安装/服务/SQL命令/高级查询/统计...
- Mysql数据库基础、安装、启动和停止
- 数据库的基础概念以及和应用程序的关系
- Mysql的简介、特点和常用的客户端介绍
- Mysql数据库安装以及启动和停止命令初识
- Mysql客户端图形界面以及命令行实操
- Mysql数据库常见SQL命令使用
- 创建数据库&查看数据库&默认数据库作用详解
- 查看表命令&用户管理&权限管理&设置远程连接
- Navicat使用详解,建表&设计表&用户管理&权限管理
- Mysql存储引擎,DDL&DML&DCL&TCL语句详解
- Mysql数据库基本查询语句详解
- Mysql数据库高级SQL命令使用
- 掌握常见字段类型、约束,非空约束,主键自动生成
- 单行/多行子查询、分页查询、常用函数使用
- 单/多表分组统计查询(group by、常见分组函数、having)
- Mysql数据库多表连接(inner join、left join、right join)
- Mysql派生表以及联合查询
API接口测试工具实战专题
用例设计/Postman/jmeter/Fiddler...
- API接口测试理论基础以及文档设计实战
- API接口的概念和接口测试的概念
- API接口测试流程
- API接口测试策略
- API接口测试用例设计
- API接口测试执行
- API接口测试报告
- 精通Postman接口测试工具项目实战
- 接口测试工具介绍
- Postman简介和安装以及Postman的登录和注册。
- Postman发送Get请求,Post请求实战以及页签详解
- Postman环境变量和全局变量
- Postman接口关联实战
- Postman内置动态参数以及自定义动态参数
- Postman常规断言,动态参数断言以及全局断言。
- Postman接口测试之CSV或json文件实现数据驱动
- Postman必须带请求头的接口测试实战以及常用请求头详解。
- Postman实现接口Mock Server自定义接口服务器
- Postman接口测试Cookie鉴权以及Token鉴权实战。
- Postman接口加密(Base64,MD5,RSA,DES,RES)解密实战
- Postman+Newman+Jenkins实现接口自动化测试持续集成。
- 精通Jmeter接口测试工具项目实战
- 接口测试分类,接口架构,jmeter安装、Jmeter目录介绍和界面详解
- jmeter常用组件(包括组件细节)以及组件的执行顺序和组件的作用域
- 接口测试流程以及发送不同的请求方式、不同参数类型(键值对,json,文件上传)的请求。
- 逻辑控制器(foreach控制器,if控制器等)和定时器(固定,高斯,同步)
- 接口关联:正则表达式提取器和Json提取器
- 动态参数处理(通过自带的函数,时间戳函数,随机数函数)
- Jmeter断言以及Jmeter接口调试(调试取样器以及结合fiddler调试)
- txt或者csv数据驱动文件处理
- 需要带请求头的接口以及需要加解密的接口处理。
- jmeter代理服务器实现脚本录制
- jmeter组件beanshell脚本语言
- jmeter执行websocket协议以及dubbo协议接口测试
- Jmeter执行数据库的操作
- jmeter非GUI运行以及常用的参数使用以及Jmeter+Ant+Jenkins实现持续集成。
- 精通Fiddler抓包工具项目实战
- Fiddler抓包的原理
- Fiddler下载安装和证书生成器
- Fiddler抓包界面常用功能介绍
- Filters过滤如何抓取想要的包
- Fiddler如何精准定位前后端Bug
- Fiddler抓取https协议的包
- Fiddler弱网测试
- Fiddler网络胁持和线上调试
- Fiddler抓取手机App的包
Python自动化测试实战专题
Python/Web自动化/接口自动化...
- Python基础语法以及流程控制
- Python函数和模块以及异常处理
- 基于Python的WEB自动化测试
- 基于Python的接口自动化测试