[发明专利]优化的蚁群算法测试用例自动生成方法和系统有效

专利信息
申请号: 201310184996.1 申请日: 2013-05-17
公开(公告)号: CN103218299A 公开(公告)日: 2013-07-24
发明(设计)人: 洪珂;陈明师;陈娟霞;吕士表 申请(专利权)人: 网宿科技股份有限公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 上海专利商标事务所有限公司 31100 代理人: 施浩
地址: 200030 上海*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 优化 算法 测试 自动 生成 方法 系统
【说明书】:

技术领域

发明涉及软件测试技术,尤其涉及借助优化后的蚁群算法自动生成测试用例的方法和系统。

背景技术

软件测试是现阶段保障软件质量的重要手段。软件测试中的诸如语句覆盖、路径覆盖等问题可以归结为面向路径的测试数据的生成问题。单元测试阶段,结构覆盖测试要求语句覆盖率和分支覆盖率均达到100%,人工编写测试用例比较困难,常常无法达到覆盖率的测试要求;而对于已有的测试工具,在测试过程中,需要的人工干预过多,且测试不全面。

传统技术是将蚁群/遗传算法用于测试用例自动生成,不需要对源码信息做太多的静态分析、动态分析,只需要对用例进行单向地修改和变化。目前的这种算法仍具有如下的缺点:

1.基本采用的是盲搜的方法,盲目地搜索会浪费很多资源,比如增加时间复杂度;

2.初始测试用例一般是随机的,并没有根据测试路径中隐藏的一些关系来设定初始测试用例;

3.没有对不可达的路径进行排除。

发明内容

本发明的目的在于解决上述问题,提供了一种优化的蚁群算法测试用例自动生成方法和系统,能够自动生成与优化测试路径,并进一步改进测试用例的自动生成算法。

本发明的技术方案为:本发明揭示了一种优化的蚁群算法测试用例自动生成方法,包括:

步骤1:扫描源程序,进行词法分析,获得变量表;

步骤2:扫描源程序,进行语法分析,获得蚁后、小蚂蚁、终结蚁以及每只小蚂蚁对变量的影响信息,结合步骤1获得的变量表,构造蚂蚁变量表;

步骤3:根据步骤1和2的扫描信息完善源程序,并根据蚂蚁变量表中的蚁后的信息进行蚁后插桩,记录桩信息;

步骤4:根据蚁后的信息初始化每条路径信息素的值,并基于蚂蚁变量表,对每条路径的信息素进行累积操作以获得每条路径的路径信息素的结果值,根据路径信息素的结果值剔除不可能覆盖的路径,在剩余的路径里取一条路径作为当前测试路径;

步骤5:根据当前测试路径的相关信息素,使用SOR迭代法构造初始测试用例作为当前的测试用例;

步骤6:调用命令执行当前的测试用例,并将当前的测试用例的遍历情况写入日志文件,以便于指导信息素的变化;

步骤7:根据步骤6的遍历情况,判断当前的测试用例是否能覆盖当前的测试用例,若能,则当前的测试用例可归入测试用例集,并选取下一条路径,并转入步骤5;若不能,则调整蚂蚁的信息素使生成的测试用例向更好地覆盖测试路径的方向变化,并根据调整后的蚂蚁的信息素生成新的测试用例,作为当前的测试用例,并转入步骤6,最后的测试用例集即为最后输出的测试用例。

根据本发明的优化的蚁群算法测试用例自动生成方法的一实施例,步骤4中是采用精英蚂蚁算法对每条路径的信息素进行累积操作。

根据本发明的优化的蚁群算法测试用例自动生成方法的一实施例,步骤5进一步包括:

使用随机函数构造一测试用例;

按照路径的顺序依次收集路径上的信息素及每只蚂蚁对变量的影响信息,计算每个谓词语句的谓词函数的线性算术表示,并构造输入变量的线性约束直至遇到谓词语句所含有的谓词函数无法使用线性算术表示时停止;

求解线性约束系统,得到新的测试用例,即为初始测试用例。

根据本发明的优化的蚁群算法测试用例自动生成方法的一实施例,步骤7中调整蚂蚁的信息素包括:

调整蚂蚁的信息素的变化指向量,用以指示是测试用例中的哪一个变量进行变化;

调整蚂蚁的信息素的指向增长量,用以指示是否增加变化指向量;

调整蚂蚁的信息素的成长方向量,用以指示测试用例中变量的数值的变化方向;

调整蚂蚁的信息素的成长幅度量,用以指示测试用例中变量的成长幅度。

本发明还揭示了一种优化的蚁群算法测试用例自动生成系统,包括:

词法分析装置,扫描源程序,进行词法分析,获得变量表;

语法分析装置,扫描源程序,进行语法分析,获得蚁后、小蚂蚁、终结蚁以及每只小蚂蚁对变量的影响信息,结合词法分析装置获得的变量表,构造蚂蚁变量表;

蚁后插桩装置,根据词法分析装置和语法分析装置的扫描信息完善源程序,并根据蚂蚁变量表中的蚁后的信息进行蚁后插桩,记录桩信息;

路径预处理装置,根据蚁后的信息初始化每条路径信息素的值,并基于蚂蚁变量表,对每条路径的信息素进行累积操作以获得每条路径的路径信息素的结果值,根据路径信息素的结果值剔除不可能覆盖的路径,在剩余的路径里取一条路径作为当前测试路径;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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