软件测试基础 (二)—— 测试用例

软件测试基础 (二)—— 测试用例

一、 什么是测试用例

测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

二、为什么要写测试用例

  • 深入理解需求,理请思路,避免遗漏测、重复测,发现需求中的问题,提高测试效率

  • 跟进测试进度,简单计算 执行测试的完成度= 执行的测试用例/未执行的测试用例

  • 历史参考,功能相似的模块可以参考历史用例,给新来的同事快速熟悉业务

三、测试用例的设计

用例的要素:

  • 用例编号

  • 所属项目

  • 用例标题

  • 用例级别

  • 前置条件

  • 输入

  • 操作步骤

  • 预期结果

用例的3A原则(最不可缺的用例要素有哪几个)

  • Arrange: 初始化测试对象或者准备测试数据 —— 前置条件/数据
  • Act : 调用被测方法 —— 用例执行步骤(操作步骤)
  • Assert: 断言 —— 预期结果

黑盒测试:设计和执行测试过程中,不考虑被测程序内部的结构,将被测程序视作不透明的黑盒子,只考虑输入内容和输出结果,发现软件的缺陷的过程

黑盒测试的方法:

  1. 等价类
  2. 边界值
  3. 判定表
  4. 因果图
  5. 正交法
  6. 场景法
  7. 错误推断法

3.1 等价类

等价类划分

  • 将程序所有可能的输入进行合理分类,再从每一个分类中选取少数具有代表性的数据作为测试用例。

  • 有效等价类:符合需求说明的,合理的输入数据的集合

  • 无效等价类:不符合需求说明的,无意义的输入数据的集合

等价类设计用例步骤

  1. 划分有效等价类和无效等价类
  2. 为等价类表中的每一个等价类分别规定一个唯一的编号
  3. 设计一个新用例,使它能够尽量多覆盖尚未覆盖的有效等价类。重复该步骤,直到所有的有效等价类均被用例覆盖
  4. 设计一个新用例,使它仅覆盖一个尚未覆盖的无效等价类。重复该步骤,直到所有的无效等价类均被覆盖
有效等价类 编号 无效等价类 编号
1 ~ 100 整数 (1) 1 ~ 100 小数 (2)
- 小于1的数字 (3)
- 大于100的数字 (4)
- 字母 (5)
- 特殊符号 (6)
- 中文 (7)
- (8)
- 负数 (9)

3、设计一个新用例,使它能够尽量多覆盖尚未覆盖的有效等价类。重复该步骤,直到所有的有效等价类均被用例覆盖
4、设计一个新用例,使它仅覆盖一个尚未覆盖的无效等价类。重复该步骤,直到所有的无效等价类均被覆盖

用例编号 覆盖等价类 输入 预期结果
1 (1) 1 ~ 100 整数 50 系统提示输入正确
2 (2) 1 ~ 100 小数 50.1 系统提示:请输入1~100的整数
3 (3) 小于1的数字 0 系统提示:请输入1~100的整数
4 (4) 大于100的数字 150 系统提示:请输入1~100的整数
5 (9) 负数 -50 系统提示:请输入1~100的整数
6 (6) 特殊符号 @#¥%…… 系统提示:请输入1~100的整数
7 (7) 中文 测试中文输入 系统提示:请输入1~100的整数
8 (5) 字母 a 系统提示:请输入1~100的整数
9 (8) 空 系统提示:请输入1~100的整数

3.2 边界值

对输入或输出的边界值进行测试

特点:

  • 不是从一个等价类中任选一值做代表,而是寻一个或几个值,使得该等价类的边界值成为测试关注的目标
  • 边界值分析法作为对等价类划分法的补充
  • 边界值分析法不仅关注输入条件,它还根据输出的情况(输出等价类)设计测试用例;例如:计算结果的小数点精确位数

3.3 判定表

判定表是分析和表达多逻辑条件下执行不同操作的工具。将复杂的问题按照各种可能的情况全部列举出来,某些操作的实施依赖于多个逻辑条件的组合,针对不同逻辑条件的组合值,分别执行不同的操作

  • 条件桩:需求规格说明书定义的被测对象的所有输入

  • 条件项:针对条件桩可能输入数据值

  • 动作桩:针对条件,被测对象可能采取的所有操作

  • 动作项:针对动作桩,被测对象相应的可能取值

规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。

化简:就是把相同规则进行合并。合并的标准是,有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系

需求:订购单的检查规则为:若金额超过600元,又未过期,则发出批准单和提货单;若金额超过600元,但过期了,则不发批准单;如果金额低于600元,则不论是否过期都发出批准单和提货单,在过期的情况下还需发出通知单。(没有批准单就没有提货单)

列出所有条件桩和条件项

条件桩 条件项
订购金额是否大于600元 Y —>大于600元
N —>小于600元
订单是否过期 Y —>订单过期
N —>订单没过期

列出所有的动作桩和动作项

动作桩 动作项
发出批准单 X
发出提货单 X
发出通知 X

生成判定表(先条件组合,再看结果)

简化判定表

删除序号1组合

3.4、因果图

用图解的方法表示输入的各种组合关系,写出判定表,从而设计相应的测试用例。 适用范围:适用于分析程序输入条件的各种组合情况,以及输入与输出之间的依赖关系。

  • 因果图的“因”——输入条件
  • 因果图的“果”——输出结果

使用步骤

  1. 根据程序规格说明书描述的语义内容,分析并确定 “因” 和 “果”;

  2. 将 “因” 和 “果” 表示成 “因果图”;

  3. 在因果图上使用若干个约束符号来标明约束条件;

  4. 将得到的因果图转换成判定表;

  5. 为判定表中每一列所表示的情况设计一个测试用例。

因果图

《因果图法》-有这篇就够了

3.5、正交法

因果图和判定表:依据方法中的主要思想,同类输人间不可同时发生,不同类型输人间必须同时存在其中之一 ,所以将需求中的各项输入分别组合一一遍。常常不可避免地产生一个非常庞大的组合数字,不合实际情形,如3X3X3X3=81次组合(全排列)

正交试验法即使用事先已创建好的表格一正交表,来安排试验并进行数据分析的一种科学试验设计方法,借助正交表可从大量的试验数据(测试用例)中筛选出适量的、有代表性的值,从而协助合理地安排试验(测试),满足了“在简化用例的同时尽量充分开展测试”的需求。

测试用例设计之正交表法详解

3.6 、场景法

尽可能真实模拟用户操作的一种用例设计分析方法

场景法主要基于 2 个层面开展

  1. 业务(需求)层面:对被测软件的重要功能、业务逻辑(系统要实现什么、如何实现?)、行业背景深入理解
  2. 技术层面:基于等价类划分中的有效等价类——模拟用户正确操作;无效等价类——模拟用户错误操作

核心概念:

  1. 基本流(正确流、有效流):模拟用户正确的操作流程

  2. 备选流(错误流、无效流):模拟用户错误的操作流程

设计步骤

  1. 根据说明,描述出程序的基本流及各项备选流
  2. 根据基本流和各项备选流生成不同的场景
  3. 对每一个场景生成相应的测试用例
  4. 对生成的所有测试用例重新审核,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

3.7 错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。




------

参考文章和推荐阅读

《判定表驱动法》-有这篇就够了

浅谈测试用例

《因果图法》-有这篇就够了

测试用例设计之正交表法详解

《软件测试技术及用例设计实训》

小马的测试用例那些事 测试用例设计之场景图法

测试基础 软件测试用例设计方法-场景法

黑盒测试--场景法




posted @ 2021-03-03 22:56  深圳-逸遥  阅读(828)  评论(2编辑  收藏  举报