软件质量保证与测试

目录

一、测试流程

二、测试用例

2.1概念

2.2用例编写格式

三、设计测试点

3.1等价类

3.1.1概念

3.1.2案例

3.1.3适用场景

3.1.4执行用例

3.2边界值

3.2.1概念

3.2.2案例

3.2.3使用场景

3.3判定表

3.3.1判定表使用原因

3.3.2概念

3.3.3案例

3.3.4使用场景

3.4场景法

3.4.1概念

3.4.2案例

3.4.3使用场景

四、缺陷管理

4.1概念

4.2缺陷编写

4.3缺陷管理工具

五、抓包

5.1抓包目的

5.2抓包概念

5.3抓包知识

5.4抓包工具


一、测试流程

需求分析:

说明:根据产品需求文档,提取出规则要求

提取规则要求的目的:

  • 明确软件有哪些功能和要求
  • 为设计测试点做准备

设计测试点:

测试点:要进行验证的点,根据需求规则设计测试点。

设计测试点的目的:

  • 防止测试时有遗漏
  • 为编写测试用例做准备

测试用例:

说明:将测试点转化为测试执行的文档。

编写用例的目的:

  • 指导测试点正确测试实施
  • 为执行测试做准备

用例执行:

说明:执行用例就是执行测试。

缺陷管理:

说明:当执行用例结果和预期结果不符时为缺陷,就需要对缺陷进行管理。

缺陷管理目的:

  • 测试的目的就是减少软件缺陷(提交缺陷——>等待修复——>验证缺陷)
  • 为测试报告做准备

测试报告:

说明:对于本次执行测试缺陷进行分析统计,对于本次测试实施进行总结。

主要内容:

  1. 缺陷统计
  2. 缺陷分析
  3. 遗留缺陷
  4. 测试总结

二、测试用例

2.1概念

用例:用户使用的案例

测试用例:执行测试时用户案例

英文:Test Case

目的:保证测试点的正确执行

2.2用例编写格式

说明:用例编写格式一般由八大要素组成。

编写示例

微信登录测试点:

  1. 登录成功
  2. 密码错误,登录失败

三、设计测试点

3.1等价类

3.1.1概念

3.1.2案例

(验证QQ账号的合法性)

要求:6~10位自然数

步骤:

1.明确需求

  • 内容:自然数(0、1、2······)
  • 长度:6-10位

2.确定有效和无效等价类

  • 有效等价:6-10位
  • 无效等价:①小于6位 ②大于10位 ③非自然数

3.提取数据编写测试用例

  • 有效等价:8位(12345678)
  • 无效等价:①小于6位——5位(12345) ②大于10位——11位(12345678901) ③非自然数

3.1.3适用场景

针对:需要有大量数据测试输入,但是没法穷举测试的地方。

  • 输入框
  • 下拉列表
  • 单选复选框

典型代表:页面输入框类测试

3.1.4执行用例
  • 当执行结果和预期结果不一致,则为缺陷。
  • 发现缺陷需要进行缺陷管理(提交——>开发修复——>测试验证——>关闭缺陷)

示例:(验证某城市电话号码正确性)

要求:

  1. 区号:空或者是三位数字
  2. 前缀码:非“0”且非“1”开头的三位数字
  3. 后缀码:四位数字

步骤:

1.明确需求

2.确定有效和无效等价类

3.提取数据编写测试用例

4.执行用例

3.2边界值

3.2.1概念

说明:选取正好等于、刚好大于、刚好小于边界的值作为测试数据。

边界值法设计用例步骤:

  1. 明确需求
  2. 确定有效和无效等价类
  3. 确定边界范围值
  4. 提取数据编写测试用例
3.2.2案例

需求:通过边界值法验证标题长度的合法性

要求:标题长度大于0,小于等于30个字符(0<标题长度<=30)

步骤:

1.明确需求

  • (0,30]

2.确定有效和无效等价类

  • 有效:4
  • 无效:-1,31

3.确定边界值

  • 上点:0,30
  • 离点:-1,1,39,31
  • 内点:10

