黑盒测试的测试用例设计方法有:等价类划分、边界值划分、因果图分析和错误猜测,
白盒测试的测试用例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。
在这里,主要讨论的是黑盒测试的测试用例的设计方法。
一、等价类划分
等价列划分设计方法是把所有可能的输入数据划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例,测试某等价类的代表值就等于对这一类其他值的测试。
使用等价类划分方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。
1、划分等价类
等价类划分有两种不同的情况:有效等价类代表对程序的有效输入和无效等价类代表不正确的输入值,设计时要同时考虑这两种等价类。下面是确定等价类的原则:
(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) 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类。
(7) 在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
(8) 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
2、生成测试用例
在确立了等价类后,可建立等价类表,列出所有划分出的等价类,过程为:
(1) 为每一个等价类规定一个唯一的编号。
(2) 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
(3) 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
二、边界值分析法
边界条件指的是输入和输入等价类中刚好处于边界、或超过边界或小于边界的状态,使用边界值分析方法设计测试用例应先确定边界情况,然后选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
基于边界值分析方法选择测试用例的原则:
(1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界值设计有效测试用例,以及刚刚超过这个范围的边界值作设计无效测试用例。比如:短信内容的有效长度为70个汉字以内,则有效测试用例:短信内容长度为1,短信内容长度为70个汉字,无效测试用例:短信内容长度为0,短信内容长度为71个汉字。
(2) 如果输入条件规定了值的数量,则应取最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试输入的数据。例如:短信的有效编码为1~255,则应取0、1、255、256设计边界值测试用例。
(3) 根据规格说明的每个输出条件,使用前面的原则1。
(4) 根据规格说明的每个输出条件,使用前面的原则2。
(5) 如果程序的输入或输出是一个有序集合,则应选取集合的第一个元素和最后一个元素设计测试用例。
(6) 如果程序中使用了一个内部数据结构,应当选择这个内部数据结构边界上的值设计测试用例。
(7) 分析规格说明书,找出其他可能的边界条件。
三、因果图法
因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的测试用例设计方法。
利用因果图生成测试用例的步骤为:
(1) 将规范说明书分解成可执行的片段。
(2) 确定规格说明书中的因果关系。分析软件规格说明描述中那些是原因,那些是结果,并给每个原因和结果赋予一个标识符。
(3) 分析软件规格说明描述的语义,找出原因和结果之间、原因和原因之间的关系,并将其转换成因果图。
(4) 在因果图上加上注解符号,用一些记号表明约束或限制条件。
(5) 跟踪图中的状态变化情况,把因果图转换为判定表。
(6) 把判定表的每一列拿出来作为依据,设计测试用例。
四、错误推测法
错误推测法就是根据经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。
错误推测法的基本思路是列举出程序中所有可能有的错误和容易发生错误的清单,根据清单设计测试用例;另一个思路就是在阅读规格说明时有哪些容易被程序员忽略的内容来设计测试用例。
错误推测法是一种非常有效的测试用例设计方法,这要求测试人员有丰富的测试经验和对业务的处理非常熟悉。比如,在短信发送的时候,如果发送短信之后,对方网关没有响应或者超时响应或者没有回复状态报告,那程序怎样处理呢?