关于测试技能方向的发展与提升


前言

本文内容相当于测试从入门开始的学习顺序,介绍了关于软件测试具体需要学习的技能、工具及发展。具体知识点和相关内容可自行百度(百度还是相当强大的),本文只对测试工作做一个提纲。


提示:以下是本篇文章正文内容,后述内容供参考

一、测试需要学习目标及任务?

1.前置基础知识

计算机基础
	测试理论
	B/S框架和C/S框架
	常用DOS命令
	服务器、域名
测试理论
	软件测试的目的
	软件测试的定义
	软件测试的原则
	产品质量模型
	测试基本流程
HTML基础
	HTML基础语法
	标签属性
	图片标签
	超链接
	锚点
	表单
CSS基础
	CSS基础语法
	CSS四类选择器
	常用文字属性
	行高属性
	边框
	盒子模型
	内外边距
JS基础
	JS基础语法
	JS引入方式
计算机组成原理

2.linux和数据库

LINUX
	操作系统介绍
	操作系统的发展史
	CentOs图形界面
	文件和目录
	常用linux命令使用
		基本操作命令
			https://www.cnblogs.com/UncleYong/p/10637238.html
	vim文本编辑器的使用
数据库介绍
	数据库的基本概念
	关系型数据库的介绍
	MySQL的安装及使用
	Navicat的使用
SQL语言(重点)
	数据表操作
	数据基本操作-增删改查
	条件查询
	排序
	聚合函数
	分组
	分页
	连接查询
	子关联
	子查询
	子查询演练
数据库高级功能
	数据库设计
	命令行操作数据库
	视图
	事务
	索引
	外键
	用户名密码
	mysql日志

3.测试基础

软件测试理论
	软件测试的分类
		按测试方法分类
			黑盒测试
				黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。
				等价类划分法
					等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。使用该方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。
				边界值分析法
					边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
				因果图法
					因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
				错误推测法
					错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测当前被测程序中可能存在的缺陷和错误,有针对性地设计测试用例。
			白盒测试
				白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。
				程序结构分析
				逻辑覆盖方测试
				执行测试用例
				撰写测试总结
			灰盒测试
				灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
				灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。
		按测试方向分类
			功能测试
			性能测试
			安全测试
			兼容性测试
			UI测试
			易用性测试
			稳定性测试
			APP专项测试
				弱网测试
				权限测试
				安装、卸载、更新测试
				场景交互测试
				资源争用测试
				消息推送测试
				资源监控
		阶段分类
			单元测试
				对软件中的最小可测试单元进行检查和验证
			集成测试
				组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试
			系统测试
				是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方
			验收测试
				在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试
		对象分类
			APP测试
			WEB测试
			物联网测试
			车联网测试
			大数据测试
			AI测试
			小程序测试
		状态分类
			动态测试
				动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能
			静态测试
				静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错
		其他分类
			回归测试
				回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本
			冒烟测试
				在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程
			埋点测试
				数据采集是提供给运营工作人员去了解手机app对于某些模块、场景的用户使用情况,进行的一个触发埋点,将埋点采集到的数据到的数据进行上报的过程
			MOCK测试(打桩测试)
				在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法
	软件开发模型和测试模型
		边做边改型
		瀑布模型
			将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动
			线性模型
		快速原型模型
			快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求
		螺旋模型
			将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统
		增量模型(演化模型)
			整个产品被分解成若干个构件,开发人员逐个构件地交付产品
		智能模型
			拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码
		喷泉模型
			喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期
		迭代式模型
			统一软件开发过程,统一软件过程)推荐的周期模型
	软件的质量模型
		功能性(Functionality)
			适应性(Suitability)——对规定任务能否提供一组适应任务的功能的能力。
			准确性(Accurateness)——是否能够得到正确或相符的结果的能力。
			互用性(Interoperability)——与其他规定的系统进行交互的能力。
			依从性(Compliance)——软件是否符合相关标准、法律法规等的能力。
			安全性(Security)——是否能避免对程序及数据非法访问或意外访问的能力。
		可靠性(Reliability)
			成熟性(Maturity)——由故障引起软件失效的频率。
			容错性(Fault tolerance)——在出现错误后维持规定的运行的能力。
			易恢复性(Recoverability)——在故障发生后恢复至正常状态的能力。
		易使用性(Usability)
			易理解性(Understandability)——用户为理解软件逻辑及应用所要付出的努力。
			易学性(Learnability)——用户为了学习软件使用所要付出的努力。
			易操作性(Operability)——用户对软件进行操作和控制所要付出的努力。
		效率(Efficiency)
			时间特性(Time behavior)——响应和处理及软件执行功能时的所需耗费的时间(吞吐量)。
			资源特性(Resource behavior)——响应和处理及软件执行功能时所需耗费的资源及持续时间。
		可维护性(Maintainability)
			易分析性(Analyzability)——为诊断缺陷或失效时所需付出的努力。
			易改变性(Changeability)——为对软件进行修改、排错等所需付出的努力。
			稳定性(Stability)——对软件进行修改后造成风险或无法预期结果的频率。
			易测试性(Testability)——为确认软件修改是否有效所需付出的努力。
		可移植性(Portability)
			适应性(Adaptability)——软件转移到不同环境时所需付出的努力。
			易安装性(Installability)——在指定环境下安装软件所需付出的努力。
			一致性(Conformance)——软件是否符合可移植性的约定。
			易替换性(Replaceability)——软件在该环境中替代指定软件的能力。
	测试用例的设计和要素
