Skip to content

#review

软测设计应用

字数
2460 字
阅读时间
10 分钟

为了方便理解整个体系,这里梳理一个简单的脉络图:

  • 黑盒测试(功能测试)
    • 等价类划分:按需求把输入数据分类。
    • 边界值分析:专门测试分类边界上的数据。
    • 其他方法:因果图、判定表、正交试验、场景法(流程图法)等。
  • 白盒测试(结构测试)
    • 语句覆盖:每一行代码都执行过。
    • 判定覆盖:每个分支的真假都走过。
    • 路径覆盖:所有可能的独立路径都走过。
  • 灰盒测试
    • 关注模块间接口、数据流(如:集成测试)。

一、🌟🌟🌟等价类划分法

  • 解决的问题:设计少量测试数据覆盖全量数据测试的场景问题
  • 适用场景:针对表单类页面元素测试时使用
  • 表单类页面元素:
    1. 输入框(典型)
    2. 下拉列表
    3. 单选复选框

1. 使用步骤及说明

划分等价类同样可以使用Xmind先进行分类分析,再根据Xmind结构设计测试点

等价类的划分:需要按照每个条件划分有效和无效

2. 示例

以QQ登录功能为例,按步骤来分析等价类并设计测试点

  • 要求:
    1. 账号:6~10位自然数且已注册(非空)
    2. 密码:正确/错误/空
  • 只有满足所有条件,才是有效等价类
1)如何拆解出无效等价类?
  1. 看长度
  2. 看类型
  3. 看规则 只要有一项不满足,那就是无效等价类。一般拆解无效等价类就是假设其中一个条件不满足的情况。因为若存在多个条件不满足的情况,无法分析具体是什么原因导致登录失败。
2)设计测试点
  • 这里的有效和无效指的是用于测试功能的测试点是正向还是逆向
  • 正向:满足需求条件的测试点,可以成功使用功能
  • 逆向:有一项条件不满足的测试点,不能使用功能,测试是否有缺陷(bug),是否有错误提示(登录失败弹窗)
  1. 测试点有效:满足所有条件
  2. 测试点无效:一个无效条件+其他有效条件的组合
    • 因为这样设计有助于快速定位失败原因,可以提高测试效率

二、🌟🌟🌟边界值分析法

1. 范围节点

  • 选取正好等于、刚好大于、刚好小于边界的值作为测试数据
    1. 上点:边界上的点(正好等于)
    2. 离点:距离上点最近的点(刚好大于、刚好小于)
    3. 内点:范围内的点(区间范围内的数据)
  • 例如:数据范围为-99 ~ 99

2. 适用场景

适用于有边界范围的测试数据输入场景使用

3. 使用步骤

一般使用边界值分析法是在等价类划分之后,这两种方法是结合一起使用的,具体步骤如下:

  1. 明确需求
  2. 确定有效和无效等价类
    • 前两步是等价类划分法的步骤
  3. 确定边界值范围(通常与第二步一起做)
  4. 提取数据设计测试点(Xmind)
  • 举个例子;

3. 示例

同样以QQ登录功能为例,在等价类划分的基础上,增加边界类分析 Xmind具体示例:

4、边界值分析法---范围优化

  • 在示例中:-98和98既属于离点又属于内点,应该如何处理呢?

  • 结论:7个点优化为5个点(只有离点可以优化,上点和内点都必须选)

    1. 上点:必选(不考虑区间开闭)
    2. 内点:必选(建议选择中间范围)
    3. 离点:开内闭外(考虑开闭区间,开区间选择区间内部离点,闭区间选择区间外部离点)
      • 说明:
        • 开区间:不包含,用( )表示
        • 闭区间:包含,用[ ]表示
        • 示例:-99<a<=99,使用开闭区间表示:(-99, 99]

三、🌟判定表法

等价类划分、边界值分析法都主要关注于数据的输入类测试,对于规则类的验证,无法直接应用

要对规则类进行验证,就需要用到判定表法。

  • 定义:判定表法是一种以表格形式梳理多条件组合逻辑判断的工具

  • 作用:理清复杂逻辑,解决条件组合测试的混乱问题

  • 组成:

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

    1. 判定表内贯穿条件项和动作项的一列就是一条规则
    2. 假设有 n 个条件,每个条件的取值有两个(0, 1),全组合有 2n 种规则
  • 说明一下判定表长什么样: 灰色框里的是条件桩,绿色框里的是动作桩,黄色框内的是条件项,蓝色框内的是动作项

  • 举个例子说明一下:若用户欠费或者关机,则不允许接打电话 主叫:打电话 被叫:接电话

1. 适用场景

  • 应用场景:针对规则的验证
    • 规则类验证:有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约/因果)关系
    • 适用条件不宜过多(不超过 4 个,如果超过建议使用因果图法)

2. 使用步骤

  1. 明确需求
  2. 画出判定表
    1. 列出条件(条件桩)和结果(动作桩)
    2. 填写条件真假值(条件项),并进行全组合
    3. 根据每组取值确定组合结果(动作项)
  3. 根据规则编写测试点

3. 示例

需求:

  1. 指定时间段(符合开始时间和结束时间)
  2. 消费金额满1000元 如果上述条件同时满足,则可以享受9折优惠,否则不可以享受
  • 注意:动作项是根据条件项的组合判断得来的,不是乱填的

四、🌟🌟🌟流程图法(场景法)

1. 基本介绍

  • 说明:用图形(流程图)表示业务流程,测试每条路径
    • 业务:指软件为满足用户特定的业务需求而设计并实现的一系列功能(组合)
    • 示例:电商APP下单业务(登录 -> 搜索 -> 添加购物车 -> 下单 -> 支付)
  • 流程图:使用一些特定的图像和箭头线表示程序的业务走向
    • 常用符号:
  • 流程图对测试人员的作用:
    1. 能够看懂流程图,设计业务用例
    2. 当需求文档信息不全时,能够根据需求,梳理出流程
  • 流程图谁提供
    1. 产品人员提供
    2. 测试自己画

2. 适用场景

  • 根据用户的各种业务场景(功能组合),验证产品是否满足需求的过程
  • 一般开发提测之后,先进行业务流程测试时使用(确保正常功能具备可测性
  • 作用:确保复杂流程不漏测,解决业务覆盖问题
  • 什么时候测业务流程?一般是开发提测后冒烟测试后)
  • 适合业务流程复杂、用户交互多、需要验证完整业务链路的软件系统测试

3. 使用步骤

  1. 根据流程图找出业务路径(从开始到结束节点数路径,一条路径对应一个测试点)
    • 有流程图:产品需求提供
    • 无流程图:根据业务步骤,自己画流程图
  2. 根据找出的路径设计测试点

4. 示例

5. 流程图画法

  • 画图工具:
    • 在线工具:ProcessOn
    • 其他工具:Microsoft Visio
1)ProcessOn示例

登录流程:输入用户名:admin,密码:123456,判断是否正确,若正确则输出:登陆成功;否则输出:登陆失败

画流程图步骤:

  1. 新建流程图
  2. 绘制流程图(只要把最核心的步骤流程绘制出来就行):

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史

撰写