网站大量收购独家精品文档,联系QQ:2885784924

程序分析技术.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
--程序分析技术 软件测试方法和技术 由安博测试空间技术中心/提供 软件测试方法和技术 董瑞志 /~nature_dong Email: hello_u@ MSN: nature_dong@ 联系电话内容提要 程序分析的视角 文本视角 句法视角 功能视角 计算流视角 程序分析技术 故障插入 变体分析 数据流分析 控制流分析 程序切片 程序插装 文本视角 从文本的视角来看,一个程序被看作是字符或记号的序列。 文本视角提供的信息是物理的、基本的。它一般不对文本内容的语法和语义进行分析,而只对文本本身的基本内容进行分析。例如,分析文本的规模、行数、词汇数、词汇频度等内容。 文本视角是其他视角分析的基础。 句法视角 一个程序可以被看成一个分层结构,它可以被分解到子程序, 再被分解到语句组,然后被分解到语句等等, 直到符号层。在这个分解中,每个最基本的元素以及元素间的组合关系是由程序语言的语法决定的。这种视角被称为句法视角。 功能视角 程序可以被看成是一个功能集,功能被认为是对一个有序对(x,y)集合的指示。其中y是由程序在输入x处阻塞而产生的输出。用输入x执行程序和观察它的输出(如果有的话)是一种分析技术,该技术提供了程序在给定输入上的直接证据。 计算流视角 一个程序可以被看成一个有限 计算集 的表示。一个计算是当程序执行特定输入时产生的数据状态的轨迹。通过一次执行来促使一个程序的计算流被完整分析,可以服务于估计在代码中遗留缺陷的数量、测试数据捕捉缺陷的能力和程序隐藏缺陷的可能性。 变体分析 变体分析 ( 变异分析 ) 使用故障插入来分析测试数据的属性。带有插入错误的程序称为一个变体或变异。 变体分析在程序测试中的应用是相当广泛的,并且是一个相当重要的技术,可以用于验证测试的充分性。 To be continue…… 变体分析 故障插入是一个统计的方法, 用于评价遗留在一个程序中的故障数量和种类。 首先, 故障被插入到一个程序中, 然后, 程序被测试 , 并且发现故障的数量可用来估计还没有被发现故障的数量。 主要目的是为了评价系统的哪些模块、哪些代码是危险模块、危险代码, 容易出问题, 从而评价系统的容错能力。 控制流分析 程序流程图: 程序流程图是一种程序控制结构的图形表示方式。在程序流程图上的处理框内常常标明了处理要求或条件。 To be continue…… 控制流分析 控制流图: 为了更加突出控制流的结构,需要对程序流程图做些简化,这种简化了的流程图称为控制流图,即流图。 To be continue…… 控制流分析 控制流图中的符号: ①节点:以标有编号的圆圈表示,代表程序流程图中矩形框所表示的处理、菱形表示的分支及多选择结构点。 ②控制流线:以带箭头的直线或弧表示,与程序流程图中的数据流线是一致的,表明了控制的顺序。控制流线通常标有名字,如图中所标的a、b、c等。 To be continue…… 控制流分析 为便于表示和处理控制流图,可以把控制流图表示成矩阵的形式,称为控制流图矩阵。 控制流矩阵:nxn, n为控制流图中节点数量。 To be continue…… 控制流分析 控制流图矩阵 数据流分析 数据流分析最初是随着编译系统要生成有效的目标码而出现的,这类方法主要用于代码优化。 数据流分析方法在确认系统中也得到成功的运用,用以查找如引用未定义变量等程序错误,以及用来查找对未曾使用的变量再次赋值等数据流异常的情况。 数据流分析重要性 在程序测试中,找出这些错误是很重要的。因为这常常是常见程序错误的表现形式,如错拼名字、名字混淆或是丢失了语句。 数据流分析的两个概念 变量定义:如果程序中某一语句执行时能够改变某个变量V的值,则称V是被该语句定义的。 变量引用:如果程序中某一语句的执行引用了内存中变量V的值,则说该语句引用变量V。 数据流分析案例 例如: 1.语句 X:=Y十Z 定义了X,引用了Y和Z; 2.语句 if Y>Z then goto exit 引用了Y和Z。 3. 输入语句 READ X 定义了X。 4. 输出语句 WRITE X 引用了X。 To be continue…… 数据流分析案例 每个语句定义和引用的变量的列表。 To be continue…… 数据流分析 程序中有两个错误: 语句2使用了变量W,而在此之前并末对其定义。 语句5、6使用变量V,这在第一次执行循环时也未对其定义过。 程序中还包含两个异常: 语句6对Z的定义从未使用过。 语句8对W的定义也从未使用过。 程序切片 对于给定的一个程序行为的子集 , 通过切片技术把程序减小到一个最小化形式 , 并且 仍旧能产

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档