首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 406 毫秒
1.
一种基于逆向程序流的程序切片算法*   总被引:1,自引:0,他引:1  
传统的程序切片方法一般基于程序依赖图(PDG)和系统依赖图(SDG)的可达性算法,但是在建立PDG和SDG的过程中会计算一些与切片无关的数据依赖,造成时空资源的浪费及切片效率的降低。提出了一种基于程序逆向流的切片算法,它事先建立逆向程序流,再从切片点开始沿逆向程序流扫描程序以获得程序切片,只计算与切片相关的数据依赖,从而提高了切片计算的时空效率。通过实验发现该算法具有一定的可行性和实用性。本算法适用于包括Fortran、C等编程语言在内的命令式程序的切片生成。  相似文献   

2.
程序切片技术在软件测试中的应用*   总被引:5,自引:1,他引:4  
基于程序切片的软件测试是一种以程序或程序和需求相结合为基础的测试,它根据程序的不同切片来缩小软件的测试范围、提高软件测试的效率、辅助测试数据的自动生成等.同时由于程序切片不仅考虑了数据依赖和控制依赖,还考虑了程序存在的其他各种依赖关系,使得测试的准确性得到提高.详细阐述了目前存在的各种切片技术及其应用领域,重点探讨了目前切片技术在测试领域中的具体应用.  相似文献   

3.
基于谓词切片的字符串测试数据自动生成   总被引:3,自引:0,他引:3  
字符串谓词使用相当普遍,如何实现字符串测试数据的自动生成是一个有待解决的问题,针对字符串谓词,讨论了路径Path上给定谓词的谓词切片的动态生成算法,以及基于谓词切片的字符串测试数据自动生成方法,并给出了字符串间距离的定义,利用程序DUC(Definithon-Use-Control)表达式,构造谓词的谓词切片,对任意的输入,通过执行谓词切片,获取谓词中变量的当前值,进而对谓词中变量的每一字符进行分支函数极小化,动态生成给定字符串谓词边界的ON-OFF测试点,实验表明,该方法是行之有效的。  相似文献   

4.
程序切片技术是辅助程序理解的一种重要手段,其核心思想是分而治之。借鉴程序切片核心思想,引入了类切片的概念,并给出了基于进程边界的类切片生成方法,并对该方法进行了系统的实验研究。  相似文献   

5.
Gupta方法的改进   总被引:2,自引:0,他引:2  
单锦辉  王戟  齐治昌  吴建平 《计算机学报》2002,25(12):1378-1386
Gupta等提出一种线性化谓词函数的方法(简称Gupta方法),为指定程序路径自动生成测试数据。该文给出了一种模型语言,研究静态,动态数据依赖关系的性质以及Gupta方法中各概念的形式化定义,将Gupta等提出的谓词出推广为路径静态切片,证明了路径静态切片构造算法的正确性,对Gupta方法的改进,省略了构造谓词片和输入依赖集的过程,改进后的方法构造线性约束的效率更高,以改进后的方法为核心算法,开发了面向路径的测试数据自动生成的原型工具,并用实际的程序路径对该工具进行实际,结果表明改进后的方法是比较有效的。  相似文献   

6.
介绍了一种基于程序行为切片的测试用例生成系统的实现方案,系统在不扫描全部程序路径的情况下,生成可以覆盖全部程序行为的测试用例集。系统分为静态分析、动态符号执行以及测试用例生成3个模块。在静态分析模块中根据输入的程序代码分析程序的控制流和信息流,提取程序的控制依赖和数据依赖,并计算程序的潜在依赖;动态符号执行模块求解约束条件、生成测试用例和分析代码执行过程;测试用例生成模块根据执行路径和依赖关系计算被路径覆盖的程序行为切片和未被覆盖的程序行为切片,然后根据未被覆盖的程序行为切片,引导符号执行生成能覆盖新的程序行为切片的测试用例。实验证明,本系统生成的测试用例集可以保证覆盖所有的程序行为,同时能显著减少生成的测试用例数量。  相似文献   

7.
程序切片是一种程序分析技术,它主要应用在程序的调试和逆向工程。文中介绍了笔者设计并实现的一个C++程序切片系统。其中包括系统的总体框架,系统中使用的数据结构以及切片生成算法。本系统已经成功应用到了X型导弹指挥软件的故障诊断中。  相似文献   

8.
程序切片是一种重要的程序分析技术,广泛应用于程序的调试、测试与维护等领域。面向方面程序设计作为一种新的软件开发范型,能够实现横切关注点的模块化,其特有的语言元素和功能为切片增加了难度。从静态切片和动态切片两种类型,讨论了面向方面程序切片技术。在此基础上,提出了一种基于简化动态依赖图的面向方面程序切片方法,可以减少动态依赖图中节点和边的数量,生成准确的面向方面程序的动态切片,从而有助于人们更好地对面向方面程序进行分析和理解。  相似文献   

9.
程序切片是一种程序分析技术,它通过把程序减少到只包含与某个特定计算相关的那些语句来分析程序,过程间切片作为图形可达性问题时,需要扩展过程内切片所用的程序依赖图(PDG)成系统依赖图(SDG),然后利用两阶段图形可达性算法计算比较精确的切片,目前程序切片技术的研究以面向对象程序切片为主,文中讨论了一种合适面向对象程序的分层切片方法,并综合分层切片方法和两阶段图形可达性算法提出了一种简化的计算面向对象程序过程间切片的算法。  相似文献   

