[发明专利]面向缺陷的路径覆盖测试数据进化生成方法无效

专利信息
申请号: 201110061538.X 申请日: 2011-03-09
公开(公告)号: CN102141958A 公开(公告)日: 2011-08-03
发明(设计)人: 巩敦卫;张岩;姚香娟;吴川;罗永金;田甜;任丽娜 申请(专利权)人: 中国矿业大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 暂无信息 代理人: 暂无信息
地址: 221008 江苏省徐州*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 面向 缺陷 路径 覆盖 测试数据 进化 生成 方法
【说明书】:

技术领域

本发明涉及计算机软件测试领域,设计了一种自动生成穿越目标路径的测试数据的新方法。该方法区别于原有方法的特色在于,生成的测试数据能有效暴露目标路径中指定类型的缺陷。

背景技术

软件测试是保障软件质量的重要手段,分为静态测试和动态测试,都是为了发现程序代码中可能存在的缺陷,但是前者不执行程序代码,而后者则基于测试数据运行程序代码,测试数据的生成是该类测试的关键。软件自动测试的核心是在短时间内不通过大量的采样,生成有效的测试数据,以发现软件存在的缺陷,因此自动生成软件的测试数据成为软件工程界非常重要的研究课题。

按照生成测试数据所依据的信息来源,动态测试又分为黑盒测试、白盒测试,以及二者融合的测试,其中,黑盒测试面向软件的功能,而白盒测试面向程序的结构。路径覆盖测试属于白盒测试,它要求产生的测试数据尽可能覆盖程序的所有路径。单锦辉等认为,许多软件测试问题都可以归结为路径覆盖测试的数据生成问题,该问题描述为:给定程序的一条目标路径,在程序的输入空间中寻找测试数据,使得以该数据为输入,所经过的路径为目标路径,并在中国专利说明书CN1402133(2003年3月12日公布)公开的发明专利中给出了一种路径覆盖测试数据的自动生成方法。该方法能保证生成测试数据穿越目标路径,但是并不能保证生成的测试数据发现被测程序中的缺陷。

在路径覆盖的软件测试中,一个缺陷(故障)能否被检测出,除了取决于测试数据外,还与该缺陷被检测出的概率大小密切相关。宫云战等认为对于软件中的所有缺陷而言,通常以缺陷检测的百分比衡量软件测试的效率。容易知道,一般的路径覆盖测试方法难以检测出小概率缺陷,鉴于此,宫云战等提出了面向故障的软件测试方法;研究了软件缺陷相关问题;给出了内存泄露静态检测模型、JAVA语言中数组越界的故障模型和非法计算故障的通用检测模型,建立了基于软件缺陷模型的测试系统。该方法属于缺陷的静态查找方法,往往会错报或(和)漏报一些缺陷。近年来,关于软件缺陷的研究成果很多,缺陷查找除了静态方法以外,还有动态方法,如王青等研究和讨论了软件缺陷预测技术,对典型的软件缺陷的分布模型给出了案例研究;Arcuri提出将被测程序和单元测试联合进化,达到自动修复程序中的缺陷的目的;Novark等设计了一个能自动高效纠正C和C++中内存错误的系统;刘海等根据软件缺陷管理的一般目标和过程,提出软件缺陷数据定义的准则和缺陷管理工具应具有的特性, 并举例说明了缺陷数据定义的方法。总体看来,动态方法虽然能比较准确的检测缺陷,但是,基于程序的实际运行使得该方法的缺陷检测时间变长。

软件测试的主要目的是发现被测程序中存在的缺陷。缺陷的表现形式很多,有些缺陷直接导致程序不能正常运行或是可以被编译系统发现,这类缺陷也同样容易被软件开发人员发现从而得到修正,因此投入测试的被测程序中一般不包含这类缺陷;有些缺陷隐含在被测程序中不能被编译系统检测出来,不影响程序的运行,只要测试数据穿越该缺陷所在的路径,就会被引发,从而导致程序运行结果不正确,因而也容易被测试数据发现;还有一类缺陷,不能被编译系统检测出来,而且不是穿越该缺陷所在路径的测试数据都能发现它,需要特殊的测试数据才能将其有效地检测出来,这类缺陷被称为小概率缺陷,因此生成能有效检测小概率缺陷的测试数据将对软件测试工作具有巨大的意义。已有的路径覆盖测试数据生成方法虽然能生成穿越目标路径的测试数据,但是未必能发现被测程序隐含在目标路径中的缺陷,尤其是小概率缺陷。考虑到生成路径覆盖的测试数据需要插装并运行被测程序,本发明在被测程序中也插装关于各类故障的检测函数,那么,生成测试数据覆盖目标路径的同时,也检测该数据能否发现目标路径中的缺陷,在穿越目标路径的数据中选择暴露缺陷个数多、危险程度大的作为最终测试数据,使生成测试数据的质量大大提高。

发明内容

本发明提出一种面向缺陷的路径覆盖测试数据进化生成方法。首先,以测试数据执行被测程序过程中发现的缺陷个数最多、缺陷的危险程度最大为目标,以该数据穿越的路径必须是目标路径为约束,建立面向缺陷的路径覆盖测试数据生成问题的数学模型;然后,设计了约束多目标优化方法解决该问题,用遗传算法进化生成测试数据。

本发明所要解决的技术问题:克服现有路径覆盖测试数据生成方法的不足,基于遗传算法提出一种有效的进化优化方法,使生成的测试数据不仅穿越目标路径,而且能尽可能多地发现目标路径中的缺陷。

本发明的技术解决方案:一种基于遗传算法的面向缺陷的路径覆盖测试数据生成方法,其特征在于包含以下步骤:

步骤1.数学模型的建立

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110061538.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top