常见的用例设计方法
等价类划分法(适用于输入项少,输入项的属性或者特性相同)
边界值分析法(适用于有范围约束的情况)
判定表法(适用于有明显的条件及其对应的动作的情况)
因果图法
状态迁移图法(适用于状态随事件而改变的情况)
场景分析法(适合于由事件触发而形成的使用场景,同一事件不同的触发逻辑形成不同的场景,从而形成不同的业务流程(路径),根据覆盖不同的路径来设计测试用例)
正交实验法(适用于多条件或多输入情况)
异常分析法(适用于大多数软件,从经验上判断容易出现错误或缺陷的地方设计用例)
错误猜测法
等价类划分法
是把所有可能的输入数据,即程序的输入域划分成若干部分子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
有效等价类:有效等价类是程序规格说明有意义,合法的输入数据
无效等价类:无效等价类是程序规格说明无意义,不合法的输入数据。
等价类法设计测试用例的步骤:
1、为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号
2、设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重 复这一步骤,使得有效等价类均被测试用例所覆盖
3、设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖
等价类划分的原则
1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.
4、在规定了输入数据的一组值假定n个,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.
5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类符合规则和若干个无效等价类从不同角度违反规则.
6、在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.
等价类表可以参考下图所示:
等价类划分法用例设计实战:
根据下面给出的规格说明,进行测试用例的设计。
一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。程序输出:说明这个三角形是普通的、是等腰的、还是等边的。
等价类划分如下:
3条边分别为A,B,C。满足:A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B;
等腰需满足A=B,或B=C,或A=C ;
等边需满足A=B,且B=C,且A=C ;
最终输出的场景如下:
边界值分析法
边值分析方法的理论基础,是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。
边界值分析使用条件
输入条件明确了一个值的取值范围,或是规定了值的个数
边值点的定义
上点:边界上的点,不区分开闭区间。
离点:就是离上点最近的一个点,如果域的边界是封闭的,离点就在域范围外,如果域的边界是开放的,离点就在域范围内
内点:顾名思义,就是在域范围内的任意一个点
可通过下面这张图更形象的理解:
再举个案例:
正整数值域[66,88]:
上点就是66,88,并且都是在域内。内点就是域内得任意点,离点是65,89。
正整数值域(66,88]
这种情况上点是66,88,其中一个是域内,一个是域外,内点就是域内的任意点,离点是:67,89。
正整数值域(66,88)
这样的情况上点还是66,88,只是都是在域外,内点还是域内的任意点,离点此时为:67,87。
边界值分析的原则
1、如果输入(输出)条件规定了取值范围,或是规定了值的个数,则应该以该范围的边界内及边界附近的值作为测试用例
2、如果输入(输出)条件规定了值的个数的取值范围,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据
3、如果程序规格说明中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例
4、如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例
边界值分析方法是对等价类划分方法的补充。长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
小伙伴看到这,是不是觉得这样写用例写起来很麻烦呢?每次还要画很多的图表之类的,画图表只是一个分析的过程,等熟练之后,在实际工作中,可以根据自己的实际情况忽略某些步骤,只要在最终的测试点中能将这些测试点都考虑进去就行。详细的编写过程只是在初级测试找工作的时候,可能会在笔试题中考到,对相关的概念有个简单的了解就行。
网友评论