【软件测试】黑盒测试用例的设计

🥰🥰🥰来都来了,不妨点个关注叭!
👉博客主页:欢迎各位大佬!👈

在这里插入图片描述

1. 测试用例基础知识

在讲解测试用例设计之前,我们先来了解了解测试用例的基础知识~

1.1 测试用例概念

测试用例就是一组集合,包括了这四大要素:

  • 测试环境
  • 操作步骤
  • 测试数据
  • 预期结果

1.2 测试用例好处

为什么需要测试用例呢?包括但不限于以下三点好处:

  • 提高代码的复用性,提高测试人员的测试效率
  • 便于回归测试
  • 为自动化测试提供基础

2. 黑盒测试用例的设计

2.1 黑盒测试概念

黑盒测试也称为功能测试,或者是数据驱动测试,是一种软件测试的方法。(软件测试按照不同的条件可以分成不同的类别~上期内容有介绍)黑盒测试的核心思想是将被测的软件视为一个无法打开的“黑盒子”,测试人员无需关注软件内部的逻辑结构和代码实现,仅根据软件的需求规格说明书/产品需求文档/prd检查软件的功能是否符合预期的功能说明

2.2 基于需求进行测试用例的设计

基于需求设计测试用例是测试设计和开发测试用例的基础,测试用例是需要紧紧围绕需求来设计的~

第一步:要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽
第二步:在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项
第三步:根据每一个测试点进行测试用例的设计
在这里插入图片描述

总之,就是要根据需求文档,分析需求,根据需求文档进行测试用例的编写~

在进行分析测试需求的时候,一般分为功能测试需求和非功能测试需求

2.2.1 功能测试需求

对于功能测试中,可以借助功能框图来帮助我们进行测试的需求分析,总之,概括起来,功能测试需求通常包括以下几个方面:

  1. 系统各功能界面的验证
  2. 借助业务把功能串起来进行测试
  3. 功能的一致性,交互性(即多功能相互操作)的测试
  4. 系统的不同输入,结果输出的业务数据测试
  5. 功能的错误、异常操作测试(属于负面测试)
  6. 功能实现用到的算法验证(有的时候需要运用代码评审)
  7. 用户操作的易用性,用户体验,往往需要结合功能测试同时验证

2.2.2 非功能测试需求

非功能测试需求,主要是涉及性能、安全性、可靠性、兼容性、易维护性、可移植性等等

每一类非功能特性测试都需要根据需求单独分析,因为它们之间可能存在影响,比如,安全性越高,就可能给易用性和性能方面带来更大的挑战(有点鱼和熊掌不可兼得的意味~)

2.3. 黑盒测试用例设计的具体方法

2.3.1 等价类法

概念】依据需求将输入划分成若干个等价类,从等价类中选取一个测试用例,如果这个测试用例通过了,则认为所代表的等价类测试通过,这里可以清楚的看出等价类的好处,可以用较少的测试用例达到尽可能多的功能覆盖,解决了不能穷举测试的问题~

注意】这里需求将输入划分,在特殊情况下会考虑输出

分类】分为有效等价类和无效等价类

  • 有效等价类:指对于程序的规格来说合理,有意义的输入数据构成的集合
  • 无效等价类:指对于程序的规格说明而言不合理或者无意义的输入数据

步骤

  1. 充分理解需求
  2. 划分有效等价类和无效等价类
  3. 分别从有效等价类和无效等价类中抽取一个数据进行测试用例设计

举例】对用户名长度在6-12个字符之间,进行等价类划分,如下:

在这里插入图片描述

2.3.2 边界值法

概念】边界值法是一种黑盒测试方法,其核心思想是通过选择系统输入的边界值和特殊值作为测试用例,边界值通常指的是输入变量的最小值、最大值以及临界值,特殊值则是系统能够接受的非常规输入

注意】在设计测试用例时,边界值通常与等价类划分法一起使用,这样可以实现尽可能多的用例覆盖

使用边界值法进行测试用例的设计时,需要对以下三个概念进行理解,如下:

  • 上点:边界上的点(在闭区间中,上点位于区间内,在开区间中,上点位于区间外)
  • 离点:是指离上点最近的点(在开区间中,离点位于区间内最近的点,而在闭区间中,离点则位于区间外最近的点)
  • 内点:是指区间内任意的一点

