论文库
  • 首页
  • 论文发表
  • 论文宝库
  • 期刊大全
  • 新闻中心
  • 著作出书
  • 发表流程
  • 关于我们
  • 诚心通道
  • 联系我们
  • 当前位置:主页 ->论文库 ->工学论文
  • 程序切片技术在软件测试中的应用

    2014年9月17日 08:51 作者:张锋
    中国论文网_+lOQ4v"WF0g
    程序切片技术在软件测试中的应用
    文/张锋

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

    "vKY9Ic GJ@%l U0

    G5n*h/LV0SFA0
    【关键词】程序切片 软件测试 数据信息 系统
    中国论文网vI-}[(E;X"q6@)vJ hB
    在软件的生存期内,软件测试是一个重要的阶段,通过测试,能够保证软件的运行质
    量。在测试工作中,存在一个问题,即大规模测试之后,如果修改了其中的某一个软件,就
    会影响到整个程序的运行。这种情况下,就必须对程序重新进行一次测试。程序切片技术的
    应用,刚好解决了这一问题。

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

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

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

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

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

    6]p.cD)orowe0
    2.3 在回归测试中的应用
    软件测试工作的本质是发现错误的程序,然后进行修改。软件维护工作中,由于增加或
    改变了部分的软件功能,那么它的源程序也需要修改。众所周知,修改任何程序,都有可能
    产生新的错误,因此进行回归测试具有重要的意义。传统测试方法要对整个程序进行测试,
    效率低,耗费的时间多、财力大。采用切片技术,既经济又方便。
    中国论文网A1_M'Nr/J
    (1)当程序中的某个输出变量出现错误时,采用分解切片技术,能够使变量计算成为
    一个整体模块,好处是对于需要修改的语句和变量,维修人员能够进行直观的判断。
    (2)在回归测试中,充分了解新、旧版本的不同,了解切片和依赖的不同,将其标记
    为影响节点,能够明确修改会影响到的语句。
    (3)通过对前向切片和后向切片的计算,测试两者的交集,能够缩小测试的范围,从而
    减小工作量。
    (4)测试覆盖分析在测试中,一个重要
    的问题是测试结束的标准,即测试应该进行的程度。解决这个问题,就需要用到覆盖准则。
    使用切片技术对源程序进行精简,不论输入什么内容,输出能够保持一致。
    覆盖测试的具体步骤是:将大系统分解为许多子系统,对于程序中不感兴趣的部分,
    采用切片技术将其过滤掉。然后通过覆盖测试每个子系统,将覆盖情况进行合成。该算法的
    理论依据在于,第一,对子系统中的测试分析进行由低到高的排列,分别是语句覆盖、分支
    覆盖、路径覆盖,高等级的覆盖情况是低层覆盖情况和级差的结合。第二,要考虑数据的覆
    盖程度,对于比较重要的变量,在进行重点测试之前,应该赋予比较高的权值。
    中国论文网 f+k(QVS
    3 结语
    在软件测试的工作中加入程序切片技术,能够自动生成测试数据,其优点在于降低错误
    的定位率,从而回归到测试工作本身。就目前而言,静态切片主要应用在程序切片技术中,
    动态切片则使用在程序的调试和测试中。未来的发展方向是在软件测试工作中更好的利用程
    序切片技术,使其更加快速、准确。

    +Ta k&}P6kd;tB?0
    参考文献
    [1]张东源. 软件测试中的程序切片技术[J].现代导航 ,2012(03).
    [2] 杜 均 , 罗 扬 . 程 序 切 片 技 术 在 程 序理 解 中 的 应 用 [J]. 智 能 计 算 机 与 应用 ,2013(02).
    [3] 仲晓芳 , 张春海 , 李杨 . 基于回归测试的软件测试方法的研究与应用 [J]. 计算机技术与发展 ,2010(01).
    [4] 冯文祥 , 刘万军 . 故障树分析技术在软件测试中的研究 [J]. 计算机测量与控制 ,2010(08).
    作者单位辽 宁 石 化 职 业 技 术 学 院 辽 宁 省 锦 州 市121001
  • 上一篇             下一篇
发给朋友 分享到朋友圈
  • 回顶部
中国论文网|微信客服:15295038855
本站提供论文发表发表论文核心论文发表
免费论文发表资源,文章只代表作者观点,并不意味着本站认同,部分作品系转载,版权归原作者或相应的机构;若某篇作品侵犯您的权利,请来信告知:lunwenchina@126.com