概述
一、测试用例格式
二、用例设计方法 等价类
1、定义
等价类:等价定义→等价类划分→等价类划分规则→进行用例设计
无效等价类不做组合
等价 定义 | 具有相同属性或者方法的事物集合 | ||||
这个集合中某个个体所表现的特征与其他个体完全一致 | |||||
对于某个被测对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体在集合中的任意个体都应该被接受或被拒绝 | |||||
等价类 划分 | 有效等价类 | 针对被测对象而言,合理的、有意义的、系统接受的输入 | 用户名长度在[6,18] | ||
无效等价类 | 针对被测对象而言,不合理的、无意义的、系统不能接受的输入 | 用户名长度大于18位,或者小于6位 | |||
等价类 划分规则 | 如果需求规定了输入域的取值个数或确定了某个范围时,则可确定一个有效等价类及两个无效等价类 | 有效等价类 | 用户名长度在[6,18] | ||
无效等价类 | 用户名长度大于18位,或者小于6位 | ||||
如果需求规定了某个输入域的集合,或者必须如何的情况下,可确定一个有效等价类及一个无效等价类 | 有效等价类 | 以字母开头 | |||
无效等价类 | 非字母开头 | ||||
如果需求规定了某个输入域是真假值时,可确定一个有效等价类和一个无效等价类 | |||||
如果用户需求规定了输入域是一组值,则可确定若干个有效等价类及一个无效等价类 | 京东商城 | 砖石会员、金牌会员、铜牌会员和普通注册用户 | |||
用户需求规定必须遵守某种规则时,可确定一个有效等价类及若干个从不同角度违反规则的无效等价类 | 以字母开头 | 有效等价类:以字母开头; 无效等价类:以数字、汉字或者特殊符号开头 | |||
进行 用例设计 | 根据需求,划分有效及无效等价类,有效等价类同意编号,无效等价类统一编号 | ||||
设计一个新的测试用例,使其尽可能的覆盖所有尚未覆盖的有效等价类,直到所有有效等价类都被覆盖 | |||||
设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类都被覆盖 | |||||
等价类四则运算法 | 加 | 不考虑需求其他子项,细致分解当前测试点及详细需求,做累加 | |||
减 | 根据业务规则减少,排除相关不可能出现的规则,减少不可能出现的组合 | ||||
乘 | 如果有效等价类中具有互斥条件的需求时,可进行相乘得到用例个数 | ||||
除 | 排除所有具有重复特性的等价类,尽可能做到有效等价类之间的交集为空,无效等价类之间的交集也为空,有效及无效等价类的并集为整个输入域 |
2、使用场景
具有相同属性或者方法的事物集合、这个集合中某个个体所表现的特征与其他个体完全一致、对于某个被测对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体在集合中的任意个体都应该被接受或被拒绝
例如 用户登录 ** 6~18个字符,包括数值、字母、下划线;** 字符开头,字母或数字结尾,不区分大小写
3、分析过程 (具体案例)
- 分析过程
- 测试计划
三、边界值
1、定义
例:用户名长度为6-18位
边界值 三点 | 上点 | 边界上的点 | 6 | 8 |
离点 | 离上点最近的点 | 5 | 19 | |
根据上点的精度确定 |
|
| ||
内点 | 边界有效范围内的任一一点 | 10 |
| |
如何确定离点 | 如果边界是闭区间,则离点在外 | [6,18] | 上点:6,18 离点:5,19 内点:10 | |
如果边界是开区间,则离点在内 | (6,18) | 上点:6,18 离点:7,17 内点:10 | ||
边界值 方法应用步骤 | 根据等价类方法划分有效等价类和无效等价类,确定上点、离点及内点,每个点统一编号 |
|
| |
设计一个新的用例,使其尽可能的覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖 |
|
| ||
设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖 |
|
| ||
|
|
2、使用场景
边界值 应用场景
| 如果需求规定了取值范围或规定了取值个数时,可利用该范围的边界内及边界附近的数据进行测试 | [6,18] | 6,18,5,19,10 |
如果需求规定了取值的个数,则少于个数一个或多于个数一个的值进行进行测试 | 购买5件商品则打8折 | 4或5或6件商品 | |
如果需求规定了一个有序集合的时候,可使用该集合的第一个和最后一个值进行测试 | 下拉列表有4个城市名可供选择 | 第一个和最后一个城市 | |
如果程序中使用一个内部数据结构的话,则应从该数据结构的边界进行考虑 | Int型
| 在int长度范围内 |
3、分析过程 (具体案例)
四、判定表 (电商类)
1、定义
判定表定义 | 分析和表述若干输入条件下,被测对象针对这些输入做出的响应一种工具 | ||
| 在遇到复杂业务逻辑时,可以利用该表理清业务逻辑关系 | ||
重要概念
| 条件 | 条件桩 | 需求规格说明书定义的被测对象的所有输入 |
| 条件项 | 针对条件桩所有可能的输入数据的真假值 | |
动作 | 动作桩 | 针对条件被测对象可能采取的所有操作 | |
| 动作项 | 针对动作桩被测对象响应的可能取值 | |
规则 |
| 动作项和条件项组合在一起,形成的业务逻辑处理规则 | |
判定表 应用步骤
| 1、理解需求,确定条件桩、动作桩 | ||
2、设计和优化判定表 | |||
3、填写动作项 | |||
4、根据判定表中输出结果的表现,进行判定表的合并(非必须) 合并(即简化判定表)条件:如果输出相同,在其对应输入中,有且只有一个条件的取值对动作不产生任何影响则可合并(合并存在一定风险) | |||
5、抽取测试用例 |
2、使用场景
条件 与 结果 之间的关系 考虑使用 判定表
3、分析过程 (具体案例)
案例一 :如果用户欠费或停机,则不允许主被叫
(1)、分析需求,得到 有效等价类 和无效等价类
(2)、根据 等价类 得到 判定表
** 其中 4 条用例 2^2得到(2个条件桩,每个条件桩2中状态)
(3)、根据判定表 编写测试用例
案例二 :订购单的检查
如果金额大于500元,又未过期,则发出批准单和提货单;
如果金额大于500元,但过期了,则不发批准单;
如果金额小于等于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
(1)、分析需求,得到 有效等价类 和无效等价类
金额是否大于500;是否过期;批准单是否发出
(2)、根据 等价类 得到 判定表
(3)、根据判定表 编写测试用例
五、 因果图
1、定义
输入与输入 关系 | 异 | 所有输入条件中最多有一个产生,也可以一个没有 |
或(or) | 所有输入条件中,最少有一个产生、或者多个、或者所有 | |
唯一 | 所有输入条件中,有且只有一个条件产生 | |
要求 | 所有输入条件,只要有一个产生,其他跟着也会出现 | |
输入与输出关系 | 恒等 | 当输入条件发生时,结果一定会出现 |
当输入条件不发生时,结果一定不会出现 | ||
非(not) | 当输入条件发生时,结果一定不会发生 | |
当输入条件不发生时,结果一定会出现 | ||
与(and) | 当多个输入条件中,只有所有输入条件都发生,结果才会出现 | |
或(or) | 当多个输入条件中,只要有一个发生,结果就会出现 |
2、使用场景
条件 与 条件 之间存在复杂关系 考虑使用因果分析
3、分析过程 (具体案例)
案例1:有一个修改文件的功能性需求:如果第一列是A或B,第二列数字,则修改文件;如果第一列不正确,则给出M,第二列不正确则给出L。
(1)、根据需求 分析出因果
(2)、画出因果节点图
(3)、根据 因果图 得到因果表
(4)、编写出 测试用例
六、 正交试验
1、定义
t因子c水平的正交表通过查表可得 (t因子,代表 ;c水平,代表)
名词 | 因子 | 所有参与试验的影响试验结果的条件称为因子 |
水平 | 影响试验因子的取值或输入称为水平 | |
特点 | 整齐可比 | 在同一张正交表中,每个因子每个水平出现的次数完全相同,试验中,每个因子的每个水平与其他因子的水平参与试验的机率完全相同 |
均匀分撒 | 同一张正交表中,任意两列的水平搭配是完全相同的 | |
设计流程 | 分析测试需求获取因子及水平 | |
根据因子水平选择合适的正交表 | ||
替换因子水平,获取试验次数 | ||
根据经验或其他因素补充试验次数 | ||
细化输出获得测试用例 | ||
注意 | 选择正交表时,因子与水平恰好与正交表相同 | |
被测对象因子与正交表中的因子数不同时,选择正交表中因子稍大于被测对象因子数,且试验次数最少的、多余的因子弃用 | ||
被测对象水平与正交表中的水平不同时,可根据实际情况进行合并,然后拆分 | ||
因子、水平都不相同时,则可选择因子、水平稍大于被测对象的,且试验次数最少的 |
缺点:没有办法考虑实际因子之间的关系问题。
2、使用场景
在复杂的 业务逻辑关系中,针对4 判定表方法,得出的测试用例 太多,可以考录使用正交法
3、分析过程 (具体案例)
案例一:采集用户的用户信息,用户名、联系电话、通讯地址
(1)、确定因子 和水平
因子:1、客户信息;2、联系电话、3、通信地址 (3因子)
水平:1、客户信息:a、输入;b、不输入 (2水平)
2、联系电话:a、输入;b、不输入 (2水平)
3、通讯地址:a、输入;b、不输入 (2水平)
(2)、得到正交试验图
** 搜索 “3因子2水平”,得到正交试验图 (数学知识)
(3)、编写测试用例
七、 状态迁移
1、定义
定义 | 关注被测对象的状态变化,在需求规格说明书中是否有不可达到的状态和非法的状态,是否产生非法的状态转移 |
状态 | 被测对象在特定输入条件下所保持的响应形式 |
方法流程 | 根据需求明确状态节点 |
绘制状态迁移图 | |
绘制状态迁移树 | |
抽取测试用例 |
2、使用场景
例如 商品选购,其中就有多种状态。(一个完整的流程中,要经过多种状态)
3、分析过程 (具体案例)
案例一:
(1)、分析案例中的状态,得到状态图节点图
(2)、根据 状态节点图 得到 状态流程图
(3)、得出一条条测试流程 (测试用例)
八、 流程分析
1、定义
场景设计-三个流程 | 基本流 | 通过业务流程输入都为正确的,能够最后达到目标的流程 | ATM取款:插入银行卡,输入密码,输入取款金额,取款,取卡 |
备选流 | 通过实现业务流程时,因错误操作或异常输入,导致流程存在反复,但最终能够完成期望业务的流程 | ATM取款:插入银行卡,输入密码(第一次输入错误,重新输入后完成剩余操作) | |
异常流 | 通过实现业务流程时,因错误操作或异常输入,导致业务没有正确完成 | ATM取款:插入银行卡,输入密码,错误3次,吞卡 | |
使用方法 | 理解需求,确定业务流程(基本流、备选流、异常流) | ||
绘制流程图,再次明确流程路径 | |||
根据业务流程图,抽取测试路径,每次路径需包含一个从未走过的路径 | |||
细化路径设计测试用例 | |||
注意点:需使用等价类、边界值、正交试验、判定表、因果图等方法保证单个功能的正确性 |
缺点:本身不校验单个功能节点的正确性,只关心流程能不能走通
2、使用场景
3、分析过程 (具体案例)
案例:
(1)、分析需求 画出流程图
(2)、根据 流程图 编写测试用例
转载于:https://www.cnblogs.com/hellosecretgarden/p/9332216.html
最后
以上就是有魅力河马为你收集整理的测试用例 (一) 一、测试用例格式二、用例设计方法 等价类三、边界值四、判定表 (电商类)五、 因果图六、 正交试验七、 状态迁移的全部内容,希望文章能够帮你解决测试用例 (一) 一、测试用例格式二、用例设计方法 等价类三、边界值四、判定表 (电商类)五、 因果图六、 正交试验七、 状态迁移所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复