测试用例的常用方法
1 等价类划分法
2 边界值法
3 因果图及判定表法
4 正交表
5 测试大纲法
6 场景法
7 错误推断法
8 随机测试
9 需求文档转化法
1、等价类划分法
应用场合:界面中只要有数据输入的地方,就可以使用等价类划分法。从无穷多的数据中,挑选少量代表数据进行测试。
1)分析需求,划分等价类:有效等价类和无效等价类
2)从每个等价类中,至少挑选1个代表数据进行测试
如:姓名3-20个字符
有效数据:大于等于3个字符,小于等于20个字符
无效数据:小于3个字符
大于20个字符
2、 边界值法
应用场合:界面中有数据输入的地方,一般可以使用,边界值法往往和等价类划分法一起使用,形成一套更为完善的测试方案。
找到有效数据和无效数据之间的分界点(边界值)
测试:最小边界值-1,最小边界值,最大边界值+1,最大边界值
如:姓名3-20个字符
有效数据:大于等于3个字符,小于等于20个字符
无效数据:小于3个字符
大于20个字符
最小边界值:3个字符
最大边界值:4个字符
最小边界值-1:2个字符
最大边界值+1:5个字符
3、因果图及判定表法
应用场合:在一个界面中有多个控件,如果控件之间有组合关系或者限制关系,不同的控件组合会产生不同的输出结果。为了弄清不同的输入组合会产生怎样的输出结果,可以使用因果图或判定表法。
1)基本 : 表达的是因(输入结果)和果(输出结果)之间的关系。
A 恒等
如果a=0那么b=0;如果a=1那么b=1
B 与(^)
几个输入条件都成立结果才成立,如果输入其中任何一个输入条件不成立,结果都不成立。
C 或(v)
多个输入条件有任何1个成立结果都成立,只有所有的输入条件都不成立的时候,结果才不成立。
D 非
A=1时B=0;A=0时B=1
2)约束(限制): 限制的是同一类的,要么限制的同为输入条件,要么限制的同为输出结果
A 互斥E(Exclude)
只能有1个是成立(1),但是可以都不选(都是0)
B 唯一O(Only)
表示在多个条件中,有且仅有1个成立。
C 要求R(Required)
若a=1则要求b必须为1,不允许出现a=1,b=0的情况,反之a=0时b的值无所谓。
D 包含 I ( include ) [多选]
必须得选,但是可以多选
E 屏蔽 M ( Masked )
当a=1时b必须是0;当a=0时b的值不一定。
4、正交表
适用场合:在一个界面中有多个控件,每个控件有多个取值,测试时考虑不同的控件不同取值之间的多种组合,但组合数量巨大(>20种,20种以下一般考虑判定表因果图),没有必要全部测试,如何从所有的组合中挑选最少、最优的组合进行测试,可以使用正交排列法。
正交表公式:Ln(mk)
m:根据每个控件有几个值确定
K:根据控件的个数进行确定。
n:表示有几条测试用例。
如果没有合适的正交表:
1)选择K(控件的个数),如果没有正好符合的值,选择最接近的在一点的,用不到的列可以删掉。
2)选择m(每个控件的取值),如果每个控件的取值个数不同
方案1、少数服从多数原则:取值数相同的控件个数最多的那个值。
分析案例:取3个值的控件有两个是最多的,所以m=3;
公式是:34
注意:1)尽量保证公平、均匀的添加。
2)检查是滞有完全重复的等式,如果发现可以修改或删除(尽量改)
方案2、最大值原则(推荐):看哪个控件的取值个数最多,m就选这个值。
此案例:打印内容的控件取值是4个,是最多的,所以m=4
公式是:应该是44,实际上44没有,选择45,然后删除1列正交表的测试思想:
1)使用每个控件的每个取值参与组合的次数是基本相等的(均匀的)
2)在所有的组合数据中,选取数据时,应该均匀的选取,而不能从局部选取。
3)如果时间允许,尽可能的多测一些组合
5、测试大纲法
适用场合:程序包含多个窗口,每个窗口中又有多个功能,这些功能之间又有一定的联系。为了梳理清楚窗口之间以及窗口不同功能之间的联系,使用测试大纲法。
如:安装程序的测试
1) 分析需求列出窗口以及每个窗口中的功能
2) 根据大纲,找到窗口及功能之间的关系,编写测试用例
6、场景法
适用场合:大多数的业务比较复杂的软件系统都适合使用场景法(便于将各个功能点串起来,便于形成完整的业务感觉)是一种基于软件业务的测试方法,把自己当成最终用户,尽可能的模拟用户在使用此软件的操作。
熟悉所测软件的业务逻辑:
1)模拟用户正确操作的业务流程---验证软件的业务功能是否实现
2)模拟用户错误的操作的情形---验证软件的异常处理能力(健壮性)
总结:先关注功能的整体业务流程是否能够实现(场景法),当整体业务流程完成之后,再去关注细节(等价类、边界值等方法)。
注意一个场景可能对应多条测试用例,或者一条用例可能对应多个场景。
7、错误推断法
基于经验和直觉推测程序中所有可能存在的各种错误 , 从而有针对性的设 计测试用例的方法 .
1)程序中所有可能的错误
2) 容易发生错误的特殊情况
3) 以前产品测试中曾经发现的错误
8、随机测试
随意测试,不考虑任何用例和需求,完全站在一个用户或者的角度对产品进行使用。
适用场景:
1) 所有之前设定的用例已经 执行完毕
2)海量的条件组合无法一遍 历的时候
9、需求文档转化法
所见即得的思想:
1. 所有的需求文档描述字 所有的需求文档描述字 信息,转化为用例
2. 所有的示意图、流程状 所有的示意图、流程状 态图等信息,直接转化为测 态图等信息,直接转化为测 试用例
3. 所有项目需求达成的口头共 所有项目需求达成的口头共 识,需求确认的邮件沟通信 识,需求确认的邮件沟通信息,直接转化为测试用例