预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第24卷第5期计算机应用研究Vo.l24,No.5 2007年5月ApplicationResearchofComputersMay2007 程序切片技术在软件测试中的应用* 孙继荣1,2,李志蜀1,王莉1,殷锋1,3,金虎1 (1.四川大学计算机学院,四川成都610065;2.四川师范大学软件重点实验室,四川成都610068;3.西南民 族大学计算机科学与技术学院,四川成都610041) 摘要:基于程序切片的软件测试是一种以程序或程序和需求相结合为基础的测试,它根据程序的不同切片来 缩小软件的测试范围、提高软件测试的效率、辅助测试数据的自动生成等。同时由于程序切片不仅考虑了数据 依赖和控制依赖,还考虑了程序存在的其他各种依赖关系,使得测试的准确性得到提高。详细阐述了目前存在 的各种切片技术及其应用领域,重点探讨了目前切片技术在测试领域中的具体应用。 关键词:程序切片;软件测试;数据依赖;控制依赖;测试数据自动生成 中图分类号:TP311文献标志码:A文章编号:10013695(2007)05021004 OverviewofSoftwareTestingBasedonProgramSlice SUNJirong1,2,LIZhishu1,WANGLi1,YINFeng1,3,JINHu1 (1.SchoolofComputer,SichuanUniversity,ChengduSichuan610065,China;2.KeyLaboratoryofSoftware,SichuanNormalUniversity, ChengduSichuan610068,China;3.CollegeofComputerScience&Technology,SouthwestUniversityforNationalities,ChengduSichuan 610041,China) Abstract:Authordiscusseddifferentslicingmethodsandthereapplicationstosoftwareengineering,elaboratelytosoftware testing.Softwaretestingbasedonslicingcanreducetherangeofsoftwareundertesting,miprovethetestingefficiency,and giveaconvenienthandtotheprocessofautomatictestdatageneration,etc.Atthesametmie,thistechniquecanenhancethe testingaccuracyandsufficiency. Keywords:programslice;softwaretesting;datadependency;controldependency;automatictestdatageneration 程序切片是一种程序分析和理解技术。它通过把程序减程内的切片。 少到只包含与某个特定计算相关的那些语句来分析程序。其定义1设s是程序流图CFG中的任一节点,定义: 概念最早是1979年由MarkWeiser[1]提出来的。他观察到程(1)定义集Def(s)={x/x是语句s中值被改变了的变 序员在调试过程中脑海中就有关于程序的某种抽象,人们在调量}; 试一个程序时总是从错误语句s开始,并沿着依赖关系跟踪到(2)引用集Ref(s)={x/x是语句s中引用的变量}。 它影响的程序部分。程序切片的发展基本成熟,在理论和应用定义2数据依赖:如果节点n、m满足以下两个条件,则 方面的研究均取得了可喜的进展,特别是在程序的调试、测试、称n数据依赖于m: 分解和集成、软件维护、代码理解以及逆向工程等领域具有广(1)如果存在一个变量v满足vdef(m)ref(n); 泛的应用。本文将侧重介绍程序切片技术在软件测试领域的(2)G上存在一条由节点m到n的路径p,对于路径上的 应用。其他节点m!p-{m,n},vdef(m!)。 定义3控制依赖:如果节点n、m满足如下条件,则称n 1程序切片简介 控制依赖于m: Weiser认为一个切片与人们在调试一个程序时所做的智(1)G上存在一条由节点m到节点n的路径p,对于路径 力抽象相对应。他定义的程序P的切片S是一个可执行的程上的其他节点m!p-{m,n},n是m!的后必经点; 序,对某个兴趣点s处的变量v而言(s,v称为切片准则),S(2)n不是m的后必经点。 由程序P中可能影响s处变量v的值的所有语句构成。这个程序切片不仅与兴趣点定义和使用的变量有关,还与影响 可执行部分相