10.
并发程序切片是并发程序分析的一种重要手段。针对多线程共享变量通信机制,在通过程序分析工具CodeSurfer获取程序基本信息的基础上构造程序可达图,生成以程序状态和语句二元组为节点的并发程序依赖图,实现了基于程序可达图的并发程序切片原型系统。初步实验结果表明,与传统的切片方法相比,采用基于程序可达图的并发程序切片方法,可有效地解决依赖关系不可传递问题,获得高精度的并发程序切片。  相似文献   

11.
传统程序切片技术在计算BPEL程序切片时会产生切片不完备问题,为此,提出一种基于程序依赖图的BPEL静态程序切片技术。该技术根据BPEL语言的特点,通过建立BPEL程序依赖图,计算BPEL程序切片。案例分析表明,该技术能够获得更加全面的程序切片,从而可以帮助软件工程人员更好地测试、调试和维护BPEL程序。  相似文献   

12.
一种基于数据流分析的程序定义域自动确定方法   总被引:3,自引:1,他引:2  
程序定义域的确定有利于指导测试用例的选取,虽然程序规范规定了输入变量的定义域,但程序实现本身也定义了其定义域,如果二者不能完全重合,那么某些软件故障就可诊断出来,文中提出玫种基于数据流分析的程序定义域自动确定方法,通过对原程序进行数据流分析和相关性分析,求取输入变量的定义域,采用程序抽取的程序定义域自动确定方法,通过对源程序进行数据流分析和相关性分析,求取输入变量的定义域,采用程序抽取技术,将与输入变量无关的语句和函数剔除,简化了源程序,提高了分析效率,采用动态模拟技术,实现了特殊情形下输入变量定义域的确定,实验证明,该方法是行之有效的。  相似文献   

13.
Slicing Software for Model Construction   总被引:8,自引:0,他引:8  
Applying finite-state verification techniques (e.g., model checking) to software requires that program source code be translated to a finite-state transition system that safely models program behavior. Automatically checking such a transition system for a correctness property is typically very costly, thus it is necessary to reduce the size of the transition system as much as possible. In fact, it is often the case that much of a program's source code is irrelevant for verifying a given correctness property.In this paper, we apply program slicing techniques to remove automatically such irrelevant code and thus reduce the size of the corresponding transition system models. We give a simple extension of the classical slicing definition, and prove its safety with respect to model checking of linear temporal logic (LTL) formulae. We discuss how this slicing strategy fits into a general methodology for deriving effective software models using abstraction-based program specialization.  相似文献   

14.
周婕  慕晓冬  王杰 《微机发展》2006,16(7):20-22
程序切片是一种程序分析技术,它主要应用在程序的调试和逆向工程。文中介绍了笔者设计并实现的一个C 程序切片系统。其中包括系统的总体框架,系统中使用的数据结构以及切片生成算法。本系统已经成功应用到了X型导弹指挥软件的故障诊断中。  相似文献   

15.
程序切片是一种传统的程序分析方法:通过去掉无关代码,获取可能影响某行代码的子集。程序切片在程序理解、软件测试和程序调试等众多领域有着广泛的应用。随着互联网技术的发展,JavaScript语言得到广泛应用,但针对该语言的切片工具非常有限。本文针对JavaScript语言的特殊性,提出一种基于程序依赖图的JavaScript程序切片算法,并基于WALA程序分析框架实现了该切片算法。试验结果表明,本文的切片算法可以得到较为理想的切片结果。试验中切片平均大小约为原程序代码的70%,较手工切片仅有约19%冗余。  相似文献   

16.
一种基于规范和程序域分析的软件测试方法   总被引:3,自引:0,他引:3  
虽然软件规范规定了输入变量的定义域(功能域),但程序实现本身也定义了其定义域(运行域).如果二者不能完全重合,那么某些软件故障就可检测出来.为此,提出了一种基于规范和程序域分析的软件测试方法,介绍了一个运行域自动确定系统ADSOD,并讨论了边界测试数据的选取原则.对特殊表达式,采用程序切片技术,构造基于表达式的可执行模块,通过执行该模块,识别其输入变量的奇异值,进而确定其输入变量的取值范围.通过分析功能域和运行域的边界测试数据集,检测二者的重合性,并根据其分析结果产生测试用例.实验表明:所提方法产生的测试用例,可以有效地提高测试效率.  相似文献   

17.
多线程并发程序的广泛使用引发了更多的数据竞争问题,竞争检测对于提高软件质量具有重要意义。将竞争静态检测和静态切片分析结合起来,提出了一种基于类的Java数据竞争静态检测算法,该算法利用函数调用层次获得函数调用链,对类域进行分析,找出可能数据竞争,通过静态切片缩小程序分析范围,并结合数据竞争的必要条件,去掉不可能数据竞争。实例表明,该算法可用于指导修复程序中的竞争缺陷。  相似文献   

18.
一种分析和理解程序的方法--程序切片   总被引:21,自引:0,他引:21  
程序切片是一种分析和理解程序的技术,是通过对源程序中每个兴趣点分别计算切片来达到对程序的分析和理解。程序中某个兴趣点的程序切片不仅与该点定义和使用变量有关,而且与影响该变量的值的语名和谓词以及受该变量的值影响的语名的谓词有关。文中详细阐述了程序切片技术的研究与进展情况,并对目前存在各种程序切片方法和工具进行了比较;简单介绍了文中提出的面向对象的分层切片方法及其算法的思想;最后分析了程序切片技术目前  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号