4. 设计(黑盒)测试用例 (一) 等价类 & 边界值 & 判定表

本篇文章我们将详细介绍如何来测试用例。

1. 设计测试用例的基本要素

1.1 测试用例概念

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合。

1.2 测试用例要素

测试环境、测试步骤、测试数据、预期结果。

1.3 测试用例的重要性

  • 提高测试效率
  • 降低测试重复性
  • 手工测试用例是自动化测试用例的基础

2. 黑盒测试用例设计方法

为了设计出比较全面的测试用例(正常 + 发散测试 + 逆向测试)

2.1 基于需求设计测试用例

步骤

充分理解需求(前提) -> 将大需求拆分成子需求 -> 基于需求设计
基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正 确、完整、无二义性,并且逻辑自洽。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测 试点或者测试项,然后根据每一个测试点进行测试用例的设计。
在分析测试需求时,一般分为 功能测试需求非功能测试需求:

功能相关:

  • 业务流程(prd 软件需求文档)
  • 界面相关(UI 设计稿)
  • 易用性(测试人员经验)

非功能相关:

  • 兼容
  • 安全
  • 性能

用户需求 :
购买 3000 块钱以内的华为智能手机
测试用例:

  1. 价格 <=3000 元
  2. 品牌为华为
  3. 智能手机
  4. 手机功能验证:
    4-1.打电话
    4-2.接电话
    4-3.发短信
    4-4.收短信
    ...
    软件需求:
    1.1.1.1.5.3 异常事件流
  5. 若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件。
  6. 每次发送的激活邮件,仅在发送邮件后起 24 小时之内有效,超过 24 小时后需重新发送激活邮件。
    ** 测试用例 **
    1-1 、未收到邮件,登录时输入电子邮件及密码后,再次发送激活邮件
    1-2 、已收到邮件,登录时输入电子邮件及密码后,不发送激活邮件
    2-1 、收到邮件,未激活, 24 小时内进行激活
    2-2 、收到邮件,未激活, 24 小时后链接过期进行激活。
    2-3 、收到邮件,已激活, 24 小时后链接过期,再次点击激活
    页面检查:
    1 、收到激活邮件
    2 、邮件内容正确
    3 、激活 URl 正确,可激活
    4 、再次激活提示已激活
    5 、过期激活提示已过期

2.2 练习设计测试用例

163 邮箱注册 登录模块测试用例设计(基于需求设计测试用例)

首先将需求拆分成子需求,然后将子需求拆分成功能相关和非功能相关。具体如下图所示:

2.3 具体设计测试用例方法

2.3.1 等价类

将需求划分为等价类(若干个),从等价类中选出一个测试用例,如果这个测试用例通过,则认为所代表的等价类测试通过。

有效等价类:满足用户需求对应的输入集合。

无效等价类:不满足需求。
++等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。++

设计测试用例步骤

充分理解需求 -> 划分有效等价类、无效等价类 -> 设计测试用例

举例

对于一个 6-15 位输入,通过等价类方法设计测试用例。

2.3.2 边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

边界点:

  • 上点:边界上的点。
  • 内点:边界内的点。
  • 离点:上点附近的一个点(如果是闭区间,离点就是边界外的点;如果是开区间,离点就是边界内的点)
设计测试用例步骤

充分理解需求 -> 找边界点 -> 针对边界点设计测试用例

举例
2.3.3 判定表(因果图)

判定表:表达逻辑判断的工具(一个表格,表格里面有条件和结果)。

判定表中存在以下四种关系:

|----|-----------------------------------------|
| 恒等 | 条件为真 -> 结果为真 |
| 非 | 条件为真 -> 结果为假 |
| 与 | 两个条件均为真 -> 结果为真; 两个条件中任意一个为假 -> 结果为假; |
| 或 | 两个条件均为假 -> 结果为假; 两个条件中任意一个为真 -> 结果为真; |

设计测试用例步骤
  • 设计所有可能的输出和输入
  • 找输入与输出之间的对应关系
  • 根据输入和输出确定判定表
  • 将判定表对应到每个测试用例
举例

淘宝 618 是否优惠

订单金额大于 300 或者有红包则优惠 否则 不优惠

输入:订单提交、订单金额、红包

输出:优惠 或者 不优惠

|---------|---|---|---|---|---|---|---|---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 订单提交 | Y | Y | Y | Y | N | N | N | N |
| 金额大于300 | Y | Y | N | N | Y | Y | N | N |
| 有红包 | Y | N | Y | N | Y | N | Y | N |
| 优惠 | Y | Y | Y | N | N | N | N | N |

相关推荐
99乘法口诀万物皆可变15 小时前
ODX相关基础知识普及
测试工具·测试用例
我爱学Python!1 天前
基于 LangChain 的自动化测试用例的生成与执行
人工智能·自然语言处理·langchain·自动化·llm·测试用例·大语言模型
互联网杂货铺3 天前
2024软件测试面试题大全(含答案+文档)
自动化测试·软件测试·python·功能测试·面试·职场和发展·测试用例
委婉待续4 天前
测试用例的举例
测试用例
豆子熊.6 天前
外包干了4年,技术退步太明显了。。。。。
软件测试·selenium·测试工具·测试用例·postman
互联网杂货铺7 天前
软件测试之单元测试/系统测试/集成测试详解
自动化测试·软件测试·python·测试工具·单元测试·测试用例·集成测试
码农心语7 天前
用CMake添加gtest测试用例gtest_discover_tests指令函数的分析
测试用例·cmake·添加·原理分析
欲游山河十万里7 天前
unittest初始化,资源清理,执行所有测试用例,跳过测试用例,输出测试结果的详细程度以及discover加载文件里面的所有匹配到的.py测试用例
测试用例
秋名山小白7 天前
【面试题】软件测试实习(含答案)
linux·功能测试·测试用例