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

1.15 决定者与后决定者

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

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

1.15 决定者与后决定者

假设G=(N,E)是程序P的CFG。记住,G有两个特殊的结点,标记为Start和End。定义“决定者”(dominator)和“后决定者”(postdominator)为N上的两个关系,它们在测试中能发挥作用,特别是在构造测试充分性评价工具(参见第6章)和回归测试工具(参见第5章)的时候。

对于N中的结点n,m,如果n存在于每一条从Start到m的路径中,则称n决定m,记为dom(n,m)。类似地,如果n存在于每一条从m到End的路径中,则称n后决定m,记为pdom(n,m)。当n≠m时,称这些关系为严格的“决定者”和“后决定者”关系,dom(n)和pdom(n)分别表示结点n的“决定者”和“后决定者”。

对任意n,m∈N,若n是某条从Start到m路径上m的最后一个“决定者”,则称n是m的直接“决定者”,记为idom(n,m)。除Start之外的每一个结点,都有唯一一个直接“决定者”。由于用它们来构造“决定者”树,直接“决定者”很有用。从G中导出的“决定者”树,简明地表示了“决定者”关系。

对任意n,m∈N,若n是某条从m到End路径上m的第一个“后决定者”,则称n是m的直接“后决定者”,记为ipdom(n,m)。除End之外的每一个结点,都有唯一一个直接“后决定者”。利用直接“后决定者”,可以构造“后决定者”树,以便显示G中结点之间的“后决定者”关系。

例1.28考虑图1-18中的流图。该流图包含6个结点,包括Start和End,其“决定者”树、“后决定者”树分别如图1-19a、b所示。比如,在“决定者”树中,用一条有向边连接一个直接“决定者”和由它决定的结点。这样,在这些关系中,有

  1. idom(1,2)  
  2. idom(4,End) 
同样,从“后决定者”树中,可得
  1. ipdom(4,2)  
  2. ipdom(End,4) 
给定“决定者”和“后决定者”树之后,很容易导出每一个的“决定者”集和“后决定者”集。比如,结点4的“决定者”集表示为
  1. dom(4)  
  2. dom(4)={2,1,Start} 
dom(4)是这样导出的:首先获得结点4的直接“决定者”2,然后是结点2的直接“决定者”1,最后是结点1的直接“决定者”Start。同样,我们可以导出结点2的“后决定者”集{4,End}。
 
(点击查看大图)图1-19
【责任编辑:云霞 TEL:(010)68476606】

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

读 书 +更多

J2EE开发全程实录

J2EE是目前企业级软件开发的首选平台。本书从架构的角度讲解了一个完整的J2EE系统的搭建。内容包括:正则表达式、JSP、Swing、XML等技术在...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