白盒测试之基本路径测试法[6] 软件测试
5)路径5的测试用例:
score[i]=有效分数, 当i<50;
score[k]>100, k< i ;
期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。
6)路径6(1-2-3-4-5-6-7-8-2…)的测试用例:
score[i]=有效分数, 当i<50;
期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。
注意事项:
必须注意,一些独立的路径,往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。
方法工具:图形矩阵
o 导出控制流图和决定基本测试路径的过程均需要机械化,为了开发辅助基本路径测试的软件工具,称为图形矩阵(graph matrix)的数据结构很有用。
利用图形矩阵可以实现自动地确定一个基本路径集。一个图形矩阵是一个方阵,其行/列数控制流图中的结点数,每行和每列依次对应到一个被标识的结点,矩阵元素对应到结点间的连接(即边)。在图中,控制流图的每一个结点都用数字加以标识,每一条边都用字母加以标识。如果在控制流图中第i个结点到第j个结点有一个名为x的边相连接,则在对应的图形矩阵中第i行/第j列有一个非空的元素x。
对每个矩阵项加入连接权值(link weight),图矩阵就可以用于在测试中评估程序的控制结构,连接权值为控制流提供了另外的信息。最简单情况下,连接权值是 1(存在连接)或0(不存在连接),但是,连接权值可以赋予更有趣的属性:
执行连接(边)的概率。
穿越连接的处理时间。
穿越连接时所需的内存。
穿越连接时所需的资源。
根据上面的方法对例4画出图形矩阵如下:
连接权为“1”表示存在一个连接,在图中如果一行有两个或更多的元素“1”,则这行所代表的结点一定是一个判定结点,通过连接矩阵中有两个以上(包括两个)元素为“1”的个数,就可以得到确定该图圈复杂度的另一种算法。