[发明专利]一种测试方法及装置在审
申请号: | 201710063627.5 | 申请日: | 2017-02-03 |
公开(公告)号: | CN108388504A | 公开(公告)日: | 2018-08-10 |
发明(设计)人: | 原玉娇 | 申请(专利权)人: | 北京嘀嘀无限科技发展有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
地址: | 100000 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试代码 测试路径 测试 测试方法及装置 约束集合 变异性 软件测试技术 代码覆盖率 符号执行 父节点 子节点 分析 | ||
本发明实施例提供了一种测试方法及装置,本发明实施例涉及软件测试技术领域,方法包括:对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合;对待测试代码的第一类测试路径,根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例;将生成的测试用例输入到所述待测试代码中,获取对应的测试结果。由于本发明实施例的测试用例是根据各个节点对应的约束产生的,因此利用这样产生的测试用例可对待测试路径的每个节点进行充分地变异性测试,从而提高测试的代码覆盖率。
技术领域
本发明实施例涉及软件测试技术领域,尤其涉及一种测试方法及装置。
背景技术
随着计算机科学技术和互联网技术飞速发展,软件安全问题层出不穷,软件安全一直备受关注。所述软件安全问题主要为软件漏洞,软件漏洞是软件开发者开发软件时的疏忽或者是由编程语言的局限性导致的,比如c语言家族比java效率高但漏洞也多,电脑系统几乎就是用c语言编的,所以常常要打补丁。软件漏洞有时是作者日后检查的时候发现的,然后修正;还有一些人专门找别人的漏洞以从中做些非法的事。
在软件安全性测试领域,模糊测试(Fuzzing)是挖掘各种应用程序漏洞的有效方法,然而传统模糊测试方法主要是随机产生测试用例,为了达到一定测试覆盖率(代码覆盖率)需要花费时间去生成大量的测试用例,由于模糊测试是随机产生测试用例,随机产生的测试用例存在盲目性,多数无法进入软件的深处。目前已经有一些技术可以产生待测试软件的全部测试路径约束,但是往往是直接采用全部测试路径约束产生测试用例,再用这样产生的测试用例对待测试软件进行测试,这样无法保证对待测试软件的每条测试路径的每个节点进行最大程度的变异性测试,即无法保证代码覆盖率。
可见,普通的模糊测试的代码覆盖率低。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的一种测试方法及装置。
第一方面,本发明实施例提供一种测试方法,包括:
对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合;
对待测试代码的第一类测试路径,根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例;
将生成的测试用例输入到所述待测试代码中,获取对应的测试结果。
第二方面,本发明还提供一种测试装置,包括:
第一获取单元,用于对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合;
第一生成单元,用于对待测试代码的第一类测试路径,根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例;
第二获取单元,用于将生成的测试用例输入到所述待测试代码中,获取对应的测试结果。
由上述技术方案可知,由于本发明实施例的测试用例是根据各个节点对应的约束产生的,因此利用这样产生的测试用例可对待测试路径的每个节点进行充分地变异性测试,从而提高测试的代码覆盖率。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本公开一实施例提供的一种测试方法的流程示意图;
图2是本公开一实施例提供的一种测试装置的结构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京嘀嘀无限科技发展有限公司,未经北京嘀嘀无限科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710063627.5/2.html,转载请声明来源钻瓜专利网。