软件测试基础知识

news2025/4/3 22:03:40

软件测试基础知识

  • 1.测试模型
  • 2.测试分类
  • 3.测试目的与原则
  • 4.测试流程
  • 5.测试发展规划
  • 6.单元测试
  • 7.黑盒测试
  • 8.白盒测试
  • 9.缺陷

1.测试模型

  • 瀑布模型
    开发将系统都做好了,然后测试。最大问题是测试工作后置,导致整个项目开发完成之后如果发现比较重要的问题,修改的成本是非常大的。

  • V模型
    将测试过程细化,分为单元测试,集成测试,系统测试和验收测试,但没有解决测试后置问题。

  • W模型
    将测试和开发过程分离出来,对整个项目过程中的需求文档,设计文档同样要进行测试,将测试工作前置,大大降低整个项目的质量风险。

  • 敏捷模型(目前流行使用)
    主要特点就是为了适应现代互联网公司的“短频快”的开发节奏而设计的一种测试和开发的模型。
    迭代:每只迭代叫做一个sprint,每个sprint里面选出来要实现的需求会安排到sprint backlog里面。每个sprint一般是以一个月作为一个周期。
    在这里插入图片描述

  • 其他模型
    还有H模型,X模型,前置模型

2.测试分类

  • 按阶段划分
    单元测试:某个特定函数的行为。开发人员进行白盒测试。
    集成测试:模块之间的依赖接口。以黑盒测试为主,使用postman进行接口测试。方法有非增量式集成测试(一步到位),增量式集成测试(自顶向下增量式,自低向上增量式,三明治集成)。
    确认测试:软件功能,性能及其他特性是否与用户要求一致。以黑盒测试为主,包括功能测试,兼容性测试,压力测试。
    系统测试:整个软件系统与计算机硬件。以黑盒测试为主,包括功能测试,兼容性测试,压力测试。
    验收测试:用户参与测试。以黑盒测试为主,是用户对软件最终检查。

  • 按执行状态划分
    动态测试:运行被测试的程序,构造测试实例,执行程序及分析程序的输出结果
    静态测试:不运行被测试的程序

  • 按测试技术划分
    白盒测试:检测产品内部的结构及检验程序中的每条通路是否都能接通,按照预定要求正确工作。
    黑盒测试:不考虑程序内部结构和特性。
    灰盒测试:测试各个组件之间的逻辑关系是否正确,采用桩驱动把各个函数按照一定的逻辑串起来。

  • 按执行主体划分
    验收测试:开发者和用户共同去检测与证实。
    用户测试:通过用户大量使用的评价,检查软件,用户使用性测试。
    第三方测试:第三方测试机构来进行

  • 按不同手段划分
    手工测试
    自动化测试(通过工具或者代码)

  • 按测试产品划分
    移动端测试
    web端测试

  • 按测试包含的内容划分
    功能测试
    界面测试
    安全测试:关注指标为数据要加密传输,防止溢出,sql注入,抓包工具获取信息,病毒攻击,数据存储。
    兼容性测试
    易用性测试
    可靠性测试
    安装测试:下载安装,卸载,重新安装,中断等。
    性能测试:关注指标有CPU,内存,响应时间,闪退,卡顿。

  • 按测试流程划分
    冒烟测试:目的是为了测试这个需求的主流程,主干功能是否正常。
    需求测试:测试新开发的需求功能是否正常。
    回归测试:测试整个系统功能是否正常,没有被新开发的需求影响出错。

回归测试策略:
1.完全回归
2.选择性回归(3种方法)
a.覆盖修改法:针对被修改的部分,选取或重新构造测试用例验证没有错误。
b.周边影响法:包含覆盖修改法确定的用例,还需要分析修改扩散影响,对那些收到修改间接影响的部分选择测试用例验证它没有错误。
c.指标达成法:类似单元测试的方法,在重新执行测试前,先确定一个要达成的指标,如修改部分代码100%覆盖,与修改有关的接口60%的覆盖,基于这种要求选择一个最小的测试用例集合。

3.测试目的与原则

  • 目的
    检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

  • 原则
    证伪而非证真,
    尽早地和不断地进行测试,
    重视无效数据和非预期的测试,
    对测试结果做全面检查,
    测试现场保护和资料归档,
    程序员应避免检查自己的程序,
    注意群集现象,
    用例要定期评审。

4.测试流程

测试计划:了解测试需求,安排测试人员,时间及资源。
测试设计:根据测试需求提取测试要点,编写测试用例
测试开发:建立可重复使用的自动化测试过程。(可有可无)
测试执行:冒烟测试,需求测试,回归测试。执行测试用例,提交bug,跟踪bug,验证bug被解决。
测试评估:确保缺陷全部被解决,编写测试报告。

5.测试发展规划

