零基础怎么学习软件测试
一、了解测试ye基础
例如测试流程,测试方法,测试用例的编写,软件测试计划编写,包括测试的主流模型,还有缺陷管理工具(如禅道jira或其它),了解数据库,这里的了解是指增删改了解,并且“查”要尽量做到熟练。
二、学习并掌握计算机网络方面的知识
主要是协议之类的(如netbeUI协议,IPX/SPX,TCP/IP,OSI等这些协议),然后在把app跟web测试的测试方法及流程,测试思路,前后台的逻辑分析,包括测试点及测试的范围,都细心标记,主要是工具的结合使用。这样能为你后续的工作提高效益,也不至于出现在工作中不知道怎么介入和开展工作的情况。
三、软件测试技术成长
软件测试技术成长可以从以下几个问题入手,去进行查漏补缺,去进行学习!
功能方面:如何设计测试用例?如何进行发散测试?如何防止漏测?
性能方面:用户常用的功能如何才能体验性更好,速度更快?
安全方面:软件有没有做最基本的安全防御?常见的SQL注入,CSRF攻击是否对我们的软件安全有威胁?你的软件足够的安全吗?
自动化方面:自动化是什么?在什么情况下做自动化?哪些功能测试用例适合通过自动化脚本来执行?
四、要想有效快速学习软件测试,良好的时间管理方法对你大有裨益。
时间管理每个人有自己不同的方式,对我来说最受益的两条建议就是:
1.按照工作的优先级进行处理,可以参考时间管理的工作四象限法。
2.对自己每天的时间进行记录,长期归纳总结,得出最适合自己的时间管理方案。
给大家分享一份2021年最新的软件测试学习导图、路线(导图详细到每个知识点,上传过程中有压缩,需要原图的小伙伴,可以私聊我),以及往期配套学习视频,希望对正在学习的你有所帮助。
一、新手入门
阶段目标
课程目标
知识点
课程目标
知识点
课程目标
知识点
课程目标
知识点
阶段目标
课程目标
知识点
课程目标
知识点
课程目标
知识点
课程目标
知识点
阶段目标
课程目标
知识点
课程目标
知识点
课程目标
知识点
1、以培养初级系统/功能测试工程师为目标,学员通过对各种基本测试概念、测试过程和方法,以及测试设计方法的学习,结合系统测试的实际项目全流程实战。
2、扎实地掌握初级软件测试工程师所需要具备的全部技能,完全能够胜任一般企业里的功能测试工程师、系统测试工程师的职位和相关工作。
(一)系统测试
1. 掌握软件测试的基本概念、测试过程及测试方法,了解软件测试工程师的主要工作内容。
2. 熟练应用测试用例设计方法,能够根据不同测试设计方法的应用场景选择对应的测试设计方
法来设计测试用例。
3. 熟悉测试过程及项目实施流程,能够执行测试及将测试过程中找到的缺陷填入缺陷报告并进行管理。
4. 熟悉测试报告编写方法,在项目完成后能够熟练编写测试报告,总结测试中的相关数据及问题。
5. 能够独立完成一个项目的全流程功能测试工作,胜任功能测试工程师的岗位
1、软件测试基础概念、测试类型及定义、软件测试流程、需求分析、需求跟踪矩阵及应用
2、测试点分析及测试点提取、主流测试用例设计方法、测试用例编写、缺陷生命周期管理
3、缺陷报告编写、测试报告编写、禅道管理工具应用、系统测试项目实战(Woniu进销存管理系统)
(二)Python开发
1. 熟练掌握Python测试开发中需要用到的Python语言
2. 能够利用Python语言完成基本的功能并能阅读简单的代码程序
3. 能够利用Python编写测试代码,理解编程中各种常见的概念
4. 熟练掌握Python的各种代码技巧,实现Python测试中的各种功能
1、Python安装及环境搭建、基础语法及编程规范
2、六大基本数据类型及应用、循环及判断、函数定义和使用、模块及包导入
3、正则表达式使用、面向对象编程、Python文件对象使用
(三)MySql数据库
1. 熟悉测试工作中要用到的常规知识点和技术点
2. 能够自行安装、配置、使用Mysql数据库
3. 熟悉Mysql常用命令,并且能够使用这些命令完成测试相关的工作
1、数据库基本概念、Mysql数据库安装和配置
2、创建数据库和表、数据库约束及数据库设计方法
3、数据库三大范式及其应用场景、增删改查操作
4、数据库多表连接原理、常见多表连接查询操作、分组聚合函数、数据库子查询
(四)Linux操作系统
1. 掌握Linux常用命令,能够对常见Linux系统进行安装和配置
2. 能够使用LInux命令进行测试环境搭建
3. 了解Linux常见的资源参数命令,为后面的性能优化打下基础
1、Linux系统简介、安装和配置
2、Linux文件系统特点、目录结构
3、Linux用户管理、目录管理、文件管理、系统设置、网络通信、磁盘管理、备份压缩
4、Linux系统环境搭建实战
二、上手干活
1、以培养初中级自动化/接口测试工程师为目标,通过系统地学习自动化测试、接口测试以及性能测试相关的技术和工具,学员能够扎实地掌握目前企业里面主流的自动化、接口、性能测试工具,包括移动端的测试
2、可以通过纯Python代码编程实现相关的测试类型,完全能够胜任初中级测试开发、自动化/接口/性能测试工程的职位和相关工作。
(一)自动化测试实战
1. 熟练掌握自动化测试相关的概念和工具使用
2. 熟练掌握自动化测试中的对象识别和对象操作方法
3. 熟练掌握自动化测试中的断言方法
4. 能够利用unittest框架或Pytest框架完成自动化测试
5. 能够生成美观漂亮的测试报告
1、自动化测试基本概念、优劣势
2、自动化测试用例设计、自动化测试流程、自动化测试常见工具
3、selenium webdriver的安装和配置、八种对象识别方法的应用
4、webdriver的常用API介绍、常见元素对象操作函数、等待时间的设置
5、unittest测试框架介绍、setUp方法和tearDown方法的使用、在unittest中定义测试方法6、6、testsuite测试组件的使用、断言的概念及使用、对操作进行截图、利用HTMLRunner生成测试报告
(二)接口测试实战
1. 熟练掌握各种常见的网络协议及内容
2. 熟练掌握Python发起网络请求的方法
3. 熟练掌握利用Python完成接口测试的方法
4. 熟练掌握各种常用网络工具完成抓包的方法
5. 熟练掌握POSTMAN等常见的接口测试工具
1、网络协议基本概念、HTTP协议基础
2、HTTP请求过程、HTTP中的get和post请求
3、Python常用HTTP请求库的安装和配置、接口的概念和接口测试的测试方法、常见后端接口类型
4、HTTP和HTTPS协议的区别、常见抓包工具应用之浏览器抓包、常见抓包工具应用之fiddler抓包、利用fiddler抓取HTTPS数据包
5、用Python的HTTP库构造GET/POST请求、获取HTTP请求的返回值、对接口返回值进行断言、对加密接口请求的处理
6、Python接口测试实战、接口常用工具之POSTMAN实现接口调试
(三)性能测试实战
1. 掌握性能测试的基本概念和基本原理
2. 能够根据系统性能需求设计合理的性能测试场景
3. 能够使用Python结合多线程等方式实现性能测试脚本
4. 熟练掌握Jmeter等商业性能测试工具的使用
5. 了解常见的性能参数优化的方式和办法
1、性能测试概念、性能测试常见术语及其理解
2、性能测试需求分析、用例编写
3、Python结合多线程开发原生性能测试脚本、监控服务器性能指标,及结合多线程设计门型和拱形应用场景
4、基于woniusales实现完整的性能测试脚本开发和实施、及常用主流性能测试工具对比
5、JMeter工具的组件功能介绍、实现接口测试功能、设置多线程实现性能测试、完成性能测试的结果管理、实现对响应的断言、参数化与变量引用、性能测试综合实战
(四)移动端自动化测试实战
1. 熟悉移动端测试的主要特点
2. 了解移动端测试和web端测试的主要区别
3. 熟练掌握移动端常见专项测试的测试方法
4. 能够熟练利用Python实现移动端的专项测试
5. 熟悉常见的adb命令及相关测试工具
1、移动端测试的特点、移动端测试与web测试的异同比较
2、Android SDK安装与配置、模拟器安装配置、常用ADB命令的使用、Appium工具介绍3、3、Appium Desktop环境搭建、安装Python的Appium库、Appium的工作原理
4、APP启动信息配置、Appium的对象识别方法、利用Appium完成移动端项目测试实战
三、技术进阶
1、培养目标是针对企业中高级测试开发工程师、全栈测试开发工程师职位。
2、通过完成设计和实现自动化测试框架、接口测试框架和持续集成框架,学员可具备当前行业内大部分企业相关主流职位的全部技术栈要求,完全能够胜任中高级全栈测试开发工程师、自动化测试工程师以及接口性能测试工程师等职位。
(一)自动化测试框架设计及开发实战
1. 熟悉自动化测试框架的几种不同类型及应用场景
2. 熟悉数据驱动框架的设计和实现过程
3. 熟悉关键字驱动的设计和实现过程
4. 熟悉POM测试模型的设计和实现过程
5. 熟悉日志模块的设计和实现过程
6. 熟悉自动化测试框架从需求分析到生成测试报告全流程
1、测试框架的概念及意义、常见框架设计模式
2、在unittest框架中使用ddt模块实现数据驱动、以文件形式读取数据并封装数据驱动框架
3、关键字驱动框架的意义和使用场景、利用类反射构造关键字
4、重新根据关键字驱动模型重构excel读取方法、关键字驱动项目实战
5、二次封装webdriver里面的方法
6、PageObject设计模式的概念及应用场景、代码封装思路、项目实战
(二)接口测试框架设计及开发实战
1. 熟悉接口测试框架的结构和运行原理
2. 熟悉基本的接口测试框架代码实现
3. 熟悉具有数据依赖的请求上下文之间的处理
4. 能够实现从接口测试框架设计到实现全流程工作
1、接口测试框架组成架构、为接口测试框架设计excel结构、重构excel操作函数
2、封装对JSON数据格式的操作、重构JSON操作类、封装读取常量的方法、封装获取3、接口数据的类、接口测试框架主流程封装及错误调试、返回数据处理及错误调试、封装断言模块对接口返回结果进行判断
4、将测试结果写入结果文件、解决接口间的数据依赖问题、数据依赖流程代码实现
(三)Docker及Jenkins持续集成测试框架
1. 了解持续集成的概念及意义
2. 熟悉持续集成的工作过程和流程
3. 熟悉持续集成相关工具的应用,如Docker,Git、Jekins等
4. 能够熟练利用Jenkins+Python实现持续集成和远程部署
1、Docker的基本介绍和核心功能、整体架构介绍、底层实现原理、版本了解及安装配置使用方法
2、Docker基础命令与应用、Docker镜像管理相关命令应用
3、Docker中容器的概念、持续集成介绍及环境要求
4、Jeknins持续集成框架、持续集成中结合邮件通知服务、持续集成中实现定时执行工程
5、git基本功能介绍及安装配置、常用命令及应用、gitee介绍及工程创建、利用git上传文件到gitee远程仓库、整合应用:利用gitee保存并管理项目代码
由于无法发链接,欢迎小伙伴前来我们官网学习对应的免费视频,凡云教育最新直播速成就业班即将开课,后期会陆续更新最新学习视频,敬请期待~
基本概念
测试是为了发现程序中的错误而执行程序的过程,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作,软件测试人员必须具有创新性和综合分析能力,必须具备判断准确、追求完美、执着认真、善于合作的品质,以及具有丰富的编程经验与查检故障的能力。
详细分类
1、按照软件内部结构和实现
1)白盒测试:已知产品的内部工作过程,可以通 过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查
2)黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求
3)灰盒测试:介于白盒与黑盒之间,在关注输出正确的同时也考虑内部的实现逻辑
2、按照是否执行程序
1)静态测试:不执行程序本身,仅经过分析或检查源程序的语法、结构、过程、接口等
2)动态测试:运行被测程序,检查运行结果与预期结果的差异
3、按照开发阶段
1)单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能
2)集成测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试
3)确认测试:检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确
4)系统测试:把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试
5)验收测试:产品发布前进行的确保用户能正常使用的测试过程
4、按照测试目的
1)回归测试
2)压力测试
3)性能测试
4)稳定性测试
5)其他专项测试