软件测试用例
• 指导测试的实施.
• 规划测试数据的准备
• 评估测试结果的度量基准
• 持续优化的保证
软件测试用例设计和写作
• 软件测试用例设计是从设计层面考虑,比如从功能性/可用性/安全性等方面考虑设计测试用例
• 软件测试用例写作是指软件测试用例的写作规范,包括写作格式、标识的命名规范等等
• 软件测试用例设计得出软件测试用例的内容,然后,按照软件测试写作方法,落实到文档中,两者是形式和内容的关系
软件测试用例格式

常用黑盒测试用例设计方法
• 等价类划分法
• 边值分析法
• 判定表法
• 状态迁移图法
• 流程分析法
• 正交试验法
• 输入域测试法
• 输出域覆盖法
• 异常分析法
• 错误猜测法
等价类划分法
等价类:某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不太可能发现错误
• 有效等价类:有效等价类是程序规格说明有意义,合理的输入数据
• 无效等价类:有效等价类是程序规格说明无意义,不合理的输入数据
等价类划分法
等价类划分原则:
• 如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类
• 输入条件规定了输入值的集合,或是规定了必须如何的条件,则可以确定一个有效等价类和一个无效等价类
•在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
•如果我们确知,已经划分的等价类中各个元素在程序中的处理方式不同的,则应该将此等价类进一步划分
等价类法设计测试用例的步骤
• 为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号
• 设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使得有效等价类均被测试用例所覆盖
• 设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖
边界值分析法
边界值分析方法的理论基础,是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附件的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小
边值分析使用条件
• 输入条件明确了一个值的取值范围,或是规定了值的个数
• 输入条件明确了一个有序集合
边值点定义
• 上点:边界上的点,如果域的边界是封闭的,上点就在域范围内;如果域的边界是开放的,上点就在域范围外
• 离点:就是离上点最近的一个点,如果域的边界是封闭的,离点就在域范围外,如果域的边界是开放的,离点就在域范围内
• 内点:顾名思义,就是在域范围内的任意一个点

边界值分析的原则
• 如果输入(输出)条件规定了取值范围,或是规定了值的个数,则应该以该范围的边界内及边界附近的值作为测试用例
• 如果输入(输出)条件规定了字符长度,则用最大长度,最小长度,比最小长度少一,比最大长度多一的数作为测试数据
• 如果程序规格说明中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例
• 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例
边值分析法
边值分析法设计用例的步骤
• 分析输入参数的类型:从测试规格中分析得到输入参数类型
• 等价类划分(可选):对于输入等价类划分方法进行等价类的划分
• 确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点)
• 相关性分析(可选):如果存在多个输入域,则需要运用因果图、判定表方法对这些输入域边界值的组合情况进行进一步分析
• 形成测试项:选择这些上点、离点与内点或者这些点的组合形成测试项
边界值划分表

边界值用例示例

判定表法
判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确
• 条件桩(Condition Stub)
• 动作桩(Action Stub)
• 条件项(Condition Entry)
• 动作项(Action Entry)

判定表

判定表法设计用例的步骤
• 确定规则的个数。如这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则
• 列出所有的条件桩和动作桩
• 填入条件项
• 填入动作桩和动作顶
• 化简,合并相似规则
• 将每条规则转化为用例
判定表的合并
化简工作是以合并相似规则为目标的。如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,我们便可以将其合并

判定表的优缺点
优点
它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏
缺点
合并存在漏测的风险。一个显然易见的原因是,虽然某个输入条件在输出接口上是无关的,但是在软件设计上,内部针对这个条件走了不同的程序分支
状态迁移图法
• 许多需求用状态机的方式来描述,状态机的测试主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法的状态转移等
• 通过构造能导致状态迁移的事件来测试状态之间的转换
• 用这种方法可以设计逆向的测试用例,如状态和事件的非法组合
状态迁移图法设计用例步骤
• 画出状态迁移图
• 画出状态转化树
• 从状态转换树推导出测试路径
• 根据测试路径编写合法测试用例
• 编写非法测试用例
流程分析法
流程分析法是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。根据流程的顺序依次进行组合,使得流程的各个分支都能走到。这是从白盒测试中路径覆盖分析法中推广到黑盒测试中来的测试分析方法。
流程分析法设计用例步骤
• 画出业务流程图
• 设置功能路径优先级
• 确定测试路径
• 选取测试数据
• 构造测试用例
正交试验法
网友评论