初级测试工程师—中级测试工程师—高级测试工程师—测试组负责人—测试开发

  • 技术方向
    自动化测试,接口测试,性能测试,测试开发,安全测试,测试架构师
  • 管理方向
    测试经理,项目经理,SCRUM MASTER,测试/质量总监
  • 业务方向
    业务测试专家(银行,金融),需求分析师,产品经理

6.单元测试

  • 主要任务
    模块接口测试:全局变量定义一致性,调用参数
    局部数据结构测试:数据的定义和使用
    边界条件测试:循环边界,输入边界
    执行路径测试:关键路径,重要路径
  • 步骤
    在这里插入图片描述
    驱动模块:相当于被测模块的主程序,用于接收测试数据,并把这些数据传送给被测模块,启动被测模块,最后输出实测结果。
    桩模块:用来模拟被测模块工作过程中所调用的模块,一般只进行很少的数据处理。

7.黑盒测试

  • 黑盒测试划分
    功能测试:逻辑测试,界面测试,易用性测试,安装测试,兼容性测试
    性能测试:一般性测试,稳定性测试,负载测试,压力测试

  • 黑盒测试方法
    (1)等价类划分
    有效等价类:合理的,有意义的输入数据构成的集合
    无效等价类:无意义,不合理
    比如:密码8-10位
    有效等价类:8-10位密码 。 无效等价类:0-7,10位以上
    (2)边界值分析
    一般边界值分析:取值为min,min+,normal,max-,max,测试用例数为4n+1。
    健壮性边界值分析:取值为min,min+,min-,normal,max-,max,max+,测试用例数为6n+1
    比如:8-16位
    一般边界值分析取值:8,9,8-16其中一位,15,16 。 健壮性边界值分析:7,8,9,8-16其中一位,15,16,17
    (3)决策表
    在这里插入图片描述
    (4)因果图
    适用于描述多种输入条件组合,相应产生多个动作的方法。原因-结果图,约束图
    (5)场景法:基本流即软件操作步骤,备选流即操作过程遇到的问题。

  • 几类错误
    功能不正确或遗漏
    界面错误
    数据库访问错误
    性能错误

8.白盒测试

对代码的测试,一般由开发完成。

  • 白盒测试划分
    静态白盒测试:不执行的条件下审查软件设计,体系结构和代码
    动态白盒测试:通过查看并使用代码的内部结构和执行测试

  • 白盒测试方法
    逻辑覆盖法:语句覆盖,判定覆盖,条件覆盖,条件判定覆盖,修正条件判定覆盖,条件组合覆盖,路径覆盖。
    路径分析法:绘制控制流图—计算复杂性—确定独立路径的集合—测试用例生成
    控制结构测试:条件测试(<,=,or),循环测试(简单循环,嵌套循环,串接循环),路径覆盖(舍弃一些次因素,减少路径的数量,只考虑通过循环体零次和一次这两种情况)
    数据流测试:变量定义测试,程序片法。
    在这里插入图片描述

9.缺陷

缺陷标识:使用数字序号表示
缺陷类型:功能,用户界面,文档,软件包,性能,系统/模块接口
缺陷严重程度:致命,严重,一般,较小
缺陷产生的可能性:总是,通常,有时,很小
缺陷优先级:立即解决,高优先级,正常排队,低优先级
缺陷状态:激活或打开,已修正或修复,关闭或非激活,重新打开,推迟,保留,不能重现
缺陷来源:需求说明书,设计文档,系统集成接口,数据流(库)
缺陷流程:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/5550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序的校运会管理系统设计与实现-计算机毕业设计源码+LW文档

小程序开发说明 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mave…

【大学课程设计】计算器实现(附源码)

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

6.Paddle Graph Learning (PGL)图学习之图游走类模型[系列四]

Paddle Graph Learning (PGL)图学习之图游走类模型[系列四] 更多详情参考&#xff1a;Paddle Graph Learning 图学习之图游走类模型[系列四] https://aistudio.baidu.com/aistudio/projectdetail/5002782?contributionType1 相关项目参考&#xff1a; 关于图计算&图学习…

路由规划——运输距离的估算

运输距离的估算1. 常规的拟合距离1.1 欧氏距离1. 2 球面距离拟合2. 一种改进的球面距离拟合参考文献在进行路径规划时&#xff0c;需要获取点与点之间的距离&#xff0c;点之间的距离通常是通过坐标或者经纬度计算得到&#xff0c;可分为拟合距离和导航距离两类。导航距离顾名思…

基础二叉树及其高频面试题

