四、 程序基本路径
现在我们知道了起码要写4个测试用例,但是怎么设计这4个测试用例?导出程序基本路径,根据程序基本路径设计测试用例子。
程序基本路径:基本独立路径就是从程序的开始结点到结束可以选择任何的路径遍历,但是每条路径至少应该包含一条已定义路径不曾用到的边。(看起来不好理解,让我们看例子)。
让我们看上面的流程图:从结点4到24有几条路径呢?很明显:
A 13->35
B 13->15->17->35
C 13->15->23->29->33->13->35
D 13->15->23->25->33->13->35
还有吗??
E 13->15->23->29->33->13->15->17->35算吗?
不算,为什么?因为上面的4条路径已经包括了所有的边。第5条路径已经不包含没有用过的边了。所有的路径都遍历过了。
好了,现在我们有了4条基本独立路径根据独立路径我们可以设计测试用例。
A 13->35
输入数据: flag=0,或者是flag<0的某一个值。
预期结果: temp=0.
B 13->15->17->35
输入数据: count =1; flag=0
预期结果: temp=101.
C 13->15->23->29->33->13->35
输入数据: count =1;flag=1
预期结果: temp=10.
D 13->15->23->25->33->13->35
输入数据: count =1; flag=2
预期结果: temp=20.
上面的测试用例还可以简化吗?当然可以
来看 路径 A 13->35和 C 13->15->23->29->33->13->35,路径1是路径4的真子集,所以1是可以不必要的。上图的圈复杂度是4。这个结果对我们来说有什么意义呢?它表示我们只要最多4个测试用例就可以达到基本路径覆盖。所以说圈复杂度标示是最多的测试用例个数,不是一定要4个测试用例才可以。不过有一点要申明的是测试用例越简化代表你的测试越少,这样程序的安全性就越低了。
接下来的任务就是根据我们的测试用例来使用测试工具进行测试了。