4.提取数据编写用例

优化:

  • 上点:必选
  • 内点:必选
  • 离点:开内闭外

5.执行用例

3.2.3使用场景
  • 在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
  • 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰语
  • 典型代表:有边界范围的输入框类测试

示例:(验证QQ号的合法性)

要求:6~10位自然数

步骤:

1.明确需求

2.确定有效和无效等价类

3.确定边界值

4.提取数据编写用例

5.用例执行

3.3判定表

3.3.1判定表使用原因

案例:验证“若用户欠费或者关机,则不允许被叫”功能测试

说明:

  • 等价类、边界值分析法主要关注单个输入条件的测试
  • 并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试
3.3.2概念

1.定义:是一种以表格形式表达多条件逻辑判断的工具

2.组成:

  • 条件桩:列出问题中的所有条件,列出条件的次序无关紧要。
  • 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束。
  • 条件项:列出条件对应的取值,所有可能情况下的真假值。
  • 动作项:列出条件项的各种取值情况下应该采取的动作结果。

3.规则

  • 判定表中贯穿条件项和动作项的一列就是一条规则
  • 假设有n个条件,每个条件的取值有两个(0,1),全组含有2的n次方种规则

4.判定表设计用例步骤

1.明确需求
2.画出判定表

列出条件桩和动作桩

填写条件项,对条件进行全组合

根据条件项的组合确定动作项

简化合并相似规则(有相同的动作)

3.根据规则编写测试用例
3.3.3案例

1.需求分析

  • 如果金额大于500元,又未过期,则发出批准单和提货单
  • 如果金额大于500元,但过期了,则不发批准单与提货单
  • 如果金额小于等于500元,则不论是否过期都发出批准单和提货单
  • 在过期的情况下不论金额大小还需要发出通知单

2.画判定表

3.设计测试用例

4.执行用例

3.3.4使用场景
  • 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系。
  • 判定表一般适用于条件组合数量较少的情况(比如4个条件以下)

示例:(文件修改规则)

1.明确需求

  • 输入的第一列字符必须是A或B
  • 第二列字符必须是一个数字
  • 如果第一列字符不正确,则给出信息L
  • 如果第二列字符不正确,则给出信息M
  • 如果两列字符输入正确,则修改文件成功

2.画判定表

3.设计测试用例

4.用例执行

3.4场景法

3.4.1概念

说明:场景法也可以叫做流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。

意义:

  • 用户使用角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用。
  • 测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试。
3.4.2案例

ATM机取款流程

ATM机取款流程——流程图

设计测试用例

 用例执行

3.4.3使用场景

根据实际的应用场景来测试业务用例可以使用场景法。

四、缺陷管理

4.1概念

1.定义:软件在使用过程中存在的任何问题都叫软件的缺陷,简称bug。

2.缺陷评判标准

3.缺陷产生原因

需求阶段:需求描述不易理解,有歧义、错误等

设计阶段:设计文档存在错误或者缺陷

编码阶段:代码出现错误

运行系统:软硬件系统本身故障导致软件缺陷

4.软件缺陷的生命周期:

5.软件缺陷的类型:

4.2缺陷编写

1.缺陷的核心内容

2.缺陷描述

案例:

3.缺陷的跟踪流程

4.缺陷的提交流程

5.缺陷的提交要素

6.提交缺陷的注意事项

4.3缺陷管理工具

1.禅道

禅道项目管理软件 - 开源、免费的项目研发测试管理工具 (zentao.net)icon-default.png?t=N7T8https://www.zentao.net/特点:

  • 国产、免费、开源、简单、轻量级
  • 三管融合(产品管理、项目管理、质量管理)

2.禅道的使用用户

3.禅道使用流程

五、抓包

5.1抓包目的

  • 功能测试时跳过ui界面验证,验证后端程序处理能力。(如:请求支付100元,通过抓包修改请求价格0.1元,查看后端程序是否能正常处理)
  • 分析前端bug还是后端bug。(如:ui显示数据错误,提交bug时需要指定提交人,那是提交给前端开发还是后端开发?)
  • 弱网测试(如:app应用模拟4G、3G网络)
  • 接口测试时,缺乏接口描述文档,需要抓包获取。(如:查看支付宝请求信息)

