本文粗略地介绍几种测试用例设计方法
主要的设计方法
测试用例主要设计方法的策略选择
设计方法 | 使用场景 |
---|---|
因果图法 | 程序的功能说明中含有输入条件和输出条件的组合情况 |
逻辑表法 | 通常因果图映射成逻辑表后再转换为测试用例,使用场景同上 |
场景法 | 用于测试程序的业务逻辑、业务流程、主要功能的正确性,以及错误处理能力 |
等价类划分法 | 用于需要输入一定数据范围的地方,将无限测试变成有限测试 |
边界值法 | 与等价类划分法配合使用,边界值往往能快速暴露缺陷 |
正交排列法 | 多个控件需要参数配置类的软件,要考虑各个参数之间的组合情况 |
测试大纲法 | 程序的模块涉及多个窗口,并有相关联的操作 |
因果图法
设计基本步骤
- 找出所有的输入条件;
- 明确所有的输出结果;
- 明确所有条件之间的制约关系以及组合关系;
a) 哪些条件不能组合在一起
b) 哪些条件可以组合在一起 - 明确所有输出之间的制约关系以及组合关系;
a) 哪些输出结果不能组合在一起(不能同时输出)
b) 哪些输出结果可以组合在一起(可以同时输出) - 找出什么样的输入条件组合会产生哪种输出结果
- 根据因果图、写出判定表;
- 根据判定表设计测试用例;
小结:
- 因果图法主要考虑控件之间条件的组合关系
- 每个控件的条件不宜过多,最好为2个,比如单选按钮选择与不选择
- 如果控件较多,或者每个控件的条件较多,组合量会很大,不宜使用因果图法
链接: 因果图法.
判定表法
设计基本步骤参考因果图法。
判定表的组成
- 条件桩:问题的所有条件
- 动作桩:问题的所有输出
- 条件项:针对条件桩的取值(即各种条件的组合)
- 动作项:条件项的各种取值情况下的输出结果(即各种结果的组合)
小结:
- 规格说明以判定表的形式给出,或很容易转换成判定表
- 条件的排列顺序不影响执行哪些操作
- 规则的排列顺序不影响执行哪些操作
- 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则
- 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要
链接: 判定表法设计测试用例.
场景法
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。当拿到一个测试任务时,我们并不是先关注某个控件的边界值、等价类是否满足要求,而是先要关注它的主要功能。其思想是梳理出基本流与备选流
基本流:按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)
备选流:导致程序出现错误的操作流程(模拟错误的流程)
设计基本步骤
- 根据说明,描述出程序的基本流及各项备选流
- 根据基本流和各项备选流生成不同的场景
- 对每一个场景生成相应的测试用例
链接: 软件测试之场景法.
测试大纲法
一个程序或程序某个模块中,涉及到多个窗口,每个窗口中能够完成多个动作,这些窗口又相互联系,为了弄清窗口和窗口之间的关系,或者动作和动作之间的关系,可以使用测试大纲方法
设计基本步骤
- 找出所有的窗口以及每个窗口的输入动作(重点在先后顺序)
- 找到各个窗口之间的联系,并据此写出测试用例
链接: 测试大纲法.
正交排列法
正交排列法的思想:能够使用最小的测试过程集合获得最大的测试覆盖率。适用于当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。
设计基本步骤
- 把控件及其取值列举出来,并对取值进行编号
- 根据所测程序中控件的个数以及每个控件的取值个数,选取一个合适的正交排列表
- 把控件及其取值映射到正交排列表中
- 把正交表里的每一行写成一条测试用例
正交表的特点
- 每列中不同的属性取值出现的次数相等
- 在任意两列中,将同一行的两个数字组成一个有序实数对,则每种有序实数对出现的次数相等
- 局限性:要求每个控件中取值的个数要相等
正交表的种类
- 各列水平数均相同的正交表
- 混合水平正交表
链接: 测试用例设计之正交法.