The embodiment of the invention provides a test method and a device, and the embodiment of the invention relates to the technical field of software testing. The method includes: analyzing the test code by means of symbol execution method, obtaining the test path constraint set of the test code to be tested, and treating the first test path of the test code according to the test. Each constraint in the set of trial path constraints and the constraint of the parent node with each constraint as a child node generate corresponding test cases; input the generated test cases into the code to be tested, and obtain the corresponding test results. Because the test cases of the embodiment of the present invention are generated according to the corresponding constraints of each node, the test cases generated by this method can be used to fully test the variability of each node of the test path, thereby improving the code coverage of the test.
【技术实现步骤摘要】
一种测试方法及装置
本专利技术实施例涉及软件测试
,尤其涉及一种测试方法及装置。
技术介绍
随着计算机科学技术和互联网技术飞速发展,软件安全问题层出不穷,软件安全一直备受关注。所述软件安全问题主要为软件漏洞,软件漏洞是软件开发者开发软件时的疏忽或者是由编程语言的局限性导致的,比如c语言家族比java效率高但漏洞也多,电脑系统几乎就是用c语言编的,所以常常要打补丁。软件漏洞有时是作者日后检查的时候发现的,然后修正;还有一些人专门找别人的漏洞以从中做些非法的事。在软件安全性测试领域,模糊测试(Fuzzing)是挖掘各种应用程序漏洞的有效方法,然而传统模糊测试方法主要是随机产生测试用例,为了达到一定测试覆盖率(代码覆盖率)需要花费时间去生成大量的测试用例,由于模糊测试是随机产生测试用例,随机产生的测试用例存在盲目性,多数无法进入软件的深处。目前已经有一些技术可以产生待测试软件的全部测试路径约束,但是往往是直接采用全部测试路径约束产生测试用例,再用这样产生的测试用例对待测试软件进行测试,这样无法保证对待测试软件的每条测试路径的每个节点进行最大程度的变异性测试,即无法保证代码覆盖率。可见,普通的模糊测试的代码覆盖率低。
技术实现思路
本专利技术实施例提供一种克服上述问题或者至少部分地解决上述问题的一种测试方法及装置。第一方面,本专利技术实施例提供一种测试方法,包括:对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合;对待测试代码的第一类测试路径,根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例 ...
【技术保护点】
1.一种测试方法,其特征在于,包括:对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合;对待测试代码的第一类测试路径,根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例;将生成的测试用例输入到所述待测试代码中,获取对应的测试结果。
【技术特征摘要】
1.一种测试方法,其特征在于,包括:对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合;对待测试代码的第一类测试路径,根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例;将生成的测试用例输入到所述待测试代码中,获取对应的测试结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述测试路径约束集合中的每个约束以及以所述每个约束为子节点的父节点的约束,生成对应的测试用例,包括:按照所述待测试代码中父节点执行的顺序依次生成对应的父节点的约束对应的测试用例。3.根据权利要求1所述的方法,其特征在于,所述对待测试代码通过符号执行方法进行分析,获取所述待测试代码的测试路径约束集合之后,所述方法还包括:对待测试代码的第二类测试路径,根据所述测试路径约束集合中的全部约束,生成对应的测试用例;将生成的测试用例输入到所述待测试代码中,获取对应的测试结果。4.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:将所述测试结果发送给用于检测所述测试结果是否异常的监视器。5.根据权利要求1-3中任一项所述的方法,其特征在于,所述测试路径约束集合中的约束为符号布尔表达式。6.一种测试...
【专利技术属性】
技术研发人员:原玉娇,
申请(专利权)人:北京嘀嘀无限科技发展有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。