如下是我工作之余熬夜整理的软件测试学习思维导图,通过回顾多年的从业经验,总结提炼出来的一些东西,希望能对大家有些帮助,特别是刚入门软件测试行业或将要加入软件测试行业的同学,可以认真看一下,可以作为参考和指引,对于已经加入软件测试行业的,可以重点看一下专项测试章节,看还有哪些需要提升的地方:

2023最新软件测试学习思维导图(从小白到大师进阶之路)

目录

1、测试理论知识

2、测试设计方法

2.1 等价类划分

2.2 边界值分析

2.3 因果图法

2.4 判定表法

2.5 场景法

2.6 错误推测法

2.7 正交实验法

3、测试环境部署

3.1 应用环境部署:

3.2 数据库环境部署:

4、功能测试

5、专项测试

5.1 性能测试

5.2 接口测试

5.3 自动化测试

5.4 安全测试

6、测试常用工具

7、软件质量管理

7.1 BUG管理:

7.2版本质量评估和晾晒:

8、项目实战

9、测试发展线路

1、测试理论知识

作为一名专业的软件测试人员,我们事先要具备扎实的测试理论知识,需要弄清楚以下常见问题:什么叫软件测试,测试的目的是什么,测试过程中要遵循什么原则,测试的方法是什么,以及测试流程又是怎样的。这一块大家可以到网上多多查阅相关资料或者相关书籍,我就不在这里详细介绍了。

2、测试设计方法

测试用例设计方法是测试人员必备的一项重要技能,测试用例设计的好坏直接关系到后面测试执行覆盖的程度、测试执行的充分性,因此,使用合适的测试设计方法是输出高质量的测试用例的前提。

2.1 等价类划分

等价类划分是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分成若干个等价类,然后从每个部分中选取具有代表性的数据作为测试用例进行合理的分类,等价类分有效等价类和无效等价类。

等价划分是指把输入空间划分为几个“等价区间”,在每个“等价区间”中只需要测试一个典型值就可以了。

使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。

等价类的划分有两种不同的情况:

① 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。

② 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。

典型案例:

需求规格说明书要求:工单系统中用户手机号码为1开头的11位数字,且手机号码为必填项。那么设计测试用例如下:

2.2 边界值分析

“缺陷遗漏在角落里,聚集在边界上”。边界值测试法是对等价划分法的补充。

边界值分析的基本思想是:使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值。

测试临近边界的合法数据,以及刚超过边界的非法数据。

典型案例:

就拿上面用户手机号码的例子来说,其实测试用例T01、T02、T03这三条用例的设计就用到了边界值分析法,为了看起更直观,优化为如下:

2.3 因果图法

因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出运作之间的关系。

因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出结果的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合司。

        因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

典型案例:

例如,程序的规格说明要求:输入的第一个字符必须是“#”或“*”,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是“#”或“*”,则给出信息N;如果第二个字符不是数字,则给出信息M。

(1)在明确了上述要求后,可以明确地将原因和结果分开:

原因:R1-第一个字符是“#”

            R2-第一个字符是“*”

            R3-第二个字符是一个数字

结果:E1-给出信息N

            E2-修改文件

            E3-给出信息M

(2)用因果图表示:

(3)将因果图转化为判定表:

(4)设计测试用例:

最左边两列,原因R1和R2同时为1不可能,排除掉,根据表可设计出6个测试用例。

综上,用因果图法设计测试用例一般步骤如下:

  1. 分析程序的规格说明,列出原因和结果;
  2. 找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。
  3. 将因果图转换成决策表;
  4. 根据步骤3中的决策表,设计测试用例的输入数据和预期输出。

2.4 判定表法

因果图方法中已经用到了判定表,它是分析和表达逻辑条件下执行不同操作的情况下的工具。

2.5 场景法

场景法也是较常用的一种黑盒测试方法,一般是对系统的业务和流程进行描述,验证主要功能和业务流程是否实现,场景业务流通常分为基本流、备选流、异常流程。