5.2抓包概念

说明:通过工具抓取前端与后端的通信内容

5.3抓包知识

  • 抓包操作(http、https)
  • 断点操作-拦截修改(请求、响应)
  • 弱网测试

5.4抓包工具

  • fidder(windows)断点、弱网、录制请求和响应
  • Charles(mac、windows)断点、弱网、录制请求和响应
  • 浏览器开发者工具(查看请求和响应首选)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Ubuntu 部署 Zabbix 7.0

实验环境&#xff1a;Ubuntu-22.04 官方下载地址&#xff1a; 下载Zabbix 7.0 LTS for Ubuntu 22.04 (Jammy), MySQL, Apache 1、下载 Zabbix 官方安装包以及环境配置 下载 zabbix 安装包 wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabb…

Go语言之数据类型

网站&#xff1a;http://hardyfish.top/ 免费书籍分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码&#xff1a;3899 免费专栏分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-6161623…

篮球联盟管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;球员管理&#xff0c;用户管理&#xff0c;球队管理&#xff0c;论坛管理&#xff0c;篮球资讯管理&#xff0c;基础数据管理 前台账户功能包括&#xff1a;系统首页&#xff0…

解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)

错误消息 ssh: connect to host IP port 22: Connection timed out 指出 SSH 客户端尝试连接到指定的 IP 地址和端口号&#xff08;默认 SSH 端口是 22&#xff09;&#xff0c;但是连接超时了。这意味着客户端没有在预定时间内收到来自服务器的响应。 可能的原因 SSH 服务未…

【数据结构与算法】最短路径,Floyd算法,Dijkstra算法 详解

Floyd算法 for (int k 0; k < n; k) {for (int i 0; i < n; i) {for (int j 0; j < n; j) {if (d[i][k] ! INF && d[k][j] ! INF) {d[i][j] min(d[i][j], d[i][k] d[k][j]);}}} }Dijkstra算法&#xff08;基于最小堆&#xff09; void dijkstra(int st…

【JavaEE精炼宝库】多线程进阶(1)常见锁策略 | CAS | ABA问题

目录 一、常见的锁策略&#xff1a; 1.1 悲观锁 | 乐观锁&#xff1a; 1.2 重量级锁 | 轻量级锁&#xff1a; 1.3 自旋锁 | 挂起等待锁&#xff1a; 1.4 公平锁 | 非公平锁&#xff1a; 1.5 可重入锁 | 不可重入锁&#xff1a; 1.6 互斥锁 | 读写锁&#xff1a; 1.7 面…

服务器神秘挂起:一场惊心动魄的内核探案

2024年6月17日&#xff0c;我们的运维团队突然收到了一连串的告警。监控大屏上&#xff0c;代表着不同 Sealos 可用区的绿点中&#xff0c;零星地闪烁起了一两个红点。 “奇怪&#xff0c;怎么有几台服务器突然 hang 住了&#xff1f;” 值班的小辉皱起了眉头。 这次故障的诡…

python遍历文件夹中所有图片

python遍历文件夹中的图片-CSDN博客 这个是之前的版本&#xff0c;现在这个版本会更好&#xff0c;直接进来就在列表中 path glob.glob("1/*.jpg")print(path)print(len(path))path_img glob.glob("1/*.jpg")path_img.extend(path)print(len(path_img))…

基于Hexo+GITHUB搭建个人博客网站(PS:不用域名,不用服务器,重点是免费,小白也能轻松掌握)

✌ 作者名字&#xff1a;高峰君主 &#x1f4eb; 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一起进步&#x1f440; &#x1f4ac; 人生格言&#xff1a;没有我不会的语言&#xff0c;没有你过不去的坎儿。&#x1f4ac; &#x1f5…

25.模式和匹配

