在图 2-9 中,分别又 3 个圆代表软件说明的所有内容、程序的所有行为和所有的测试用例。由于 3 个圆的相互部分重叠,导致维恩图中出现了 7 个部分,分被标示在图中。这 7 个部分分别代码如下的含义。
数字 1 代表的部分:没有测试用例覆盖的在软件说明书中存在的程序行为。
数字 2 代表的部分:有测试用例覆盖,在软件说明说中也提到,但程序行为不可能出现。
数字 3 代表的部分:代码测试用例已经覆盖,在软件说明书也提到了并且实际程序也有这样的行为。实际上就是当前测试过的那部分软件功能。
数字 4 代表的部分:已经测试过的,但在软件说明书中没有提到的那部分软件行为。
数字 5 代表的部分:在软件说明中出现,但尚未测试过,而且程序不可能出现的行为。
数字 6 代表的部分:未被测试,而且软件说明书中也未明确的程序行为。
数字 7 代表的部分:这部分的测试用例即没有覆盖到程序行为,也没有以及软件说明书,基本属于无效测试用例。
从以上各部分可以很快明白,作为测试工程师,应该:
尽量减少无效的测试用例,以保证工作的有效性,即数字 7 的部分要尽量小。
区分不同优先级的测试用例,比如对于数字 5、数字 2 代表部分的测试,如果软件说明无法更改,可以将其优先级防止较低。
尽量提高已经测试过的数字 2 部分的面积,这标志着当前软件已经完成的测试覆盖率。
明白下一步测试的目标,重点就是数字 1 所代表的部分直到消失。
可见,利用维恩图,我们对当前的测试工作就会有一个总体的把握,因此在各种各样的工作讨论场合中很有用处。不论是具体的单元测试或者功能测试,还是整体的项目进展,维恩图都可以比较直观地总结现阶段没有完成的工作,并提示哪些地方时下一步的重点。