[发明专利]一种相似程序间测试用例的重用方法及其实现系统有效
申请号: | 201910295180.3 | 申请日: | 2019-04-12 |
公开(公告)号: | CN110262957B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 钱忠胜;宋涛 | 申请(专利权)人: | 江西财经大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市华腾知识产权代理有限公司 44370 | 代理人: | 彭年才 |
地址: | 330000 江西省南*** | 国省代码: | 江西;36 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 相似 程序 测试 重用 方法 及其 实现 系统 | ||
本发明公开了一种相似程序间测试用例的重用方法及其实现系统,该重用方法包括基于待测程序的相似度判定流程,构建关键字流图,比较关键字流图节点中的关键字是否相同,具有相同关键字的节点构成公共关键字流图子图;程序的关键字流图和关键字流图最大公共子图构建完成后,利用最大公共子图距离方法比较待测程序的相似度,相似程度达到预设值的程序用于测试用例的重用;将已有的测试用例共享于相似程序,采用遗传算法生成重用的测试用例,将相似程序已经生成的测试用例引用到种群进化的过程中,新生成的种群个体通过向测试用例学习,以加快进化速度,完成测试用例的重用。
技术领域
本发明涉及软件开发技术领域,具体涉及一种基于相似程序间测试用例的重用方法及其实现系统。
背景技术
软件测试是为了发现程序错误以提高程序质量的一个过程。软件测试贯穿软件开发的整个过程,是软件开发不可或缺的一个环节。研究表明,在软件测试中,毫无限制地对所有程序进行验证,将会花费维护费用的50%。而软件测试的重用在提高软件测试质量,缩短测试周期和改善测试人员的经验不足等方面,均起着十分重要的作用。
在将程序已有测试用例使用到相似程序测试用例的生成过程中,检测待测程序之间的相似度是研究用例重用的前提。程序相似性的制定标准是一项重要的工作,近年来不少学者从语义结构和图等不同方面探究程序的相似性。将程序的相似性应用在计算机教学和恶性程序检测等领域的研究比较多。最长公共子串算法比较字符串的相似性,字符串的相似性完全取决于最长字符串的长度,具有片面性。Levenshtein距离算法比较适用于规模较小的程序相似性的比较。基于程序依赖图的动态胎记技术来检测程序的相似性,需要公共子图的同构作为前提条件,局限性比较大。
发明内容
有鉴于此,有必要提供一种提高测试用例的生成效率、减少软件测试的工作量的相似程序间测试用例的重用方法及其实现系统。
一种相似程序间测试用例的重用方法,包括以下步骤:
步骤一,基于待测程序的相似度判定流程,构建关键字流图,比较关键字流图节点中的关键字是否相同,具有相同关键字的节点构成公共关键字流图子图;
具体包括以下步骤:
步骤a,关键字流图最大公共子图的构建:
构建关键字流图,利用动态规划算法比较关键字流图中关键字的异同;若关键字相同,则该关键字所属的节点即属于公共流图子图,并对节点进行标记,构建待测程序的关键字流图最大公共子图;
步骤b,相似度判定前的预处理:
ⅰ)若待测程序的测试用例长度小于被比较程序测试用例的长度,减小被比较程序测试用例的长度,使待测程序与被比较程序的测试用例长度相同,根据关键字流图最大公共子图,删减不属于最大公共子图节点对应测试用例的部分;
ⅱ)若待测程序的测试用例长度大于被比较程序测试用例的长度,增加被比较程序测试用例的长度,使待测程序与被比较程序的测试用例长度相同;找出被比较程序关键字流图不存在关键字的节点所对应的位置,随机增添最大公共子图对应被比较程序的测试数据,至待测程序与被比较程序测试用例的长度相同;
步骤二,在程序的关键字流图和关键字流图最大公共子图构建完成后,利用最大公共子图距离方法比较待测程序的相似度,相似程度达到预设值的程序用于测试用例的重用;
其中,相似度的判定包括以下步骤:
使用最大公共子图距离算法计算关键字流图子图距离,根据所述距离的大小确定程序的相似程度;
给定两个非空流图G1和G2,以及它们的最大公共子图mcs(G1,G2),它们间的距离表示为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江西财经大学,未经江西财经大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910295180.3/2.html,转载请声明来源钻瓜专利网。