目录 一、概念二、模式的位置2.1 match分支2.2 if let表达式2.3 while let条件循环2.4 for循环2.5 let语句2.6 函数参数 三、模式是否会匹配失效四、模式语法4.1 匹配字面量4.2 匹配命名变量4.3 解构并分解值1&#xff09;解构结构体2&#xff09;解构枚举3&#xff09;解构嵌套…

动态规划数字三角形模型——AcWing 1015. 摘花生

动态规划数字三角形模型 定义 动态规划数字三角形模型是在一个三角形的数阵中&#xff0c;通过一定规则找到从顶部到底部的最优路径或最优值。 运用情况 通常用于解决具有递推关系、需要在不同路径中做出选择以达到最优结果的问题。比如计算最短路径、最大和等 注意事项 …

MySQL之复制(十一)

复制 复制的问题和解决方案 数据损坏或丢失的错误 当一个二进制日志损坏时&#xff0c;能恢复多少数据取决于损坏的类型&#xff0c;有几种比较常见的类型: 1.数据改变&#xff0c;但事件仍是有效的SQL 不幸的是&#xff0c;MySQL甚至无法察觉这种损坏。因此最好还是经常检查…

【小程序】聊天功能

文章目录 聊天功能实现功能实现思路后端前端效果展示 聊天功能 实现功能 要实现一个聊天机器人&#xff0c;它能够解答用户疑问&#xff0c;并且能够识别到用户聊天的主题&#xff0c;涉及到饮食方面时&#xff0c;会自动决定是否要去数据库中读取用户的相关喜好信息&#xf…

录音怎么转文字更高效?5款软件带你轻松拿捏文本转换~

临近大学生们最难熬的期末考试周&#xff0c;如何在短时间内复习完所有必考的科目也就成为大家迫在眉睫的首要任务。 想要在复习的过程中&#xff0c;更加高效地捕捉和整理关键信息、提高学习效率&#xff0c;那么录音转文字免费应用无疑是你的一大好帮手&#xff01; 倘若你…

YOLOv5改进 | SPPF | 具有多尺度带孔卷积层的ASPP【CVPR2018】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改进涨点》专栏介绍 & 专栏目录 |目前已有40篇内容&#xff0c;内含各种Head检测头、损失函数Loss、…

设计模式5-策略模式(Strategy)

设计模式5-策略模式 简介目的定义结构策略模式的结构要点 举例说明1. 策略接口2. 具体策略类3. 上下文类4. 客户端代码 策略模式的反例没有使用策略模式的代码 对比分析 简介 策略模式也是属于组件协作模式一种。现代软件专业分工之后的第一个结果是框架语音应用程序的划分。组…

WEB界面上使用ChatGPT

&#xff08;作者&#xff1a;陈玓玏&#xff09; 开源项目&#xff0c;欢迎star哦&#xff0c;https://github.com/tencentmusic/cube-studio 随着大模型不断发展&#xff0c;现在无论写代码&#xff0c;做设计&#xff0c;甚至老师备课、评卷都可以通过AI大模型来实现了&…

【数据结构与算法】动态查找表(二叉排序树,二叉平衡树)详解

二叉排序树的数据结构。 struct TreeNode {ElemType data;TreeNode *left, *right; }; using BiTree TreeNode *;结构体包含三个成员&#xff1a; data 是一个 ElemType 类型的变量&#xff0c;用于存储二叉搜索树节点的数据。left 是一个指向 TreeNode 类型的指针&#xff…

【Pandas驯化-16】一文搞懂Pandas中高性能query、eval函数技巧

【Pandas驯化-16】一文搞懂Pandas中高性能query、eval函数技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公众…

Linux命令学习2

一.文件基础命令 1.alias-给某个命令取别名 使用方式&#xff1a;alias cl ls -la 说明&#xff1a;将ls -la命令取别名为cl,使用这种方式只是临时将命令取别名&#xff0c;重启中断后&#xff0c;就会失效。 问题1&#xff1a;如何永久性的设置命令的别名&#xff1f; 答…