测试用例设计方法
等价类覆盖法(最重要)
等价类理论
等价类
- 某个输入域的集合,在这个集合中每个条件都是等效的,如果其中一个输入不能导致问题发生,那么集合中的其他输入条件进行测试也不会出现问题
有效等价类
- 有效等价类时程序规格说明有意义,合理的输入数据
无效等价类
- 无效等价类时程序规格说明没有意义,不合理的输入数据
设计测试用例的时候要同时考虑到这两种等价类,因为软件不仅要能接收合理的数据,也要能接收不合理的数据,这样的测试才有更高的可靠性
划分等价类原则
- 如果输入条件规定了取值范围或者值得格式,则可以确定一个有效等价类和两个无效等价类
- 输入条件规定了输入值得集合,或者是规定了必须如何得条件,则可以确定一个有效等价类和两个无效等价类
- 在输入条件时一个boolean得情况下,可确定一个有效等价类和一个无效等价类
- 在规定了输入数据得一组值假定n个,并且程序要对每一个输入值分别处理得情况下,可确定n个有效等价类和一个无效等价类
- 在规定了输入数据必须遵守得规则得情况下,可确定一个有效等价类和n个无效等价类(从不同得角度违反规则)
有效等价类&&无效等价类 == O
有效等价类 ||无效等价类 == U
等价类得设计用例步骤
- 为每个输入项划分等价类,得到等价类表,为每个等价类规定唯一编号
- 进行等价类覆盖
- 设计一个测试用例,使它尽可能多得覆盖所有尚未覆盖得有效等价类,重复这一步骤,使得所有得有效等价类均被测试用例所覆盖
- 设计一个测试用例,使其覆盖一个无效等价类,重复这一步骤使得所有无效等价类均被覆盖
设计之前先进性分析
举例
用户登录
边界值分析法
- 边界值分析法是一种补充等价划分得测试,用例设计技术,他不是选择等价类得任意元素,而是选择等价类边界得测试用例
- 实践证明,在设计测试用例时,对边界附近得处理必给予足够得重视,为检测边界附近得处理专门设计测试用例,往往会取得良好得测试效果
- 边界值分析法不仅重视输入条件边界,而且也从输出域导出测试用例
边界值使用条件
- 输入条件明确一个值得取值范围,或者规定了值得个数
- 输入条件明确了一个有序集合
边界值分析得原则
- 输入输出条件规定了取值范围,或者规定了值得个数,则应该以该范围得边界内及边界附近的值作为测试用例
- 如数输出条件规定了值得个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一得数作为测试用例
- 如果程序规格说明中提到得输入或者输出是一个有序得集合,应该注意选取有序集合得第一个和最后一个元素作为测试数据
- 程序中使用了一个内部数据结构,则应当选择这个内部数据结构得边界值上得值作为测试用例
边值点定义
上点
- 域得边界是封闭得,上点就在域范围内
- 域得边界不是封闭得,上点就在域范围外
离点
- 域的边界是封闭的,离点就在域范围外
- 域得边界不是封闭得,上点就在域范围内
内点
- 就是在范围内得一个点
边界分析法设计用例的步骤
- 分析输入参数的类型
- 等价类划分
- 确定边界
- 根据等价类来组合测试用例
判定表法(决策表)
-
判定表是分析和表达多种输入条件下系统执行不同的动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达的具体又明确
-
条件桩
-
动作桩
-
条件项
-
动作项
-
条件桩 条件项 动作桩 动作项 规则
判定表法设计用例步骤
- 列出所有的条件桩和动作桩
- 确定规则的个数,是条件取值个数的乘
- 填入规则项
- 填入动作桩和动作项
- 化简,合并相似规则
- 将每条规则转化为用例
举例
话费
因果图法
因果图关系
- 恒等:若c是1,则e也是1;否则e为0
- 非:若c是1,则e是0;否则e是1。
- 或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入
- 与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入
约束
- 输入状态相互之间还可能存在某些依赖关系,称为约束
因果图法设计测试用例步骤
- 分析待测得系统规格,找出原因与结果
- 画出因果图
- 标记约束或限制条件
- 把因果图转换为判定表
- 用判定表中的每一项生成测试用例
正交实验法
- 利用正交表来对试验进行设计,通过少数的试验替代全面试验
- 根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验
- 这些有代表性的点具备了“均匀分散,整齐可比”的特点
正交实验法设计测试用例步骤
- 有哪些因素
- 每个因素有那几个水平
- 选择一个合适的正交表
- 把变量的值映射到表中
- 把每一行的各因素水平的组合作为一个测试用例
- 加上可疑且没有在表中出现的组合
- 去除没有意义的组合
场景法(流程法)
- 现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景
- 同一事件不同的触发顺序和处理结果形成事件流
- 在软件设计方面的思想也可被引入到软件测试中,生动的描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时测试用例也更容易得到理解和执行
场景说明
基本流
- 是流经用例的最重要路径,图中的黑线
备选流
- 自基本流开始,之后会在某特定条件下执行
- 可能重新加入基本流(备选流1和3)
- 可能起源于另一个备选流(备选流2)
- 终止用例不再重新加入某个流(备选流2,4)
场景法基本设计步骤
- 画出业务流程图
- 定义状态节点和条件分支
- 确定测试路径
- 选取测试数据,构成测试用例
举例
覆盖所有的分支