软件生命周期
	需求分析阶段
		在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,也是在整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。
	软件设计阶段(概要设计和详细设计)
		主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件编码阶段:是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
	软件测试阶段
		在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
	软件运行和维护阶段
		是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。
测试方法
	等价类划分方法
		等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。使用该方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。
	边界值方法
		边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
	因果图
		因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
	判定表
		也称决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合
	状态迁移法
		很多需求可以用状态机的方式来描述,状态机的测试主要关注状态转移的正确性。
			给定条件是否产生正确的状态变化;
			是否会产生非法的状态变化;
			有无不可达的状态和非法的状态;
	正交
		正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验
	场景
		测试场景是可以测试的任何功能。它也称为测试条件或测试可能性。作为一名测试人员,您可以将自己置身于最终用户的角色,并找出真实世界的场景和使用中的应用程序案例。
			1、创建测试场景可确保完整的测试覆盖率。
			2、测试场景可以得到业务分析师,开发人员,客户等各种利益相关方的批准,以确保对测试中的应用程序进行全面测试。它确保软件适用于最常见的用例。
			3、测试场景可以作为确定测试工作量的快速工具,从而为客户创建提案或组织员工。
			4、测试场景有助于确定最重要的端到端事务或软件应用程序的实际使用。
			5、为了研究程序的端到端功能,测试场景至关重要。
测试用例设计
	黑盒测试用例设计方法
	白盒测试用例设计方法
缺陷管理
	缺陷的定义
		软件缺陷(Defect),常常又被叫做Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。
	缺陷的判定标准
		1.软件未达到产品说明书中已经表明的功能;
		2.软件出现了产品说明书中指明不会出现的错误;
		3.软件未达到产品说明书中虽未指出但应当达到的目标;
		4.软件功能超出了产品说明书中指出的范围;
		5.软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。
	缺陷报告
		①缺陷编号(Defect ID):提交缺陷的顺序
		②缺陷标题(summary):简明扼要的描述缺陷
		③缺陷的发现者(Defected By):测试人员
		④缺陷发现日期(date):一般为当天
		⑤缺陷所属的模块(subject):在测试哪个功能模块时发现的bug.
		开发组可以据此决定由谁负责修改该bug
		⑥发现缺陷的版本(Defected in release):
		⑦指派给谁处理(Assigned to):测试人员指派给开发经理,开发经理根据缺陷所在的模块,需要再次指派具体的开发人员。
		⑧缺陷的状态(status):缺陷此时所处的处理阶段或处理情况
	缺陷跟踪流程
		1、测试人员提交缺陷
		2、开发人员确认并修复缺陷
		3、测试人员回归缺陷
		4、回归通过,测试人员关闭缺陷
		5、回归不通过,测试人员重新打开缺陷
		6、开发可以提出在后期版本修复缺陷或者拒绝缺陷,根据具体情况处理。
