[发明专利]一种面向软件更新的软件测试方法和装置在审
申请号: | 202110480937.3 | 申请日: | 2021-04-30 |
公开(公告)号: | CN113297070A | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 范萌;王文智;于爱民;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 软件 更新 测试 方法 装置 | ||
本发明涉及一种面向软件更新的软件测试方法和装置。该方法通过使用基于目标的搜索策略来生成测试输入,以覆盖补丁的更改行和相关函数;该方法将软件补丁作为测试的潜在目标,通过在concolic执行中结合静态分析的优势以提高搜索潜在目标的效率,同时可以在测试过程中排除不感兴趣的代码部分,更加专注于与潜在目标最相关的那些路径。该方法不会探索候选列表中的所有分支,而是根据未测试的状态与目标之间的距离选择分支,将补丁的探索与补丁所在函数的探索结合起来,动态的调整搜索目标以对补丁所在的函数进行更全面的测试。本发明在减少探索路径的数量以及到达补丁相关代码的时间成本方面带来了重大改进。
技术领域
本发明属于软件安全测试技术领域,具体涉及一种面向软件更新的软件测试方法和装置。
背景技术
软件的可扩展性既是福也是祸。一方面,软件补丁可以轻松添加新功能或修复软件错误。另一方面,任何软件更改都可能带来意外的错误和安全漏洞,这对用户而言是便是灾难,使用户不愿更新其软件。事实上,许多人宁愿使用包含严重错误且功能较少的早期版本软件,也不愿将其软件升级到最新版本。为了减少程序错误并改善用户体验,开发人员必须在发布程序之前对其程序进行全面测试。但是,软件测试既昂贵又耗时,因为软件维护成本的很大一部分与检测和修复错误有关。程序补丁作为软件更改的一种典型形式,理想情况下应对其进行全面测试,至少补丁中的每一行,以及原始代码中可能受补丁程序影响的每一行代码都应至少包含一个测试用例。但是这种水平的测试在目前的实践中还很遥远。
当前,涉及手动编写大量验证各种路径的测试程序占了软件开发周期的很大一部分。这些测试程序的目标是最大化覆盖特定的范围,例如覆盖路径或分支范围,但这是一个单调乏味的过程,需要大量的工作并需要对被测试系统有很好的理解。在过去的几年中,我们已经看到测试生成技术的重大进步。这些技术中的许多技术都是基于concolic执行(Cristian Cadar and Koushik Sen.2013.“Symbolic execution for softwaretesting:three decades later,”Commun.ACM 56,2(2013),82–90.)的,它是一种基于动态符号执行的程序分析技术,能够生成高覆盖率测试套件的输入,它已被证明是全面测试真实软件的不错选择,因为它能够系统地探索不同的程序路径并准确地进行内存推理。
concolic执行的大部分工作都集中在“整个程序”测试上,程序的所有部分都受到同等对待。但是程序中执行路径的数量通常与分支数量成指数关系,因此探索所有可能的执行路径是不可行的。也就是说,保守的执行面临着路径爆炸的挑战,在面对特定路径(如受补丁影响的路径)的测试输入生成时,该方法会显得有些力不从心,因此有效的搜索策略对于克服补丁测试过程中的路径爆炸挑战非常重要。尽管有一些研究在实现面向补丁的高覆盖率测试技术取得了新进展,但它们仍远没有达到快速自动生成包含实际程序中的代码更改的测试用例的目标。
发明内容
本发明开发了一种面向软件更新的软件测试方法和装置,用于实现基于concolic执行的软件自动测试,该方法称为FCEP(Fast Concolic Execution for Patches),以确保补丁的正确性和可靠性,该方法利用静态和动态分析的优势来生成测试输入,以覆盖补丁中被更改的行。FCEP不会探索候选列表中的所有分支,而是根据未测试的状态与目标之间的距离(例如补丁中的行)选择分支。FCEP将补丁的探索与补丁所在函数的探索结合起来,动态的调整搜索目标以对补丁所在的函数进行更全面的测试。
本发明采用的技术方案如下:
一种面向软件更新的软件测试方法,包括以下步骤:
建立新版本二进制程序的控制流图CFG和函数调用图CG,在CFG中对核心目标可能的执行路径进行标记,并在CG中标记相应的函数调用关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110480937.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:板框脱水机自动脱泥装置
- 下一篇:一种局部路径规划方法及系统