目录

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

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

🥰🥰🥰来都来了,不妨点个关注叭!

https://img-blog.csdnimg.cn/direct/435fc3b07030440bbac6963aa7936045.png#pic_center

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

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

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

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

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

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

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

第一步:要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽

第二步:在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项

第三步:根据每一个测试点进行测试用例的设计

https://i-blog.csdnimg.cn/direct/81d90cb218614d5e89d5b657d3e3a8f0.png#pic_center

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

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

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

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

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

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

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

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

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

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

步骤

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

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

https://i-blog.csdnimg.cn/direct/212afbd322b64099acc69957f0085644.png#pic_center

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

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

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

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

下面通过一个例子,对上点、离点、内点,进行进一步的介绍:

https://i-blog.csdnimg.cn/direct/3575af80f7ad40a48213e2e0d0bdda45.png#pic_center

https://i-blog.csdnimg.cn/direct/d1295b84ada64bc2b6c1b2544c0f651c.png#pic_center

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

https://i-blog.csdnimg.cn/direct/c733a5b14a114b8cb4cbebda299f13dc.png#pic_center

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

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

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

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

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

判定表如下:

https://i-blog.csdnimg.cn/direct/bc4723266bc54c2c941839abc315da3b.png

对应的测试用例如下:

https://i-blog.csdnimg.cn/direct/d9de8786cf2e4b888d7b8d4c040e3c7f.png#pic_center

概念 】正交表法通常用 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) 将正交表转换成测试用例

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

其中, 基本流 是软件功能按照最短的事件流实现的一条正确的流程

备选流 则是由于异常、缺陷或其他原因导致最终的目的不能实现或实现的流程,并非最短的流程

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

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

步骤

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

例子

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

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

https://i-blog.csdnimg.cn/direct/e97e4d9612eb456f81eb6abc7a3566cb.png#pic_center

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

https://i-blog.csdnimg.cn/direct/90deb4e1812545bc8bf466ddfeed3c7e.png#pic_center

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

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

继续以注册为例:

  1. 校验中特殊字符空格的处理

  2. 密码发送是否明文

  3. 密码校验中的大小写

  4. 姓名中的特殊字符

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

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

https://i-blog.csdnimg.cn/direct/f0320b77c4fc4796b0a8b964072c4773.png#pic_center

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

步骤二设置网络参数

点击 Rules ——> Customize Rules…

https://i-blog.csdnimg.cn/direct/a261cef02b79415ab7deec98108ef140.png#pic_center

点击后,打开了这个脚本,找到 OnBeforeRequest 可以设置网络参数~

https://i-blog.csdnimg.cn/direct/b8c3dde77109452da0bd797140980e23.png#pic_center

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

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

https://i-blog.csdnimg.cn/direct/3bc4d780defb4525a569f1c3d98701d9.png#pic_center

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

https://i-blog.csdnimg.cn/direct/99d46e2e929f4e99a4b2cb9598511b95.png#pic_center#pic_center

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

步骤三在 postman 中import 复制内容

https://i-blog.csdnimg.cn/direct/9aa29082b9834cd097d4f2db5540535e.png#pic_center

步骤四进行测试

测试 http 请求方法有 get,post,delete…,选其中一个

针对参数进行测试,如:传递所有参数,传递部分参数,不传参数,传其他参数

https://i-blog.csdnimg.cn/direct/2ef10c963f6c4b1dbdaf9bfe575f56d2.png#pic_center

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

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

https://i-blog.csdnimg.cn/direct/06640181f39c4daf994468f8d4a38e5a.png#pic_center

https://i-blog.csdnimg.cn/direct/7fb9958b69d74605a88d79791974251e.png#pic_center

https://i-blog.csdnimg.cn/direct/6823091cd51941999997764fe9061c2d.png#pic_center

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

https://i-blog.csdnimg.cn/direct/c3b617a8c82e4befb7c92459401dc83b.png

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