如何快速消除测试用例的冗余、压缩用例规模?
发布时间:2021-01-12

前段时间,一个小伙伴抱怨说,在做测试时,自己设计的测试用例总是会有大量冗余,不知道如何压缩测试用例规模。今天,我们就来回答一下这个问题,并为大家好好捋一捋,究竟该怎么做才能帮助我们解决问题。


1、原理和思想


首先,我们先来说说为啥会有大量的冗余产生。


理论上,由于我们在等价类测试中,引入独立性假设,导致当实际的被测对象,在输入条件之间存在相互关联时,等价划分强行忽略这种关联性,这就使得我们设计出的测试用例存在较为严重的冗余。这也是为啥理论没毛病但工作量却增大了的原因。


接下来,我们说说如何解决这个难题。


我们都知道,基于决策表的测试,其基本思想就是通过对决策表进行用例简化,从而消除测试用例的冗余,缩减测试用例规模,同时又保持了等价类测试的效果。简言之,就是说,测试的完备性和无冗余性,可以通过决策表得到比较完美的体现。


那么,我们应该如何合理利用决策表呢?别急,请往下看~


2、测试用例设计


(1)决策表的结构


典型的决策表结构,主要可以分为4个部分:



● 输入区:决策表的左上角为输入区,包含被测对象所有的输入条件;

● 输出区:决策表的左下角为输出区,包含所有分解细化后的预期输出结果;

● 输入取值区:决策表的右上角为输入取值区,覆盖了每个输入条件所有可能的有效取值情况;

● 输出取值区:决策表的右下角为输出取值区,覆盖所有预期输出结果的取值情况。


(2)关于决策表的一些结论


正如我们所知道的那样,基于决策表的测试,实质是针对个体输入域的有效等价类测试的扩充,所以,我们可以得出以下一些结论:


● 从理论上而言,只要有效等价类划分不存在漏洞,则基于决策表的测试可以保证有效输入域上完备的测试。因为,在输入取值区中,所列出的所有取值并非具体的数据,而是每个输入条件的有效等价类,它实际上相当于是在有效输入域上,强组合方式的等价类测试。

● 事实上,针对无效等价类的测试一般不存在冗余,不需要考虑冗余的消除。因为,在决策表里,针对输入条件我们仅需要考虑有效等价类,不考虑无效等价类。

● 决策表的输出取值区并不涉及输出域的等价划分。


(3)如何化简决策表?


对于等价类测试由输入条件间的约束关系,导致测试的冗余。而决策表则可以通过化简来识别输入条件间的各种关系,从而降低测试用例的规模。


那么,对于测试用例进行化简的前提条件,主要包括哪些呢?我认为主要包括:


● 输出相同:欲化简的多个测试用例的预期输出结果,应完全相同;

● 输入相似:欲化简的多个测试用例的输入应相似,仅有一个输入条件取值(即对应的等价类)可以不相同,其他输入条件的取值(即对应的等价类)应完全相同。


通过化简的办法,我们可以给决策表中的测试用例做化简。若剩余测试用例仍然满足化简的条件,则可继续化简,直到无法化简为止。


(4)设计测试用例


那么,我们应该如何设计测试用例呢?基于决策表的测试用例设计,一般分5步:


● 分析输入域,并对个体输入域进行有效等价类划分;

● 分析输出域,并对预期输出结果进行细化;

● 建立完整的决策表;

● 对决策表进行不断地化简,直至无法继续化简;

● 根据最终的决策表设计测试用例。


总之,基于决策表的测试质量,取决于对输入域等价划分的准确性和对输出域的细化程度,通常需要多次迭代才能完成。这就要求我们对于输入域等价划分的准确性,以及对输出域的细化程度有比较好的把控。


写在最后


决策表是一种较为复杂的黑盒测试方法,其目标是在特定条件下,消除等价类测试的冗余。决策表遵循独立性假设。基本思想是基于强组合等价类测试得到有效域上完整的测试用例集合,并通过合并化简消除用例间的冗余。


在做基于决策表的测试时,我们需注意的点有以下几个:


(1)当从整体输入域拆分个体输入域时,若输入条件之间不存在相关性,则不需要使用决策表的测试方法,因为等价类测试生成的测试用例之间本身就不存在冗余;


(2)基于决策表的测试不处理无效等价类,它不需要遵循单缺陷假设;


(3)基于决策表的测试仅针对输入域展开分析,但需要从设计的角度对输出域进行细化,这样得到的测试用例才更加准确,但这并不涉及代码的编写。


更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/