[发明专利]一种软件测试数据扩增方法在审
申请号: | 201610027217.0 | 申请日: | 2016-01-15 |
公开(公告)号: | CN105718368A | 公开(公告)日: | 2016-06-29 |
发明(设计)人: | 王曙燕;孙家泽;温春琰;王小银;王燕 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710061 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 测试数据 扩增 方法 | ||
技术领域
本发明属于软件测试技术领域,特别是在回归测试技术领域,用于进行测试数据集的扩增,以满足新版本软件的测试需求,是一种软件测试数据扩增方法。
背景技术
在回归测试的过程中,测试人员通过重新测试新版本软件,以验证新版本软件没有被加入新的错误或引起其它代码产生错误,现有的回归测试研究通常分为三大类:测试数据选择、测试数据修复和测试数据集扩增。在过去的几十年中,回归测试研究主要集中在测试数据选择上,其主要任务是如何在原有的测试数据集中进行挑选,以满足新版本软件的部分需求,然而挑选原有测试数据往往不能测试到软件的新增功能。
测试数据扩增是指根据已有的测试数据信息和程序演化信息来生成新的测试数据集,该测试数据集与经过选择和修复的测试数据集合并共同满足新版本的测试需求。测试数据集扩增主要针对程序的修改和新增部分。与传统测试数据生成不同,测试数据集扩增强调利用已执行测试数据信息和程序演化信息辅助生成新测试数据,以期提高生成效率并获得更具针对性的测试数据。当前的测试数据扩增主要基于符号执行、启发式搜索等测试数据生成技术,大体上可以分为两类:第1类是面向行为的测试数据扩增技术,即期望新测试数据显示演化软件的执行变化;第2类是面向覆盖的测试数据集扩增技术,即期望新测试数据覆盖演化软件的新增和修改部分。
已有测试数据集扩增方法主要是利用已运行的测试数据集动态信息结合软件演化的静态信息产生新的测试用例,但这些测试数据集扩增技术主要依赖符号执行等传统生成技术,限制条件多且难以用于大规模程序。不同测试用例生成方法和测试数据集扩增效率仍缺乏一个系统的比较分析,缺乏一个有效的用于测试数据集自动扩增的方法。
发明内容
本发明要解决的问题是:原有测试数据集难以满足新版本软件的测试需求,需要一种新的测试数据扩增方法在消耗较少资源的情况下,有效的在原有测试数据的基础上生成新的测试数据。
本发明的技术方案为:一种软件测试数据扩增方法,首先根据原有测试数据的穿越路径和目标路径的相似度构建相似矩阵,选择合适的测试数据作为初始的进化种群;其次根据穿越路径和目标路径不同子路径节点对应的输入分量,确定自适应粒子群算法操作进化个体的位置,最终生成满足新版本程序测试需求的测试数据;包括以下步骤:
(1)使用Soot代码分析工具,将新版本程序P转化成一种类型化的三地址码Jimple,从中提取出程序P中的所有路径Ppath和路径条件PC;
(2)根据路径条件PC判定测试数据集T的穿越路径Pcros,并由Ppath-Pcros得到新版本程序P需要覆盖的目标路径Ptarget;
(3)采用路径的相似性来衡量测试数据之间的相似度:对于程序P的路径pi和pj穿越的节点序列分别为和其中|pi|为路径pi穿越的节点个数,|pj|为路径pj穿越的节点个数,记路径pi和pj穿越的相同节点个数记为Nsame,则路径pi相对于pj的路径相似度记为S(pi,pj),可表示为:
S(pi,pj)=Nsmae/|pj|
所得的路径相似度即为测试数据之间的相似度;
(4)根据步骤(3)中路径相似度计算方法,构建目标路径Ptarget与穿越路径Pcross的相似度矩阵
其中,m=|Pcross|,n=|Ptarget|,sij为测试数据ti的穿越路径p(ti)与目标路径的相似度1≤i≤m,1≤j≤n,若存在k∈{1,2,…,m},m=|Pcross|,使得则选择第k行对应的测试数据tk作为测试数据扩增的初始测试数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610027217.0/2.html,转载请声明来源钻瓜专利网。