测试环境搭建及部署
	pm2
		项目部署与基本操作使用
	docker
		项目部署与基本操作使用
		docker基本操作
	k8s/k3s(kubernetes)
项目迭代更新与管理
	git
		Git的奇技淫巧.pdf
	jenkins(ci/cd)
web项目实战
	搭建项目测试环境
	项目的测试流程
		开发阶段测试
			模块功能测试
			集成测试
			文档检查
		完工验收测试
			安装测试
			功能验证
			性能测试
			需求验证
			文档测试
	功能测试分析
	状态迁移法的使用
		是一种基于产品规格分析,对系统的每个状态及与状态相关的函数进行测试,通过不同的状态验证程序的逻辑流程
	流程测试分析
		基本流
		备选流
		异常流
	非功能测试分析
	测试报告编写
	fiddler抓包
测试管理工具
	禅道的使用
	jira的使用

4.编程+数据结构

python基础
	pyrhon开发环境搭建
	python变量
	流程控制语句
	高级变量类型
	函数应用
	文件操作
	面向对象
		魔术方法
	异常处理
	模块和包
Java基础
面向对象
	类和对象的概念
	对象成员
	多层继承
	多态
	类属性和实例属性
	实例方法
	类方法
	静态方法
异常处理
	异常的作用
	捕获异常
	自定义异常
	异常的传递规则
	快速排序
	归并排序
模块和包
	模块和包
	_all__的用法
	import语句
	from......import...的用法

5.接口测试

接口基础
	接口及接口测试概念
		接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。
	HTTP
		HTTP协议
		HTTP请求过程
		TCP/IP协议
		HTTP状态码及基本解决
	接口规范
	项目环境说明
	接口测试流程
		1、需求分析
		2、Api文档分析与评审
		3、测试计划编写
		4、用例设计与评审
		5、环境搭建(工具)
		6、执行用例
		7、缺陷管理
		8、测试报告
Postman实现接口测试
	postman的介绍和安装
	postman的基本用法
	postman测试报告
数据库操作
	数据库介绍
	数据库的基本操作
	数据库的事务操作
	数据库管理工具-navicat
代码实现接口测试
	request库
	集成UnitTest
	接口测试框架开发
	项目实战
持续集成
	request库的使用及脚本封装
	unittest框架
	mock实现
接口测试扩展
	mock测试
	接口测试总结

6.web自动化

WEB自动化入门
	自动化测试的理论知识
	主流的web自动化测试框架介绍
	Selenium的发展历史和工作原理
	元素查看工具使用
	环境搭建
WEB自动化基础
	元素基础定位方法
	Xpath和CSS元素定位方法
	元素常见操作
	浏览器操作方法
	鼠标键盘操作
	显式等待和隐式等待
	HTML特殊元素处理
	窗口截图
	验证码处理
WEB自动化中级
	UnitTest框架
	Flxture
	UnitTest断言
	参数化
	测试报告
WEB自动化高级
	PO模式
	数据驱动
	日志处理
项目实战
	UnitTest与HTMLreport的结合使用
	UnitTest与DDT结合,实现数据驱动
	UnitTest与logging结合使用

7.移动自动化

APP测试基础
	APP应用系统架构
	APP敏捷开发模式
	APP应用测试要点
	业务功能测试
	兼容性测试
	交叉事件测试
	性能测试
	用户体验测试
移动自动化基础
	移动端测试分类及特点
	ADB命令及Monkey使用
	appium环境搭建
	appium工作原理
移动自动化中级
	APP和手机系统操作
	元素定位
	元素操作
	高级手势操作
	混合APP测试
	PyTest测试框架
	定制测试报告
	YAML数据读写
移动自动化高级
	PO模式
	数据驱动
	Git
	Jenkins项目持续集成

8.性能测试

性能测试基础
	性能测试理论
	性能测试分类
	性能测试常用指标
	性能测试流程
	性能测试步骤
	LoadRunner的安装与注册
	LoadRunner的原理
