[发明专利]一种基于独立路径的测试数据自动生成方法有效
申请号: | 201810372298.7 | 申请日: | 2018-04-24 |
公开(公告)号: | CN110399286B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 王曙燕;王瑞;孙家泽 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710121 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 独立 路径 测试数据 自动 生成 方法 | ||
本发明针对软件测试中测试用例生成问题,提供了一种基于独立路径的测试数据自动生成方法。首先对被测程序进行静态分析,得到其控制流图,通过圈复杂度导出所有的独立路径;其次,针对被测程序的具体问题进行编码,得到输入范围及路径编码;然后,根据路径分析及计算分支距离的方法,对被测程序进行插桩得到适应度函数;接着通过混沌序列产生均匀分布的初始种群,选取适应度函数值高的作为细菌觅食算法的初始种群;最后,利用改进后的细菌觅食算法和适应度函数进行迭代更新,直到求出所有独立路径的测试用例或者达到最大的迭代次数,记录输出覆盖独立路径的测试用例。本方法可在保证有效覆盖的前提下,以较少的测试用例、较快速的得到测试用例。
技术领域
本发明属于软件测试技术领域,具体涉及基于独立路径覆盖的软件测试用例的自动化生成方法。
背景技术
随着计算机科学的快速发展,计算机软件已经成为计算机科学领域在人们日常生活中的重要组成部分,成为不可替代的角色。但软件是由人来开发,且软件是一个繁杂的系统,不可能保证软件完全可靠无错,这并且有些错误很可能造成人力财力物力的浪费和损失,这使人们认识到软件测试的必要性。软件测试是软件开发整个流程中必不可少的一环,也是保障软件可靠性的重要手段。传统的软件测试方法基本上由人工完成,有可能产生人为的错误,从而影响软件测试的效率和质量。另外,人工测试的效率低,且需要专业的、有经验的测试人员,造成了软件测试的成本极高,增加了测试的困难。因此将软件测试中存在的技术含量低或者经常重复的工作进行自动化,可大大减少测试成本。其中,测试用例生成是关键性步骤,其生成的效率决定了软件测试的整体效率,对整个软件测试工程的发展具有重要的影响,并且可以自动生成测试用例。一个好的测试用例生成方案可以在节约人力、物力的同时,提高软件开发的效率和质量,增加企业效益。
为了检测软件中存在的错误,需要生成大量的测试用例,以保证尽可能得到零缺陷的软件。但无论一个程序的规模有多小,对其输入进行穷举也是不切合实际的,所以,需要设计一种测试用例的生成方法,使其在保证质量的前提下,减少资源的消耗。
现有的测试用例生成方法中,主要有随机法、静态法、动态法和试探法,即所谓的基于搜索的测试用例生成技术。随机法相对来说方法简单且时间消耗较低,但对于较为复杂的程序,随机法生成的测试用例很难达到覆盖标准,导致很多错误未能发现识别;静态法主要有符号执行法,由此得到了的很多约束器,且相对成熟,但该方法存在难以处理的非线性空间以及带有循环的程序,并且还存在组合爆炸等问题;动态法基于语句覆盖或者分支覆盖,任选测试用例输入,当程序动态执行时,动态收集分支函数信息,测试用例生成效率有所提高,但是其依赖初始数据,有局限性;试探法主要通过对代码进行插桩,利用桩函数信息针对随机生成的测试用例进行试探,直到测试用例覆盖到目标路径。其中,在试探过程中加入算法可提高效率。
本发明结合了动态法和试探法的优点并进行改进,相对于动态法中语句覆盖和分支覆盖等基本路径覆盖存在问题,选择了一种更加简便且高效的独立路径覆盖概念,保障了覆盖路径的有效性,同时利用了试探法中的启发式搜索算法,在保障有效路径覆盖的前提下,利用改进的细菌觅食算法,自动化生成测试用例。
发明内容
本发明主要解决的问题是:针对现有的软件测试技术领域中测试用例生成的不足问题,提供了基于独立路径覆盖的软件测试用例自动生成方法。本发明的目的在于设计一种合理的基于独立路径的测试用例生成方法,帮助软件测试人员能够快速获得覆盖被测程序中有效路径的测试用例,从而利用这些测试用例得到软件的缺陷信息并进一步修复。
本发明的技术方案为:一种基于独立路径的测试数据自动生成方法,其特点在于主要包括以下步骤:
(1)利用开源软件Soot代码分析工具,生成被测程序P的控制流图CFG,并进行精简以便于分析;
(2)对(1)中生成的控制流图CFG利用圈复杂度得到预防错误所需测试的最少路径条数,即独立路径数N,并对各个路径分支进行编码,根据被测程序P的实际问题,分析其输入输出的类型和范围,确定编码,得到测试用例取值范围;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810372298.7/2.html,转载请声明来源钻瓜专利网。