• 欢迎来到论文发表网(www.lunwenchina.cn),我们为您提供专业的论文发表咨询和论文发表辅导!
受“清朗”行动影响,原网站QQ被封,新老作者请联系通过新的QQ:189308598。或者电话微信:15295038855

你的位置:论文发表网 >> 论文库 >> 工学论文 >> 详细内容 在线投稿

程序切片技术在软件测试中的应用

热度0票  浏览205次 时间:2014年9月17日 08:51

程序切片技术在软件测试中的应用
文/张锋

摘要:程序切片是一种应用在软件测试中的分析和理解技术,该技
术通过对程序中的不同切片进行识别,达到缩小软件测试范围的
目的,从而有效的提高测试效率。同时,程序切片技术应用在程序
存在的基础上,两者具有依赖关系,能够提高测试的准确性。本
文介绍了程序切片的分类,阐述了在软件测试中的作用。


【关键词】程序切片 软件测试 数据信息 系统

在软件的生存期内,软件测试是一个重要的阶段,通过测试,能够保证软件的运行质
量。在测试工作中,存在一个问题,即大规模测试之后,如果修改了其中的某一个软件,就
会影响到整个程序的运行。这种情况下,就必须对程序重新进行一次测试。程序切片技术的
应用,刚好解决了这一问题。

1 程序切片的分类
1.1 可执行切片和不可执行切片可执行切片满足下面两个条件之一:第
一,程序切片和切片准则是一一对应的关系,用 <n,V> 来表示(V 表示的是定义在 n 下的
变量集合,n 指的是程序中的点)。第二,想要得到程序 P 中的切片 A,可以在 P 中删除多
条语句。这样做,其前提是保证 P 和 A 都在<n,V> 的行为规范中。
不可执行切片的定义是:给定一个程序P,切片准则是 <n,V>,在此情况下,程序切片
是由程序 P 中所有的 n 点对变量 V 的影响语句和控制谓词构成的 。

1.2 静态切片和动态切片所谓静态切片,指的是切片工作是在程
序没有运行的状态下进行的。这种技术的特点在于,不会对程序的输入进行任何假设,而是
根据静态信息来对程序进行分析。所以,静态切片中有与兴趣点处变量相关的语句,应该考
虑到所有的可能执行的路径。动态切片的准则是(n,V,I 0 ),其中,
n 和 V 的定义没变,I 0 是程序的特定输入。对程序 P 的动态切片进行计算,就要对 P 在特定
输入 I 0 的情况下,所有影响 V 在 n 点值的集合进行计算。计算动态程序切片,主要分析 I 0
产生的数据信息。和静态切片最大的不同之处在于,程序是在运行之中进行,优点是能够确
定数组中的元素和指针变量。

1.3 前向切片和后向切片
前向切片,切片是由程序中所有受到变量在 n 点值的组成。后向切片则与此相反,切
片是由程序中所有影响在 n 点值的组成。前向切片能够知道修改点对语句和谓词的影响,后
向切片能够确定出错误的语句和谓词,因此两者在程序测试中有很大的作用。

2 程序切片在软件测试中的作用
2.1 测试数据的自动生成在软件测试中加入程序切片技术,测试
的工作重点就会变成程序中与指定路径的兴趣点有关联的那些语句,由于缩小了搜索范围,
所以提高了测试数据的生成效率。该数据生成系统由三部分组成,分别是预处理器、程序切片生成器、数据测试生成器。
预处理器的主要功能作用是初步处理程序,主要包括以下任务:标记语句、记录变量
的定义、分析数据信息、明确语句关系等。而生成器的主要作用,是通过与初始输入进行结
合,以程序指定的执行路径为根据,计算兴趣点上的切片。数据测试生成器的主要作用,则
是对比程序的执行路径和指定路径,从切片集合中选择出兴趣点处的切片,按照规则调整程
序的输入,从而在新的程序上执行切片,直到兴趣点满足路径的要求。

2.2 在错误定位中的作用
对软件进行测试的过程中,错误定位不仅复杂而且耗时。使用可执行动态切片和数据
的依赖关系,能够对错误进行高效、准确的定位。在成功切片中,代码出现的次数越频繁,
其正确率就越高。然后采取精炼法和扩展法来扩大可疑代码的范围。

2.3 在回归测试中的应用
软件测试工作的本质是发现错误的程序,然后进行修改。软件维护工作中,由于增加或
改变了部分的软件功能,那么它的源程序也需要修改。众所周知,修改任何程序,都有可能
产生新的错误,因此进行回归测试具有重要的意义。传统测试方法要对整个程序进行测试,
效率低,耗费的时间多、财力大。采用切片技术,既经济又方便。

(1)当程序中的某个输出变量出现错误时,采用分解切片技术,能够使变量计算成为
一个整体模块,好处是对于需要修改的语句和变量,维修人员能够进行直观的判断。
(2)在回归测试中,充分了解新、旧版本的不同,了解切片和依赖的不同,将其标记
为影响节点,能够明确修改会影响到的语句。
(3)通过对前向切片和后向切片的计算,测试两者的交集,能够缩小测试的范围,从而
减小工作量。
(4)测试覆盖分析在测试中,一个重要
的问题是测试结束的标准,即测试应该进行的程度。解决这个问题,就需要用到覆盖准则。
使用切片技术对源程序进行精简,不论输入什么内容,输出能够保持一致。
覆盖测试的具体步骤是:将大系统分解为许多子系统,对于程序中不感兴趣的部分,
采用切片技术将其过滤掉。然后通过覆盖测试每个子系统,将覆盖情况进行合成。该算法的
理论依据在于,第一,对子系统中的测试分析进行由低到高的排列,分别是语句覆盖、分支
覆盖、路径覆盖,高等级的覆盖情况是低层覆盖情况和级差的结合。第二,要考虑数据的覆
盖程度,对于比较重要的变量,在进行重点测试之前,应该赋予比较高的权值。

3 结语
在软件测试的工作中加入程序切片技术,能够自动生成测试数据,其优点在于降低错误
的定位率,从而回归到测试工作本身。就目前而言,静态切片主要应用在程序切片技术中,
动态切片则使用在程序的调试和测试中。未来的发展方向是在软件测试工作中更好的利用程
序切片技术,使其更加快速、准确。

参考文献
[1]张东源. 软件测试中的程序切片技术[J].现代导航 ,2012(03).
[2] 杜 均 , 罗 扬 . 程 序 切 片 技 术 在 程 序理 解 中 的 应 用 [J]. 智 能 计 算 机 与 应用 ,2013(02).
[3] 仲晓芳 , 张春海 , 李杨 . 基于回归测试的软件测试方法的研究与应用 [J]. 计算机技术与发展 ,2010(01).
[4] 冯文祥 , 刘万军 . 故障树分析技术在软件测试中的研究 [J]. 计算机测量与控制 ,2010(08).
作者单位辽 宁 石 化 职 业 技 术 学 院 辽 宁 省 锦 州 市121001



中国论文网(www.lunwenchina.cn),是一个专门从事期刊推广、论文发表、论文写作指导的机构。本站提供一体化论文发表解决方案:省级论文/国家级论文/核心论文/CN论文。

投稿邮箱:lunwenchina@126.com

在线咨询:189308598(QQ) 

联系电话:15295038855(徐编辑)  

 

TAG: 程序 关键词 技术 软件测试 应用文
上一篇 下一篇
0

联系我们