测试从零开始-No.6-测试用例设计方法(等价类+边界值)「建议收藏」

2022-09-27 10:08:25 浏览数 (1)

常见的用例设计方法

  • 等价类划分法(适用于输入项少,输入项的属性或者特性相同)
  • 边界值分析法(适用于有范围约束的情况)
  • 判定表法(适用于有明显的条件及其对应的动作的情况)
  • 因果图法
  • 状态迁移图法(适用于状态随事件而改变的情况)
  • 场景分析法(适合于由事件触发而形成的使用场景,同一事件不同的触发逻辑形成不同的场景,从而形成不同的业务流程(路径),根据覆盖不同的路径来设计测试用例)
  • 正交实验法(适用于多条件或多输入情况)
  • 异常分析法(适用于大多数软件,从经验上判断容易出现错误或缺陷的地方设计用例)
  • 错误猜测法

等价类划分法

是把所有可能的输入数据,即程序的输入域划分成若干部分子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。

  • 有效等价类:有效等价类是程序规格说明有意义,合法的输入数据
  • 无效等价类:无效等价类是程序规格说明无意义,不合法的输入数据。

等价类法设计测试用例的步骤:

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、如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例

边界值分析方法是对等价类划分方法的补充。长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

小伙伴看到这,是不是觉得这样写用例写起来很麻烦呢?每次还要画很多的图表之类的,画图表只是一个分析的过程,等熟练之后,在实际工作中,可以根据自己的实际情况忽略某些步骤,只要在最终的测试点中能将这些测试点都考虑进去就行。详细的编写过程只是在初级测试找工作的时候,可能会在笔试题中考到,对相关的概念有个简单的了解就行。

关注公众号【小博测试成长之路】,下期带你了解其他的用例设计方法,后续会以项目实战的方式带大家熟悉。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183018.html原文链接:https://javaforall.cn

uml

0 人点赞