基于关键分支的不可行路径确定方法.pdfVIP

基于关键分支的不可行路径确定方法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第36卷第5期 北京工业大学学报 V01.36No.5 OF UNIVERSITYOFTECHNOLOGY Mav2010 2010年5月 JOURNALBElJING 基于关键分支的不可行路径确定方法 潘丽丽1,邹北骥2,王天锷3,陈浩2 (1.中南林业科技大学计算机信息与工程学院,长沙410004;2.中南大学信息科学与工程学院,长沙410081; 3.湖南省送变电建设公司调试所,长沙410017) 摘要:不可行路径增加程序复杂度和冗余度,产生无效DU链,影响程序分析工具的分析结果.有效地确定不 可行路径,可以优化路径测试,完善数据流分析、程序切片等程序静态分析工具.在深入分析不可行路径的基础 上,提出一种基于关键分支的不可行路径确定方法.该方法利用程序的值依赖关系和控制依赖关系、确定关键 分支,通过关键分支查找不可行路径.结果表明,基于关键分支的不可行路径确定方法花费较少的信息存储,有 效地节省不可行路径的确定时间. 关键词:不可行路径;关键分支;值依赖;控制依赖 中图分类号:TP311 文献标志码:A 文章编号:0254—0037(2010)05—0716—05 静态分析是分析程序结构的一种重要思想,静态分析的方法很多,如数据流分析方法、程序静态切片 方法和软件测试中的路径测试…等,这些方法都是在软件执行前进行的捧1.通过静态方法分析程序,软件 人员可以获得许多重要的信息,但静态分析的前提是假设程序中的所有路径都是可执行的¨1,事实1-.,这 种假设并不一定和程序的实际运行情况相符,程序中的不可行路径会产生没有价值的DU链怛1;从代码优 化角度,不可行路径会导致存储空间的浪费,如果占用高速缓冲空问则会降低程序的运行速度. 文献[3-4]阐述了不可行路径对程序结构、路径测试、测试用例的生成所产生的影响.文献[1]提出 一种需求驱动的方法查找不可行路径,该方法对某个判断谓词发出查询,然后再进行谓词逻辑的判断.这 种方法要求查询与谓词引用变量相关的所有节点,事实上,某些节点虽然与该变量相关,但与谓词逻辑的 联系不大甚至没有联系,因此,针对这些节点的查询将导致整个分析过程的冗余度增加;同时,由于测试人 员需要对程序本身进行分析,如果被分析程序的版本不一致可能会导致产生错误的分析结果.文献[5]利 用抽象解释方法分析不可行路径,其实质是沿着某条路径跟踪变量的值,分析谓词间的逻辑关系,这种方 法的思想和需求驱动方法的思想实际是相同的.文献[6]分析了由于指针所导致的不可行路径,并提出了 一种针对动态指针结构的测试数据生成方法,利用生成的数据可以找到程序中由指针所导致的不可行路径. 本文利用程序数据流分析中的控制依赖及数据依赖,结合SSI(staticsingle 于关键分支的不可行路径确定方法.实验表明,该方法能快速地确定不可行路径,且信息存储较少. 1不可行路径 E 控制流图是一个有限有向图,表示为G=N,E,其中,Ⅳ表示节点集,n表示节点,nN,代表程序 收稿日期:2009.12.10. 。 次人才项目(104-0091). 作者简介:潘丽丽(1977一),女,湖南株洲人,讲师. 第5期 潘丽丽.等:基于关键分支的不可行路径确定方法 717 (entry节点除外)和直接后继节点集(exit节点除 外).值依赖边e;:菇一,,,是指语句茗为变量赋值,且 语句Y使用了该赋值的变量,并且从并到Y中间该变 量没有被再赋值.控制依赖边e,:石.+,,,是指语句Y的 执行取决于条件语句菇的值. 为理解不可行路径,先分析2个程序段.图1(a) 中:厅I-.-+/7,2一K一‰是不可行路径;图1(b)中:nt— n,--,.it,一n,是不可行路径.但图1(a)和图1(b)产生 不可行路径的原因是不同的:前者是因为P,的真分 支可以推断P:的布尔值;后者是由于n。处变量移的 (a)程序片段A

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档