|
知识路径: > 测试技术的分类 > 白盒测试技术 > 白盒测试方法 > 基本路径测试法 >
|
被考次数:9次
被考频率:中频率
总体答错率:31%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
考试要求:掌握
相关知识点:3个
|
|
|
|
基本路径测试法适用于模块的详细设计及源程序,其主要步骤如下:
|
|
|
. 以详细设计或源代码作为基础,导出程序的控制流图;
|
|
|
|
|
. 生成测试用例,确保基本路径集中每条路径的执行。
|
|
|
下面以一个求平均值的过程averagy为例,说明测试用例的设计过程。用PDL语言描述的averagy过程如下所示。
|
|
|
|
|
|
利用在如下图一所示的控制流图的图形符号、如下图二所示的程序流图和对应的控制流图和如下图三所示的复合逻辑下的控制流图给出的符号和构造规则生成控制流图。对于上述过程,对将要映射为对应控制流图中一个结点的PDL语句或语句组,加上用数字表示的标号。加了标号的PDL程序及对应的控制流图如下图四和如下图五所示。
|
|
|
|
|
|
|
|
|
|
|
|
利用在前面给出的计算控制流图环路复杂性的方法,算出控制流图G的环路复杂性。如果一开始就知道判断结点的个数,甚至不必画出整个控制流图,就可以计算出该图的环路复杂性的值。对于如下图所示的控制流图,可以算出:
|
|
|
|
|
V(G)=6(区域数)=5(判断结点数)+1=6。
|
|
|
|
针对如上图所示的averagy过程的控制流图计算出的环路复杂性的值,就是该图已有的线性无关基本路径集中路径数目。该图所有的6条路径如下所示。
|
|
|
|
|
|
|
[path5]1—2—3—4—5—6—8—9—2…
|
|
|
[path6]1—2—3—4—5—6—7—8—9—2…
|
|
|
路径4、5、6后面的省略号(…)表示在控制结构中以后剩下的路径是可选择的。在很多情况下,标识判断结点,常常能够有效地帮助导出测试用例。在上例中,结点2、3、5、6和10都是判断结点。
|
|
|
(4)生成测试用例,确保基本路径集中每条路径的执行
|
|
|
根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到。满足上述基本路径集的测试用例如下所示。
|
|
|
[path1]输入数据:value[k]=有效输入,限于k
|
|
|
|
|
注意:不能孤立地进行测试,应当作为路径4、5、6测试的一部分来测试。
|
|
|
[path2]输入数据:value[1]=-999;
|
|
|
|
[path3]输入数据:试图处理101个或更多的值,而前100个应当是有效的值;
|
|
|
|
[path4]输入数据:value[i]=有效输入,且i<100;
|
|
|
|
|
[path5]输入数据:value[i]=有效输入,且i<100;
|
|
|
|
|
[path6]输入数据:value[i]=有效输入,且i<100
|
|
|
|
每个测试用例执行之后,与预期结果进行比较。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至少被执行了一次。但是必须注意的是,一些独立的路径(如此例中的路径1),往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。
|
|
|