2.6 错误推测法

错误推测法是指在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

2.7 正交实验法

正交试验设计 法是通过正交试验理论来指导测试用例的选取,以便能够用较少的测试用例使测试充分,此方法在系统测试用例的设计中不常用。

综上,以上测试用例设计在实际项目中最常用的是等价类划分、边界值分析、因果图法、判定表法、场景法和错误推测法。

3、测试环境部署

测试环境部署是测试流程中比较关键的一步,没有测试环境,测试执行无法进行,因此,作为一名测试人员,测试环境部署是必备的一项技能,通常情况下主要涉及到应用环境的部署、数据库环境的部署、测试工具环境部署等,下面我们主要介绍一下应用环境部署和数据库环境部署:

3.1 应用环境部署:

以Java工程web项目为例。

步骤1:在linux服务器,创建用户名和密码及设置用户权限;

创建用户组:groupadd –g 888 test

创建用户:useradd  -g  test  zjydtest

useradd  -d   /home/test/zjydtest  -g  test  -m –s  /user/bin/csh –p openssl  passwd -1 zjydtest’ zjydtest

修改权限:chmod –R  777 ..  /home/test/zjydtest /

步骤2:安装JDK,首先确认项目使用的jdk版本进行安装,并设置环境变量;

说明:修改环境变量配置文件 vi /etc/profile,在文件的最后添加:

① JAVA_HOME

② CLASS_PATH

③ PATH

注意:设置完成之后并执行source /etc/profile命令,使环境变量文件生效。查看安装的JDK版本命令:java -version

步骤3:将tomcat包上传到创建的linux用户下,并解压;

步骤4:启动tomcat;

在项目所在bin目录下执行命令:./startup.sh

步骤5:查看tomcat日志信息;

执行命令:cd   /home/test/zjydtest /apache-tomcat- 8.0.9/logs,可以查看实时输出的日志信息,有助于确认和定位在测试中发现的bug。

步骤6:通过浏览器查看tomcat主页,查看页面是否可以正常访问。

步骤7:部署java项目,若是前后端分离的项目,则分别将项目的后端和前端的包上传到  /home/test/zjydtest /apache-tomcat- 8.0.9/webapps对应的目录下,并解压。

步骤8:修改配置文件,修改连接数据库服务器的ip、账号,密码,端口号等。

步骤9:修改配置文件后,需要重启tomcat服务:先执行./shutdown,然后再./startup启动服务,服务启动正常,就可以通过浏览器访问项目了.

说明:查询进程的命令ps –ef|grep zjydtest,关闭进程的命令:kill -9  进程ID

步骤10:浏览器访问部署的项目http://ip:8516/index

3.2 数据库环境部署:

数据库环境搭建,我们拿常见的oracle数据库为例:

步骤1:Oracle服务端环境搭建:

(1)创建oracle用户组:groupadd -g 120 oinstall

(2)创建oracle用户:useradd -d /oracle/ora11g -g oinstall -p `openssl passwd -1 oracle` oracle -m

(3)将oracle服务端安装软件拷贝到oracle用户目录;(/oracle/ora11g)下,然后用解压命令解压,并进行相关安装:

(4)设置oracle环境变量:

vi .bash_profile

##oracle环境变量设置

ORACLE_BASE=/oracle/ora11g/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1

ORACLE_SID=dbpop

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$LD_LIBRARY_PATH

THREADS_FLAG=native

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATHPATH

保存退出:wq!

让环境变量生效需要source一下:

oracle@suse11:~>source .bash_profile

(5)设置Oracle服务端字符集和SGA大小,切换到oracle用户,进入oracle服务端的SQLPLUS操作界面进行相关操作。

(6)启动oracle服务:

su – oracle

sqlplus /nolog        以不连接数据库的方式启动

SQL>conn /as sysdba      sysdba用户模式连接

SQL>startup             启动数据库

SQL>exit                   退出

lsnrctl start                启动监听