性能测试工具
	Jmeter环境搭建
	Jmeter功能概要
	元件作用及执行顺序
	线程组
	参数化
	断言
	连接数据库
	定时器
	分布式
	测试报告
项目-接口性能测试
	项目API文档分析
	接口清单梳理
	接口脚本设计
	并发数据计算
	逻辑控制项目应用
	单一场景搭建
	常用响应图表搭建及应用
项目-web性能测试
	脚本录制
	正则过滤
	cookie管理器
	事务控制器
	思考时间
	web性能脚本执行与分析
性能测试调优
	windows服务器性能监控
	linux服务器性能监控
	性能测试报告

9.安全测试

题主对安全测试了解不多,暂时搁置等待后续更新

10.项目综合实战

功能测试
	功能测试用例设计思路
	自媒体端测试
	后台管理端测试
	用户APP端测试
UI自动化测试
	Selenium Grid
	编写自动化测试脚本
接口测试
	windows服务器性能监控
	linux服务器性能监控
	性能测试报告
性能测试
	Locus框架
	APP性能测试
安全测试

二、测试过程中所用到的工具

1.通用技能

业务相关
业务需求知识
业务管理流程

2.抓包工具

fiddler
charles
wireshark

3.缺陷管理工具

jira
禅道

4.文档协作工具

wiki-协同创作超文本系统
Xmind-思维导图软件

5.接口测试工具

Postman
HttpRequester

6.压力测试工具

Jmeter
LoadRunner
Gatling

7.安全测试工具

AWVS--网站及服务器漏洞扫描软件
sqlmap--检测与利用SQL注入漏洞的免费开源软软件
Nmap--网络扫描和嗅探工具

8.客户端测试工具

adb命令
兼容性测试
	系统兼容性
	屏幕分辨率
	屏幕类型
	导航栏类型
	厂商兼容

9.服务端测试

后续更新

10.性能压力测试

Jmeter
LoadRunner
Gatling

11.H5性能测试

Chrome Dectool
W3C Performance API

12.自动化测试工具

UI自动化测试
	安卓自动化测试
		UIAtumator
		appium
		UIAtumator2
		AirTest
	IOS自动化测试
		WebDriverAgent
		appium
		AirTest
	Web自动化测试
		Selenium
	微信小程序自动化测试
	ChromeDriver
接口自动化测试
	Python+request
	Java+rest-assured
	Robot Framework
	HttpRunner
	Postman+Newman
	Jmeter+Ant
	Vue+Flask&Django

13.弱网测试

Charles
AppCrawler

14.专项APP性能测试

PerfDog
adb(安卓)
FFmpeg(音视频)

15.客户端性能测试

内存
	Android Studio Profile
	PerfDog
	eakCanary
CPU
	Android Studio Profile
	Android Monitor
	PerfDog
	IOS instruments

16.稳定性测试

Monkey
MonkeyRunner
MonkeyScript
AppCrawler

17.耗电量分析

dumpsys batterystatus
Battery-Historian
BugReport

18.编程相关

java
	Testng
	Junit
shell
	linux基本命令( find、netstat、ps等)
	linux三剑客
		awk
		grep
		sed
DataBase
	MySQL
	Redis
	MongoDB
代码版本控制
	git
	svn
IDE
	PyCharm -- Python
	Intellij -- Java
	Sublime -- shell
Python
	unittest
	pytest
	request
正则
	Python正则表达式
	Java正则表达式
	shell编程之正则表达式

19.卡顿分析

CharlesAppCrawlerSystraceOverdrawJenkins

20.持续集成

Jenkins
Jenkins Pipeline
Git SCM
Docker
K8S--基于容器的集群管理平台,用于管理容器

21.流量分析

Proxy
TCPDUMP

22.平台开发

Vue.js
Nodejs
Python Django/Flask

总结

以上就是今天要讲的内容,本文仅仅对测试工作方向及相关工具进行简单总结,在测试学习时没有方向可进行简单参考,在有些方向及细节会有缺失,内容由题主整理部分参考百度(有内容侵权即删)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值