下面通过一个例子,对上点、离点、内点,进行进一步的介绍:
在这里插入图片描述

在这里插入图片描述

举例】用户名长度在6-12个字符之间,进行边界值法,如下:

在这里插入图片描述

2.3.3 判定表法

概念】判定表法是一种黑盒测试方法,又称为决策表法,是一种表格状的图形工具,其核心思想是适用于处理判断条件较多,各条件相互组合,有多种决策方案的情况,判定法能够把所有的输入条件、所有可能采取的动作按照表格列出来,每一种条件和动作组合构成一条规则,也就是一条用例

组成】判定表由 4 个部分组成

  • 条件桩:列出所有条件的名称,即系统的所有输入
  • 动作桩:列出系统可能采取的操作,即结果
  • 条件项:列出各个条件所有可能的取值
  • 动作项:列出所有可能采取的动作

规则】一组条件与动作的组合,一条规则对应一条测试用例

举例】使用判定表法,在打顺风车的时候,乘客订单提交,如果是优惠车或者乘客有优惠券,则由优惠,设计测试用例

判定表如下:
在这里插入图片描述
对应的测试用例如下:

在这里插入图片描述

2.3.4 正交表法

概念】正交表法通常用 Ln(mk) 表示,其中这 4 个字母代表的含义如下:

  • L 代表正交表
  • n 代表试验次数或正交表的行数
  • k 代表最多可安排影响指标因素的个数或正交表的列数
  • m 代表每个因素水平数,正交表的每一列中,不同数字出现的次

解释说明

  • 因素:输入变量
  • 水平:每个输入变量的取值

两个重要性质

  • 均衡分散性:正交表的每一列,不同的数字/水平 出现的次数是相等的
  • 整齐可比性:正交表中任意两列所构成的各有序数对出现的次数一样多

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

主要分为以下五个大步骤:

充分理解需求 ——> 确定因素,确定水平 ——> 画正交表 ——> 补充正交表 ——> 将正交表转换成测试用例

以注册这个需求为例子,要求对姓名,邮箱,密码,确认密码,验证码都输入正确才能注册成功

1)对以上需求进行分析可知:
2)因素:姓名,邮箱,密码,确认秘密,验证码
      水平:填写,不填写
3)通过 allpairs 画正交表

  • 将因素和水平放到 excel 表格中
  • 将 excel 表格中内容直接复制到 txt 文本中
  • 通过 cmd 进入到 allpairs 安装路径下面
  • 生成正交表 allpairs.exe filename.txt > filename_result.txt

4)补充正交表
5) 将正交表转换成测试用例

2.3.5 场景设计法

我们知道,现在软件几乎都是用事件触发来控制流程的,事件触发时的情景就便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。

其中,基本流是软件功能按照最短的事件流实现的一条正确的流程
备选流则是由于异常、缺陷或其他原因导致最终的目的不能实现或实现的流程,并非最短的流程

该方法可以比较生动地描绘出事件触发时的场景,有利于测试设计者设计测试用例,使测试用例更容易理解和执行,典型的应用是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免缺陷功能细节忽略业务流程要点的错误倾向~

那么如何通过场景设计进行测试用例的设计呢?

步骤

充分理解需求 ——> 确定主数据流 ——> 确定次数据流 ——> 每一个数据流都是一个测试用例

例子

下面具体通过一个例子来进行了解~ 不然可能有点抽象~

比如想找一个男朋友,有这样的事件流,如下:

在这里插入图片描述

上面是一条找男朋友未出现异常时的事件流,但是找男朋友这件事并不是一帆风顺的,可能会有很多意外,出现各种情况,次事件流:

在这里插入图片描述

2.3.6 错误猜测法

黑盒测试的错误猜测法,也被称为错误推测法,是一种软件测试方法,其核心思想是在测试程序的时候,测试人员根据经验、知识和直觉来推测程序可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例。这种方法主要依赖于测试人员的直觉和工程经验,而并非是一种有章可循的工程设计方法。