exit

启动监听若有报错,可按提示修改listener.ora

步骤2:Oracle客户端环境搭建:

(1)需要将plsql developer下载到本地电脑,并进行相应的安装,这个比较简单,就不在这里详细描述了。

(2)在oracleclient中配置listener.ora和oracleclient监听文件。

步骤3:Oracle表空间创建:

开启oracle服务,打开plsql工具,使用管理员账户登录,在sql窗口中输入如下命令:

创建临时表空间:

create temporary tablespace test_temp   tempfile 'D:\oracle\oradata\Oracle9i\ test_temp.dbf'  size 50m   autoextend on  next 50m maxsize 20480m  extent management local;

创建数据表空间:

create tablespace test_data logging  datafile 'D:\oracle\oradata\Oracle9i\test _data.dbf'  size 50m  autoextend on  next 50m maxsize 20480m  extent management local;

步骤4:Oracle用户创建并指定表空间;

create user test identified by test default tablespace test_data quota 500m on users;

步骤5:用户授权

用户创建成功后,进行授权。输入grant all privileges to test;

步骤6:Oracle数据的备份、导入和导出。

这一块比较 简单,就不在这里详细描述啦。

4、功能测试

功能测试是实际项目中接触到最多的测试,大多测试人员都是从功能测试做起,逐渐提升,一般包括:业务流程测试、UI界面测试(用户体验测试)、数据存储检查、前后台一致性校验、系统兼容性测试、易用性测试等。一般功能测试能发现80%的问题,因此,做好功能测试是软件质量保障的基础。

5、专项测试

专项测试是在功能测试的基础上能力提升的又一个大台阶,专项测试不仅要求测试人员会使用各种专项工具,同时,也要有定的代码能力。

5.1 性能测试

性能测试常用到的功工具jmeter、LoadRunner,一般根据项目的特点选择合适的工具。

5.2 接口测试

接口测试常用到的功工具SoapUI、PostMan、Jmeter。

5.3 自动化测试

自动化测试目前在业界内比较流行,要做好自动化,需要有一定的代码功底。一般来说,自动化主要包含接口自动化、Web自动化和APP自动化。用到的常用工具如下:

(1)接口自动化:需要掌握Python+Pytest+Requests框架

(2)Web自动化:需要掌握Python+Selenium框架

(3)APP自动化:需要掌握Python+Pytest+Appium框架

5.4 安全测试

5.4.1 常用工具

(1)BurpSuit:主要用于攻击web 应用程序的集成平台

(2)NMAP:主要用于端口扫描工具

(3)AppScan、AWVS、Sescan:主要用于web漏洞扫描

(4)SecureCAT:主要用于服务器漏洞扫描

(5)fuzzing:主要用于协议健壮性扫描

(6)Wireshark、Fiddler:主要用于抓包

5.4.2 常见安全测试类型

(1)失效的身份验证机制;

(2)Sql注入;

(3)XPath注入;

(4)Xss跨站脚本攻击;

(5)越权(横向/纵向越权);

(6)敏感信息泄露;

(7)隐私保护;

(8)加密算法;

(9)CSRF攻击;

(10)口令安全;

(11)日志审计;

(12)…….。

6、测试常用工具

测试常用工具这一块我主要从缺陷管理工具、代码管理工具、持续集成构建、其它工具这4个方面来介绍:

(1)缺陷管理工具:常见的工具有Bugzilla、DTS、Jira、禅道。

(2)代码管理工具:常见的工具有SVN、git。

(3)持续集成构建:常见的工具有CI构建、jenkins环境部署。

(4)其它工具:常见的工具有SecureCRT。

7、软件质量管理

软件质量管理这一块我主要从BUG管理和版本质量评估和晾晒这两方面来介绍:

7.1 BUG管理:

Bug管理这一块包含Bug提交规范、Bug处理回单规范、Bug关闭原则。

7.1.1 Bug提交规范:

一个规范的bug提交一般包含如下信息:

