测试用例设计方法
黑盒测试的测试用例设计方法有:等价类划分、边界值划分、因果图分析和错误猜测等。
一、等价类划分
1.1等价类划分方法介绍
等价列划分设计方法是把所有可能的输入数据划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例,测试某等价类的代表值就等于对这一类其他值的测试。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
1.2划分等价类的标准:
1)完备测试、避免冗余;
2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
3)并是整个集合:完备性;
4)子集互不相交:保证一种形式的无冗余性;
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。
1.3划分等价类举例
等价类划分有两种不同的情况:有效等价类代表对程序的有效输入和无效等价类代表不正确的输入值,设计时要同时考虑这两种等价类。下面是确定等价类的原则:
(1)在输入条件规定了取值范围的情况下,则可以确立一个有效等价类(在
取值范围之内)和两个无效等价类(小于取值范围和大于取值范围)。
例如:使用手机发送短信的时候,短信内容长度必须在70个字符之内,
则有效等价类:短信内容长度在70个字符之内,无效等价类:短信内容
长度为0、短信内容长度大于70。
(2)在输入条件规定了取值的个数的情况下,则可以确立一个有效等价类
(在取值个数范围之内)和两个无效等价类(小于取值个数和大于取值
个数)。
例如:一名学生一个学期可以选修一至五门课程,则有效等价类为:1<=学生选修课程<=5,无效等价类为:没有选修课程、选修课程大于5
(3)在输入条件规定了输入值的集合的情况下,则可以确立一个有效等价
类和一个无效等价类。比如:发送短信的编码的取值范围是0、3、4、8、
15或16,则有效等价类是:短信编码为0或3或4或8或15或16,无
效等价类是:短信编码不是0或3或4或8或15或16其中任何一种。
(4)在输入条件规定了“必须如何”的条件的情况下,则可以确立一个有
效等价类和一个无效等价类。
例如:变量的命名比如以大写字母开头,则有效等价类为:变量命名以大写字母开头,无效等价类为:变量开头非大写字母开头。
(5)在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个
无效等价类。
例如:在神州行手机号码预扣费成功的情况下,允许该用户发送短信,则有效等价类为:神州行预扣费成功,无效等价类为神州行预扣费失败。
(6)在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价
类(符合规则)和若干个无效等价类(从不同角度违反规则)。
(7)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,
则应再将该等价类进一步的划分为更小的等价类。
二、边界值分析法
边界条件指的是输入和输入等价类中刚好处于边界、或超过边界或小于边界的状态,使用边界值分析方法设计测试用例应先确定边界情况,然后选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
基于边界值分析方法选择测试用例的原则:
(1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界值设计
有效测试用例,以及刚刚超过这个范围的边界值作设计无效测试用例。比如:短信内容的有效长度为70个汉字以内,则有效测试用例:短信内容长度为1,短信内容长度为70个汉字,无效测试用例:短信内容长度为0,短信内容长度为71个汉字。
(2) 如果输入条件规定了值的数量,则应取最大个数、最小个数、比最小
个数少一、比最大个数多一的数作为测试输入的数据。例如:短信的有效编码为1~255,则应取0、1、255、256设计边界值测试用例。
(3)如果程序的输入或输出是一个有序集合,则应选取集合的第一个元素
和最后一个元素设计测试用例。
(4)如果程序中使用了一个内部数据结构,应当选择这个内部数据结构边
界上的值设计测试用例。
三、因果图法
因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的测试用例设计方法。
利用因果图生成测试用例的步骤为:
(1)将规范说明书分解成可执行的片段。
(2)确定规格说明书中的因果关系。分析软件规格说明描述中那些是原因,那些是结果,并给每个原因和结果赋予一个标识符。
(3)分析软件规格说明描述的语义,找出原因和结果之间、原因和原因之间的关系,并将其转换成因果图。
(4)在因果图上加上注解符号,用一些记号表明约束或限制条件。
(5)跟踪图中的状态变化情况,把因果图转换为判定表。
(6)把判定表的每一列拿出来作为依据,设计测试用例。
四、错误推测法
错误推测法就是根据经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。
错误推测法的基本思路是列举出程序中所有可能有的错误和容易发生错误的清单,根据清单设计测试用例;另一个思路就是在阅读规格说明时有哪些容易被程序员忽略的内容来设计测试用例。
错误推测法是一种非常有效的测试用例设计方法,这要求测试人员有丰富的测试经验和对业务的处理非常熟悉。比如,在短信发送的时候,如果发送短信之后,对方网关没有响应或者超时响应或者没有回复状态报告,那程序怎样处理呢?