测试用例的设计方法(黑盒)

news2025/1/11 12:55:13

1.基于需求的设计方法

比如针对网易邮箱进行测试:分为功能相关和非功能相关两大类
在这里插入图片描述
但是这么设计的话,有无数多个测试用例,我们现在看到的只是一些大概的测试用例,要想设计具体的测试用例,需要用到下面测试用例的方法

2.等价类

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。说白了就是将需求分类,每个类取一个例子测试
比如买一杯奶茶,在我很撑很撑的情况下,我还特别想知道它好不好喝(想知道好不好喝是我输入的需求),因此我只需要喝一口就知道它好不好喝,不用全部喝完,这样我即知道了好不好喝,又解决了肚子很撑喝不下整杯的问题。
等价类分为
有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
无效等价类:根据需求说明书,不满足需求的集合。
在这里插入图片描述
在这里插入图片描述
等价类设计测试用例步骤
1.充分理解需求
2.划分有效等价类和无效等价类
3.从有效等价类抽取其中一个数据进行测试用例,从无效等价类抽取其中一个数据进行测试用例
在这里插入图片描述

3.边界值

3.1边界点

上点:边界上的点
内点:边界内的点
离点:边界值附近的一个点(闭区间的离点是区间外距离上点最近的点,开区间的离点是区间内距离上点最近的点)
在这里插入图片描述

3.2边界值设计测试用例的方法

1.充分理解需求
2.找边界点
3.针对边界点设计测试用例
在这里插入图片描述
工作中通常将等价类和边界值一起配合使用,这样测试用例就更多了,产品更有保证了

4.判定表

判定表的关系:
与:所有条件必须满足,如果一个不满足,结果就是假
或:满足所有条件中的一个就是真,如果条件全部为假,就为假
恒等:条件为真,结果一定是真(我是男人>>我是人)
非:条件为假,结果才为真(不好好学习>>肯定找不到好工作)

判定表设计测试用例:
1.分析所有可能的输入和输出
2.找出输入和输出之间的对应关系
3.设计判定表
4.把判定表对应到每一个测试用例

看下面例子
假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.正交排列

5.1正交表

5.1.1什么是正交表?

以下概念来自百度百科
在这里插入图片描述
因素:输入的变量
水平:每一个输入变量的取值

5.1.2正交表性质

性质1:每一列中各数字出现的次数都一样多
性质2:任何两列中的各有序数对出现的次数都一样多
下图为一个正交表,可以对照看性质
解释一下性质2:拿前两列为例子:1,1出现了一次,1,2出现了一次…都出现了一次,因此都一样多
在这里插入图片描述

5.1.3如何通过正交表设计测试用例

1.充分理解需求
2.确定因素和水平
3.画正交表并填写
4.将正交表转成测试用例

以注册的需求为例:
姓名,邮箱,密码,确认密码,验证码必须全部输入,才能进行注册
1.需求:必须全部输入
2.因素:姓名,邮箱,密码,确认密码,验证码
水平:填写/不填写
3.在这里插入图片描述
4.在这里插入图片描述
上图是测试点
具体真正测试的时候还需要测试每个测试点的环境,操作步骤,测试数据,预期结果
在这里插入图片描述

6.场景设计法

6.1场景

假设找女朋友,分为
搭讪>要联系方式>聊天>请女神吃饭>表白>确定男女朋友关系
但是每个过程还有可能出现很多意外
在这里插入图片描述
我们管搭讪>要联系方式>聊天>请女神吃饭>表白>确定男女朋友关系这一套叫主事件流,中间可能出现的问题叫次事件流

6.2如何通过这个方法设计测试用例

1.充分理解需求
2.确定主事件流
3.确定次时间流
4.每一个时间流就是一个测试用例

再举个ATM取款的例子
在这里插入图片描述
在这里插入图片描述

7.错误猜测法

通常是根据测试人员的经验去设计的,怎么提升经验呢?那就是多写测试用例,多看测试用例
以注册为例
1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文

8.额外设置

1.弱网
在fiddler设置
在这里插入图片描述
在这里插入图片描述
2.接口测试
可以用代码或者工具测试,这里用postman测试
在这里插入图片描述
可以根据http请求测试,还可以根据参数进行测试(传递所有参数,或者传递部分参数,不传参数或者传递其他参数等)
在这里插入图片描述
3.zip命令测试(可视化压缩工具测试用例设计)
功能:压缩的是一个文件夹/文件/图片
界面:压缩信息提示正确
性能:压缩5G和1kb的时间
安全:压缩完文件,解压之后文件不能损坏
4.水杯测试用例设计(实体)
在这里插入图片描述

5.微信发送朋友圈设计测试用例(软件的一个模块)
在这里插入图片描述

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

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

相关文章

游戏交易平台系统源码下载 网络游戏币、装备、账号、道具等交易网站源码

