目录
- 黑盒测试用例设计方法
- 测试用例设计综合实战
- 面试测试用例设计思路
因果图中的基本符号
因果图中的约束条件
因果图法基本步骤
- 找出所有的输入条件(因)
- 找出所有的输出条件(果)
- 明确所有输入条件之间的制约关系以及组合关系
- 明确所有输出条件之间的制约关系以及组合关系
- 找出什么样的输入条件组合会产生哪种输出结果
- 把因果图转换成判定表
- 为判定表中的每一列表示的情况设计测试用例
因果图法举例
交通一卡通自动充值软件系统
需求解释
系统只接收 50 或 100 元纸币,一次只能使用一张纸币,一次充值金额只能为 50 元或 100 元
- 若按 50 元按钮,并选择充值 50 元,完成充值后退卡,提示充值成功
- 若按 50 元按钮,并选择充值 100 元,提示输入金额不足,并退回 50 元
- 若按 100 元按钮,并选择充值 50 元,完成充值后退卡,提示充值成功,找零 50 元
- 若按 100 元按钮,并选择充值 100 元,完成充值后退卡,提示充值成功
- 若按投币按钮后在规定时间内不选择充值按钮,提示错误
- 若选择充值按钮后不按投币按钮,提示错误
找到所有输入条件编号
-
选择 50 元
-
选择 100 元
-
选择充值 50 元
-
选择充值 100 元
找到所有输出条件编号
a. 完成充值、退卡
b. 提示充值成功
c. 找零
d. 提示错误
画图分析输入和输出的关系
条件 1、3 组合 – 输出 a、b
图转化为表格
分析输入和输出的关系
- 条件 1、4 组合 – c、d
- 条件 2、3 组合 – a、b、c
- 条件 2、4 组合 – a、b
- 条件 1 单独出现 – c、d
- 条件 2 单独出现 – c、d
- 条件 3 单独出现 – d
- 条件 4 单独出现 – d
转化为表格
判定表法
- 因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例。
- 画因果图非常麻烦,影响测试效率,可以直接写判定表,进而编写测试用例。
判定表的组成
- 条件桩:问题的所有条件
- 动作桩:问题的所有输出
- 条件项:针对条件桩的取值
- 动作项:条件项的各种取值情况下的输出结果
判定表设计步骤
- 列出所有的条件桩和动作桩
- 确定规则数:条件取值个数^条件数
- 填入条件项
- 填入动作项。得到初始判定表
- 简化判定表
判定表举例
判断三角形
- 输入三个正整数 a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?
- 如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
场景法概述
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。
用例场景定义
- 基本流:按照正确的业务流程来实现的一条操作路径
- 备选流 :导致程序出现错误的操作流程
场景法用例设计步骤
- 根据需求规格说明,画出功能模块流程图;
- 根据流程图,描述出程序的基本流及备选流;
- 根据基本流和备选流生成不同的场景,构造场景列表;
- 对每一个场景生成相应的测试用例;
- 对生成的所有测试用例重新复审,去掉多余的测试用例;
- 测试用例确定后,为每一个测试用例确定测试数据值
场景法案例
对淘宝网购物流程设计测试用例
画流程图
正交法
正交排列法能够使用最小的测试过程集合获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。
正交法的局限性
- 目前常见的正交排列表只有前面附录文件中给出的几种
- 即使是已有的正交排列表,基本都要求每个控件中取值的个数要相等,这在实际软件中很少遇到。
测试方法的选择
- 需要输入数据的地方,考虑采用等价类划分法,将无限测试变成有限测试
- 在任何情况下都必须采用边界值分析法
- 关注它的主要功能和业务流程、业务逻辑是否正确实现,考虑使用场景法
- 如果程序的功能说明中含有输入条件的组合情况,则一开始就应考虑选用因果图和判定表法
- 对于参数配置类的软件,需要考虑参数之间的组合情况,考虑使用正交排列法选择较少的组合方式
- 采用错误推断法再追加测试用例
测试用例的粒度
- 测试用例可以写的很简单,也可以写的很复杂
- 最简单的测试用例是测试的纲要,仅仅指出要测试的内容
- 测试用例写的过于简单,则可能失去了测试用例的意义
- 最复杂的测试用例则会指定输入的每项数据,期待的结果即检验方法,具体到界面元素的操作步骤,指定测试的方法和工具等
- 测试用例写得过于复杂或详细,会带来两个问题:一个是效率问题,另一个是维护成本问题。另外,测试用例设计的过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。
登录测试用例设计
登录需求讲解
- 帐号是手机号或者邮箱
- 手机号仅限制为国内常用的号段
- 密码必须为 数字+英文 的形式,字段为 8-12 个字符
- 点击登录按钮,发起登录请求
- 请求成功,跳转到首页
- 点击忘记密码跳转到找回密码页
测试用例编写步骤
- 划分功能模块
- 正向功能验证
- 单个功能项验证
- 功能之间交互验证
- 隐形需求
输入项设计要点
- 数据长度验证
- 数据类型验证
- 是否必填验证
- 限制约束验证
思路
- 需求分析
- 界面
- 功能
- 易用性
- 兼容性
- 性能
- 安全性