目录 一、树的概念及其结构 1.1 树的概念 1.2 树的相关概念 1.3 树的表示法 二、二叉树的概念及其结构 2.1 概念 2.2 特殊二叉树 2.3 二叉树的性质 2.4 二叉树的存储结构 顺序存储 链式存储 三、链式二叉树 3.1 遍历方式 深度优先遍历:DFS 层序遍历:BFS(广度优先…

【附源码】Python计算机毕业设计社区防疫信息管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Debian11中 Nginx1.22.1 php8.1.12 Mariadb10.5.15的安装

起因&#xff1a;我之前发的关于LEMP的搭建的文章&#xff0c;已经有3年9个月了&#xff0c;各个软件的版本更新了比较多。最主要的是&#xff0c;CentOS系统终止了&#xff0c;我也完全更换到了Debian系统之上。这里重新搭建了一下&#xff0c;主要是计划结合frp&#xff0c;构…

Vue | Vue.js 全家桶 Pinia状态管理

&#x1f5a5;️ Vue .js专栏&#xff1a;Node.js Vue.js 全家桶 Pinia状态管理 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀…

[基础服务] [操作系统] 类Linux的文件和目录

&#x1f341;简介 在奔腾70年代的中美建交之际,UNIX 也逐渐展露头角(也有说是60年代末),十五年后Windows诞生了,又过了五年Linux横空出世三大主流操作系统直到现在呈现三足鼎立之势~ 出生时间是&#xff1a; UNIX(70年代初) > Windows(80年代中) > Linux (90年代初) 可以…

基于微信小程序的电影院票务系统设计与实现-计算机毕业设计源码+LW文档

小程序开发说明 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mav…

HCIP-Datacom OSPF进阶(二)最常用的路由协议 OSPF各种LSA作用详解

目录 OSPF路由计算&#xff1a; LSA头部信息&#xff1a; Router-LSA&#xff08;1类&#xff09;&#xff1a; 一类LSA&#xff1a; 一类LSA可以描述四种链路类型&#xff1a; Network-LSA&#xff08;2类&#xff09;&#xff1a; 二类&#xff1a; IR、ABR、ASBR是什…

【HTML实战】把专属于她的爱心代码放在自己的网站上是一种什么体验?

一、 写在前面的话 看多了李洵的炫酷爱心&#xff0c;今天来点不一样的爱心代码。需要李洵的炫酷爱心代码请看我的上一篇文章。 最近随着电视剧《点燃我温暖你》的火热播出&#xff0c;剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈&#xff0c;作为一个喜欢动手实践的我来说…

力扣206 - 反转链表【校招面试高频考题】

乾坤大挪移~一、题目描述二、思路分析1、头插2、三指针迭代三、整体代码展示【需要自取】1、头插2、三指针迭代四、总结与提炼一、题目描述 原题传送门 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xf…

【Redis】CentOs 虚拟机安装 Redis 缓存数据库

一、使用案例&#xff1a; 以淘宝为例&#xff0c;几个人一起登入淘宝&#xff0c;去检索男装&#xff0c;这几个人的访问都得到相同的结果。这时&#xff0c;我们就可以考虑将男装缓存在一个地方&#xff0c;而不是再去访问数据库&#xff0c;这时&#xff0c;就是我们 Redis…

ctfshow文件包含

web78 源码&#xff1a; if(isset($_GET[file])){$file $_GET[file];include($file); }else{highlight_file(__FILE__);//高亮显示当前文件内容 }解法一 - php://input # http://challenge.ctf.show/?filephp://input # [POST DATA] <?php system(ls)?> <?php…

基于可视图法(VG)的路径规划算法简述

可视图法路径规划&#xff08;VG&#xff09; 可视图法由Lozano-Perez和Wesley于1979年在论文&#xff1a;《An Algorithm for Planning Collision-Free Paths among Polyhedral Obstacles.》中提出。 基于可视图法路径规划算法主要包括以下两个步骤&#xff1a;①可视图的构建…

第二章 环境的选择和安装

1、开发环境操作系统 1.1 选择Windows、Mac or Linux 首先明确一点&#xff1a;我们的首要目的是要快速上手使用Elasticsearch&#xff08;以下简称ES&#xff09;&#xff0c;安装和部署ES并非重点&#xff0c;企业中真正需要你去安装的可能性或者机会非常小。大家可以想一想…

C++运算符重载

运算符重载运算符重载一、重载‘’运算符1.非成员函数版本重载2.成员函数版本二、重载关系运算符三、重载左移运算符四、重载下标运算符五、重载赋值运算符六、重载new和delete1.重载2.内存池七、重载括号运算符八、重载一元运算符运算符重载 C将运算符重载扩展到自定义的数据…

23 张图细讲使用 Devtron 简化 K8S 中应用开发

23 张图细讲使用 Devtron 简化 K8S 中应用开发 在本文中&#xff0c;您将学习如何在多集群环境中使用 Devtron 在 K8S 上进行应用开发。 https://devtron.ai/ Devtron 附带用于构建、部署和管理微服务的工具。它通过提供直观的 UI 和 Helm 图表支持来简化 K8S 上的部署。今天&a…

Java数据结构 | 模拟实现优先级队列

目录 一、前言 二、堆模拟实现优先级队列 2.1 堆的概念 2.2 堆的性质 2.3 堆的存储方式 2.4 堆的创建 一、前言 在前面我们学习过队列&#xff0c;队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队…