
从档念橡前面学过的覆盖测试一节中可知,对于一个较为复杂的程序要做到完全的路径覆盖测试是不可能实现的。既然路径覆盖测试无法达到,那么可以对某个程序的所有独立路径进行测试,也就是说检验了程序的每一条语句,从而达到语句覆盖,这种测试方法就是独立路径测试方法。从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。路径可以用控制流图中的节点序列来表示。 例如,在如图4-3所示的控制流图中,一组独立的路径是
path1:1 - 11
path2:1 - 2 - 3 - 4 - 5 - 10 - 1 - 11
path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 - 11
path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11 路径 path1,path2,path3,path4组成了控制流图的一个基高橡本路径集
环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测度数量的上界。环形复杂度的计算方法
* 可以用下列任何迅并一种方法计算环形复杂度
1、流图中的区域数等于环形复杂度
2、流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
3、流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
环行复杂度的用途
* 程序的环形复杂度取决于程序控制流的复杂亩告迹程度,也即是取决于程序结构的复杂程度。当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。
* 实践表明,模块规模以V(G)≤10为宜,也就是说,友明V(G)≤10是模块规模的一个更科学更精确的上限。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)