第1章软件测试的基本知识讲解.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.14 控制流图 1.4.1 基本块 假设P是一个用过程式程序设计语言写的程序,P的基本块,就是一个连续的语句序列,只有一个入口点和一个出口点。 ?一个基本块具有唯一的入口点和出口点。 ?除了出口点外,程序不可能在基本块的其他任意点退出或中止。 ?当基本块只包含一条语句时,入口点与出口点重合。 例 1.23 下面的程序输入两个整数x和y,输出 程序P1.2 1 begin 2 int x,y,power; 3 float z; 4 input (x,y) 5 if (y0) 6 power=-y; 7 else 8 power=y; 9 z=1; 10 while (power!=0) { 11 z=z*x; 12 power=power-1; 13 } 14 if (y0) 15 z=1/z; 16 output(z); 17 end 基本块 行号 入口点 出口点 1 2,3,4,5 1 5 2 6 6 6 3 8 8 8 4 9 9 9 5 10 10 10 6 11,12 11 12 7 14 14 14 8 15 15 15 9 16 16 16 下表为程序P1.2中的所有基本块。 1.14.2 流图的定义与图形表示 例1.24 程序P1.2的流图定义如下: N={Start,1,2,3,4,5,6,7,8,9,End} E={(Start,1),(1,2),(1,3),(2,4),(3,4),(4,5),(5,6),(6,5),(5,7),(7,8),(7,9),(9,End)} 图a显示基本块中语句 图b省去基本块中的语句 图1-16 程序P1.2的控制流图 1.14.3 路径 考虑流图G=(N,E)。对于图1-16而言,边序列((1,3),(3,4),(4,5))就是一条路径,但((1,3),(3,5),(6,8))不是一条有效的路径。为简洁起见,将路径表示成一个基本块序列。例如,基本块序列(1,3,4,5)等同与边序列((1,3),(3,4),(4,5))。 如果存在一条从n到m的路径,则称m是n的后继,n是m的前驱。 如果n≠m,则n是m的真前驱,m是n的真后继。 如果存在(n,m) E,则称m是n的直接后继,n是m的直接前驱。 结点n的直接后继集合和直接前驱集合分别表示为succ(n),pred(n)。 结点Start没有前驱,End没有后继。 1.15 决定者与后决定者 对于N中的结点n,m,如果n存在于每一条从Start到m的路径中,则称n决定m,记为dom(n,m)。类似的,如果n存在于每一条从m到End的路径中,则称n后决定m,记为pdom(n,m)。 对任意n,m N,若n是某条从Start到m路径上m的最后一个“决定者”,则称n是m的直接“决定者”,记为idom(n,m)。 对任意n,m N,若n是某条从m到End路径上m的第一个“后决定者”,则称n是m的直接“后决定者”,记为ipdom(n,m)。 例1.27 程序P1.3 1 begin 2 int num, product, power; 3 bool done; 4 product=1; 5 input(done); 6 while (!done) { 7 input(num); 8 product=product*num; 9 input(done); 10 } 11 output(product); 12 end Start int num,product,power; bool done; product=1; input(done); while(!done) input(num); product=product*num; input(done); output(product) End 1 2 false true 3 4 图1-18 程序P1.3的控制流图 序号1~4代表程序P1.3中的4个基本块。 1.16 程序依赖图 程序P的程序依赖图(PDG)表现了程序P中各语句之间的不同依赖关系。为了进行测试,考虑数据依赖性和控制依赖性。这两种依赖性都是针对程序中的数据和断言而定义。 1.16.1 数据依赖性 假设D是包含结点n1和n2的DDG,如果下面两个条件同时成立,则称结点n2数据依赖于n1: (1) 变量v在n1处定义,在n2处引用; (2) 存在一条从n1到n2的非空路径,不包含任何重定义v的结点。 4 8 11 7 5 6 9 图1-20 程序P1.3的DDG 1.16.

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档