(1)【简要描述】:用精炼的语言,把问题描述清楚,让别人一看到标题就能明白说的是什么问题。

(2)【问题详细描述】:主要包含以下方面

1)【重现条件】:描述问题是在什么环境、用的什么版本、用什么浏览器、哪个版本的浏览器、用的什么测试数据等等;

2)【重现步骤】:描述问题是做怎样的操作时出现的,出现时机等;

3)【实际结果】:描述该问题当前实际结果是怎样的,现象是什么;

4)【预期结果】:描述预期的结果应该是怎样的;

5)【抓包/截图】:上传问题出现的现象截图、日志信息、录屏信息等;

6)【重现次数】:描述该问题出现的概率,是必现、高概率出现、还是低概率出现,出现的概率是多少;

7)【严重等级】:描述问题的严重程度;

8)【问题发现的阶段】:描述问题是在项目哪个阶段测试时产生的;

9)【所属模块】:描述问题所属模块;

10)【期望解决日期】:描述问题希望哪个时间节点要解决完;

11)【问题出现日期】:描述问题的发生时间;

12)【问题提交人】:描述问题提交人姓名及工号。

13)【开发责任人】:描述问题所属开发姓名及工号。

7.1.2 Bug处理回单规范:

一个规范的bug回单规范一般包含如下信息:

(1)【问题类型】:描述该问题是需求问题、设计问题、编码问题、还是界面问题等等;

(2)【问题原因】:描述问题的产生是由于哪个类、哪片代码片段引起的等;

(3)【问题解决方案】:描述解决该问题用的什么修复方案;

(4)【自测结果】:描述修复该问题后开发自测结果,可以附上自测通过的截图等。

(5)【回归版本】:描述该问题在哪个版本解决的,告诉测试人员用哪个版本进行回归测试等;

(6)【回归建议】:描述该问题回归有什么建议,告诉测试人员有什么注意事项等。

7.1.3 Bug关闭原则:

一个规范的bug关闭一般应遵循如下原则:

(1)【回归版本】:描述该问题是在哪个版本回归的;

(2)【回归方法】:描述回归该问题的操作步骤;

(3)【回归结果】:描述该问题的回归结果情况,是pass还是failed。

(4)【回归次数】:描述该问题回归的次数。

7.2版本质量评估和晾晒:

这一块主要是介绍此项目测试用了多长时间,多少人力,经过多少轮测试,执行了多少用例,发现了多少问题,以及各特性问题分布情况如何,这些问题已解决多少,已关闭多少,还有多少未解决,多少未回归测试,以及问题类型都是怎样的,有多少阻塞,风险情况如何等相关数据的统计、晾晒和评估。

8、项目实战

这一块主要介绍一个项目从立项到正式商用发布期间,测试工程师需要做的主要事情。

(1)测试计划输出

(2)测试方案设计

(3)测试用例设计

(4)测试用例评审

(5)测试环境搭建

(6)测试执行&测试bug提交与跟踪

(7)项目测试日报的输出

(8)项目测试周报的输出

(9)项目测试报告的输出

(10)测试评估和总结

(11)项目复盘

9、测试发展线路

作为一名测试人员,可以往技术专家方向发展,也可以往管理层发展,总之,要想成为业界大师,获取更高的薪水,不仅要做好功能测试、专项测试,还要具备一定的代码能力、较强的管理能力,需要平时多学习、多修炼、多积累、多沉淀、多思考、多总结、多实践、多复盘、多突破自己。It's never too old to learn!keep moving!让我们的工作价值更高,让我们的生活更充实和精彩!

如果你觉得此文章对你有一定的帮助,记得点赞、收藏一下,记得顺便点击如下链接关注一下小编的微信公众号吧,后续会不断有干货输出^.^~O(∩_∩)O