需要注意的是,错误猜测法并不是一种完全可靠的测试方法,因为它依赖于测试人员的直觉和经验,可能存在遗漏或者偏差。因此,在实际测试过程中,通常会结合其他测试方法,比如等价类划分、边界值分析等,以确保测试的全面性和有效性~

继续以注册为例:

  1. 校验中特殊字符空格的处理
  2. 密码发送是否明文
  3. 密码校验中的大小写
  4. 姓名中的特殊字符

3. 常见面试题

3.1 如何使用 fiddler 模拟弱网

步骤一在 Fiddler 中打开弱网设置

打开 Fiddler ——> 点击 Rules ——> Performance ——> 勾选 Simulate Modern Speed

在这里插入图片描述

勾选之后,就可以发现网络速度已经慢下来了,因为系统里面有预设的网络参数值

步骤二设置网络参数

点击 Rules ——> Customize Rules…

在这里插入图片描述
点击后,打开了这个脚本,找到 OnBeforeRequest 可以设置网络参数~

在这里插入图片描述

注意】如果是模拟手机 APP 的弱网,那么你需要确保 Fiddler 能够抓到手机 APP 的包

3.2 如何使用 postman 接口测试

步骤一在页面中按 F12 查看接口

在这里插入图片描述

步骤二选择一个接口进行拷贝

在这里插入图片描述
点击一个,这里我选择的是“将所有列表复制为cURL(bash)”,进行复制~

步骤三在 postman 中import 复制内容

在这里插入图片描述

步骤四进行测试

测试 http 请求方法有 get,post,delete…,选其中一个
针对参数进行测试,如:传递所有参数,传递部分参数,不传参数,传其他参数

在这里插入图片描述

3.3 常见的用例设计

一般设计用例,需要写:用例名称+用例优先级+用例类型+前置条件+测试步骤+预期结果

设计可从以下几个方面考虑:功能+易用性+界面+性能+网络+兼容+安全+中断

3.3.1 设计水杯测试用例

在这里插入图片描述

3.3.2 设计微信发朋友圈测试用例

在这里插入图片描述

3.3.3 设计登录测试用例

在这里插入图片描述

💛💛💛本期内容回顾💛💛💛

在这里插入图片描述

✨✨✨本期内容到此结束啦~

### 黑盒测试设计方法概述 黑盒测试是一种专注于应用程序功能性的测试技术,不考虑内部结构或工作原理。为了有效地执行黑盒测试,采用合适的测试用设计方法至关重要。 #### 等价类划分法 通过识别输入数据的有效范围和无效范围来创建等价类。对于每一个有效的等价类,至少应有一个代表性的测试案;而对于每个无效的等价类,则需专门构建用于检验系统如何响应非法输入的情况[^3]。 #### 边界值分析法 边界值分析关注于极端条件下的行为检测,即当变量处于其允许取值的最大最小端点附近时的表现。此方法基于经验法则认为程序更可能在这些临界区域发生错误。 #### 判定表驱动法 利用判定表格的形式表达复杂的业务逻辑关系,其中每一列对应一种特定的操作组合及其预期的结果。这种方法特别适用于多因素交互影响的情形下定义详细的测试场景[^2]。 #### 因果图法 因果图是从自然语言描述的功能规格说明书中提取出原因与结果之间的联系,并转换成图形表示形式的过程。之后再由该图表推导出相应的测试路径,从而确保所有重要的决策分支都被充分考察过。 #### 正交实验设计法 这是一种统计学上的优化策略,旨在减少全因子实验所需的样本数量的同时保持较高的覆盖率。它能够帮助挑选最具代表性的一组参数配置来进行高效而全面的探索性测试。 #### 流程图/状态转移图法 针对具有明显顺序依赖特性的应用模块,绘制出反映各个操作步骤之间流转规律的状态机模型可以帮助发现潜在的风险点以及不易察觉到的竞争状况等问题所在之处。 ```python def test_boundary_value_analysis(): """演示边界值分析法""" def validate_input(x): if not (0 <= x <= 100): raise ValueError('Input out of range') try: # 测试正常范围内数值 validate_input(50) # 测试上下限边缘情况 validate_input(-1) validate_input(101) except Exception as e: print(f"Catch exception: {e}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值