|
|
51CTO旗下网站
|
|
移动端

1.16.2 控制依赖性

《软件测试基础教程》第1章软件测试的基本知识,本章作为一个导引,其目的在于让读者熟悉与软件测试相关的基本概念,建立起全书的框架。在本书后续章节中将要详细阐述的问题,首先在这里被提了出来。读完这章之后,读者就能够在软件测试和软件质量方面提出一些有意义的问题。本节为大家介绍控制依赖性。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-16 21:46

1.16.2 控制依赖性

另一种依赖性称作控制依赖。例如,程序P1.2中的语句12依赖于语句10的判断结果,因为根据语句10判断的输出结果,程序控制可能或不可能到达语句12。注意,语句9并不依赖于语句5的判断,因为无论语句5判断的结果怎样,程序控制都会到达语句9。

与数据依赖性一样,控制依赖性也可用控制依赖图(CDG)的形式表示出来。每一条程序语句对应CDG中唯一的一个结点;当结点n2控制依赖于n1时,存在一条从结点n2到n1的有向弧。控制依赖性的定义如下:

控制依赖性

假设C是包含结点n1和n2的CDG,n1是一个判断结点,如果下面两个条件之一成立,则称结点n2控制依赖于n1:

(a)至少存在一条从n1到程序出口的路径,该路径包含n2;

(b)至少存在一条从n1到程序出口的路径,该路径不包含n2。

例1.30图1-21表示了程序P1.3的CDG,图中用虚线表示控制依赖关系。如图所示,结点7、结点8、结点9控制依赖于结点6,因为存在从结点6到以上各结点的路径,同时也存在一条从结点6到程序出口而又不包含该结点的路径。注意,图中剩下的结点没有一个控制依赖于结点6(该例中唯一的一个判断结点);结点11并不控制依赖于结点6,因为任何从结点6到程序出口的路径都包含结点11。

既然现在已经了解了数据依赖性和控制依赖性,就可以将PDG表示成两种依赖性的组合。每一条程序语句对应于PDG中的一个结点,结点之间用有向弧相连,表示数据依赖和控制依赖。可以将PDG当作是两个子图的组合:数据依赖子图与控制依赖子图。

例1.31图1-22表示了程序P1.3的PDG,该图是通过合并图1-20和图1-21中的图形得到的(参见练习1.18)。

 
图1-21 程序P1.3的CDG
 
图1-22 程序P1.3的PDG
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

非常网管——网络服务

本书使用通俗易懂的语言,通过大量的实例,从实际应用的角度出发,全面系统地介绍了网络服务操作系统平台、电子邮件系统、Web站点和FTP站点...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