2023最新软件测试学习思维导图(从小白到大师进阶之路)如下是我工作之余熬夜整理的软件测试学习思维导图,通过回顾多年的从业经验,总结提炼出来的一些东西,https://mp.weixin.qq.com/s?__biz=Mzg3NDkwMjM3Mg==&mid=2247483679&idx=1&sn=0060fbd21d9e631fe69112f548249461&chksm=cec8e714f9bf6e02686c768cfd0d7d122bad08ee62736e479f93e393be7dc52226ac7e778348#rd

2023最新软件测试学习思维导图(从小白到大师进阶之路)相关推荐

  1. C++语言学习思维导图

    C++语言学习思维导图

  2. C#语言学习思维导图

    C#语言学习思维导图 C#的学习可分为3个部分: (1)基础 (2)中级 (3)应用 (1)基础 (2)中级 (3)应用

  3. Java语言学习思维导图

    Java语言学习思维导图

  4. python课程思维导图_零基础Python学习思维导图,记得收藏

    原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...

  5. 简单易懂的英语学习思维导图(学习篇)

    当我们步入校园的时候,英语就与我们息息相关,对比数学来说,英语虽然简单点,但也不可忽略,下面是小编用思维导图整理的英语学习思维导图,让内容看起来更有条理.更好理解,一起往下看吧~ 英语学习思维导图 课 ...

  6. 教你如何学习思维导图

    我们学习思维导图,是否成效,有进步其实决定因素很多,而我们能做的就是在大家起步都一样的时候,比他人多掌握一份思维导图技巧,我们在思维导图的路上也就能够走得更远一些. 第一 态度.这是学习和掌握思维导图 ...

  7. Hadoop 入门学习思维导图

    Hadoop 入门学习思维导图:

  8. MYSQL学习思维导图

    MYSQL学习思维导图

  9. 深度学习入门之神经网络的学习思维导图

    第4章 神经网络的学习思维导图

最新文章

  1. 这个“大脑”收获一份大奖!
  2. Intel汇编语言程序设计学习-第三章 汇编语言基础-下
  3. html文件怎么改为php,请问你们怎么将html的文件的内容改变为php
  4. oracle 查看监听命令_linux下使用Oracle常用命令
  5. 操作系统之进程管理:8、进程互斥的软件实现方法(单标志、双标志、Peterson)
  6. P2419 [USACO08JAN]牛大赛Cow Contest
  7. Axure RP Pro - 翻译 - Download下载 - Axure RP Pro 5.5.0.1955
  8. 电信主机托管费用_电信服务器托管价格
  9. oracle 查询表里信息_oracle查询表信息
  10. 华为交换机修改主机名
  11. 【论文解读】结合概率图模型和神经网络做图片问答
  12. vultarget-a红日靶场全面解析(完整版)
  13. 印象笔记,为知笔记和 Effie 哪个更适合影评人呢?
  14. 如何在excel中取消合并单元格后内容自动填充?
  15. Solaris下网卡绑定多个IP
  16. Appium移动自动化测试(三)--安装Android模拟器(建议直接连手机,跳过此步)
  17. std::accumulate的具体用法
  18. 春季瘦身燃烧脂肪14种妙法
  19. HDU 1.3.7 悼念512汶川大地震遇难同胞——老人是真饿了
  20. 报错-Error creating bean with name xxx: Unsatisfied dependency expressed through field xxx

热门文章

  1. php artisan 出错,使用php artisan serve命令获取错误
  2. Gaia蓝牙音箱android开发,Windows7系统配置蓝牙模块GAIA功能的方法
  3. OJ题库1015: 计算时间间隔
  4. 设计模式--builder 模式
  5. 几款主流快速开发平台比较
  6. 用C语言开发NES游戏(CC65) 简介
  7. vue使用xe-utils通用函数库
  8. 【U8+】用友U8成本管理模块下,定额分配标准中无法取到新增存货的数据。
  9. 使用GridSearchCV对CatBoostClassifier分类器调参
  10. 若某非空二叉树的先序序列和后序序列正好相反,或者正好相同,则二叉树形态是怎么样的?