最新仿7881游戏交易平台系统源码下载网络游戏币、装备、账号、道具等交易网站源码 下载地址:https://bbs.csdn.net/topics/617562568

嵌入式软件开发是个啥职业?

在硬件行业中,有一类工作岗位是更偏向软件的,或者说是软硬结合非常紧密的工作,那就是嵌入式开发工程师。 说起嵌入式,可能很多没有接触过电子类的人没有听说这些东西。 其实简单来说,嵌入式开发就是写程序去控制硬件电…

某城高速综合管控大数据大屏可视化【可视化项目案例-04】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

Vue23组件自定义事件 和 解绑事件

Vue2&3组件自定义事件 和 解绑事件 Vue2组件自定义事件 功能:父组件绑定数据,子组件触发事件。(父绑子触发) 实现步骤(前三步在父组件实现,第四步在子组件实现): 第一步&#…

【LeetCode刷题-二分查找】--162.寻找峰值

162.寻找峰值 方法一:寻找最大值 题目保证了nums[i]≠nums[i1],所以数组nums中最大值两侧的元素一定严格小于最大值本身,因此最大值所在的位置就是一个可行的峰值位置 class Solution {public int findPeakElement(int[] nums) {int idx 0…

desc相关注入

desc相关注入 补充

合并二叉树(Java)

题目描述 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重…

递归和master公式

前置知识:无 1)从思想上理解递归:对于新手来说,递归去画调用图是非常重要的,有利于分析递归 2)从实际上理解递归:递归不是玄学,底层是利用系统栈来实现的 3)任何递归函…

windows上运行yolov3代码详解(小白)

batch_normalize1 # 是否做BN 代码链接 环境配置 没有Anaconda的话可以安装下 首先创建虚拟环境,名称随意,版本3.9.我觉得挺好的 激活虚拟环境 conda activate 刚刚创建的环境名称 切换到requirements.txt目录下,直接vscode打开yolov3文件…

CS224W5.3——信念传播

此文中,我们介绍信念传播,这是一种回答图中概率查询的动态规划方法。通过迭代传递消息给邻居节点,如果达成共识,则计算最终的信念值。然后,我们通过示例和泛化树结构展示消息传递。最后讨论了循环信念传播算法及其优缺…

践行“微”使命——建行江门市分行大力发展普惠金融支持小微企业

促进小微企业发展是保持国民经济高质量发展的重要基础。建行广东省江门市分行立足当地特色产业之需,以金融活水润泽侨乡众多小微企业,携手共赴美好未来。 双向奔赴,添翼高企发展 江门开平水口镇是全国三大水暖卫浴生产基地之一,…

CHM Viewer Star 6.3.2(CHM文件阅读)

CHM Viewer Star 是一款适用于 Mac 平台的 CHM 文件阅读器软件,支持本地和远程 CHM 文件的打开和查看。它提供了直观易用的界面设计,支持多种浏览模式,如书籍模式、缩略图模式和文本模式等,并提供了丰富的功能和工具,如…

队列Queue

结构特点:先进先出实现模式:单向非循环双指针链表 两个指针分别记录头和尾之所以不用循环链表是添加删除元素都在链表头部进行,不涉及尾部增删操作。 声明队列 声明队列之所以要用到两个结构体是因为除了单个链表节点之外,还需要…

神经网络(第二周)

一、简介 1.1 需求预测示例 1.1.1 逻辑回归算法 根据价格预测商品是否畅销。特征:T恤的价格;分类:销售量高1/销售量低0;使用逻辑回归算法进行分类,拟合效果如下图所示: 1.1.2 神经元和神经网络 将逻辑回…

Java的类与Golang的结构体的区别

Java作为一门面向对象(OOP)的编程语言,它有类(class)的存在,而对于Golang,它不完全遵从OOP编程语言的设计思想,但它也有类似Java类的结构存在,那就是结构体(s…

数据结构与算法之排序: Leetcode 21. 合并两个有序链表 (Typescript版)

合并两个有序链表 https://leetcode.cn/problems/merge-two-sorted-lists/ 描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 …

【网络奇遇记】电路交换与分组交换谁更 “ 美 ”

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. 电路交换1.1 电路交换讲解1.2 电路交换实例 二. 分组交换1.1 分组交换讲解1.2 分组交换实例1.3 …

Producer

Producer开发样例 版本说明 新客 户端, 从Kafka 0.9.x 开始, client基于Java语言实现。同时提供C/C, Python等其他客户端实现。 开发步骤 配置客户端参数以及创建客户端实例;构建待发送消息;发送消息;关闭生产者实例; 代码示例 public class KafkaProducer {public stati…

什么是数据库事务、事务的ACID、怎么设置/禁止自动提交?

数据库事务及ACID 数据库事务是指作为单个逻辑工作单元执行的一组操作。这组操作要么全部成功地执行,要么全部不执行,不允许出现部分执行的情况。数据库事务通常需要满足ACID属性,即原子性(Atomicity)、一致性&#x…