[发明专利]一种面向敏感区域的嵌入式软件测试用例生成方法无效
申请号: | 201310703581.0 | 申请日: | 2013-12-18 |
公开(公告)号: | CN103714000A | 公开(公告)日: | 2014-04-09 |
发明(设计)人: | 方景龙;程攀;万季;王兴起;王大全 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 敏感区域 嵌入式 软件 测试 生成 方法 | ||
技术领域
本发明属于软件测试技术领域,涉及一种面向敏感区域的嵌入式软件测试用例生成方法。
背景技术
如今嵌入式软件在各行各业都有着巨大的市场占有率,医学,教育,银行,军事,计算机等各个领域都深受嵌入式系统的影响,但由于嵌入式软件内存容量有限,实时性要求高,专用性较强,继承性差等特点使得嵌入式软件在空间以及时间资源等方面很大程度上被限制在了有限的条件下,同时由于嵌入式软件对于可靠性和安全性的要求比较高,因此对于嵌入式的缺陷检测提出了更高的要求。针对嵌入式软件进行安全检测,及时发现软件存在的漏洞,减少实际应用中带来的经济损失,已经成为嵌入式软件研究的一个热点领域。所以研究嵌入式软件,挖掘软件中存在的缺陷漏洞具有重大的实际意义。
如何针对特定的嵌入式软件生成与之相对应的测试用例集,成为检测嵌入式软件可靠性的重要标准,国内外研究学者在相关方面做了大量的研究工作,可以将相关技术按不同划分准则划分成不同的种类,其中按照分析对象不同可分成:
(1)源代码分析。这种分析方法以软件源代码为分析对象,与编译过程紧密相关。一般在编译生成的中间语言格式上进行分析,包括数据流分析,控制流分析,SSA分析,最弱条件分析,广泛用到格理论,模型检测理论等。源码分析也可以结合符号执行与约束求解器进行分析,优点是程序的全局信息比较完整,分析的难度较低,分析精度较好。缺点是很多软件的源代码难以获得,商业软件的源代码大多不予公开;有些已经长期部署并广泛应用的软件已经找不到相应的源代码,这种情况限制了源代码分析的可用性。
(2)字节码分析。C#,java等语言编译后生成的是字节码,而不是二进制的机器码。如果没有进行过特殊的字节码混淆技术的处理,从字节码可以完整地提升至源代码,有比较好的结构信息和类型信息,分析难度较低,分析精度较好。但是这种方法适用于分析C#,java等语言的字节码,而对于C/C++语言或者已经部署了的C语言写的程序则无能为力。
(3)二进制代码分析。这种方法与前两种不同,直接以部署的二进制代码为分析对象,结合反汇编技术进行安全性分析。由于二进制代码是作为软件的最终体现形式,软件发布必然会带有二进制的执行程序,即使以源代码发布也可以编译为二进制可执行程序,有广泛的实用性,缺点是二进制程序缺乏低层的结构信息。
按照是否需要执行程序可以分为:
l:静态分析。典型的工具是Saturn和Fortify SCA,采用各种静念的分析方法,流敏感或者路径敏感的方法对软件进行分析,其中广泛用到符号执行,约束求解的路径名敏感分析技术。二进制分析的工具如Rose,也提供了静态分析二进制代码的功能,但是其分析能力较弱,精确性上存在较大问题。
2:动态分析。通过分析程序动态执行信息,获取可达路径对输入数据的约束,并在遇到受输入数据控制的分支跳转时将收集到的约束输出至求解器以判定另一分支路径是否可达,若可达,求解器则给出覆盖目标分支路径的测试用例,并利用生成的测试用例,发掘目标分支路径中的软件缺陷。动态分析更适合用来进行一些性能方面的分析,典型的二进制工具有Pin,Valgrind等。
但这两种分析技术均存在一定的局限性,主要体现在:静态分析技术只是针对程序的结构进行分析,并没有将程序进行实际的运行,因此收集到的约束条件不能完全做到对全路径的覆盖;动态分析技术虽然能够收集到覆盖更为全面的约束条件,但由于并没有对收集到的约束条件进行进一步的处理使得收集的约束条件过于庞大,造成约束求解开销过大,求解精度不高等不足。
发明内容
本发明针对现有技术的不足,提供了一种面向敏感区域的嵌入式软件测试用例生成方法。该方法综合考虑了两种分析技术,取它们各自所具有的优势,提出一种动静结合的分析技术。
本发明方法具体包括以下步骤:
步骤1)对二进制文件进行分析,对反汇编技术生成的汇编语言进行中间语言转换,并对转换结果进行插桩桩处理,得到插桩程序。
步骤2)利用所得的插桩程序进行敏感区域分析,确定出污点数据。
步骤3)利用种子测试用例动态执行程序,在运行过程中监控输入符号变量,收集分支路径约束条件,在遇到分支跳转时,将当前收集到的约束集取反输出。
步骤4)分析收集到的约束集中的各个约束是否包含污点数据并进行处理,将化简后的约束集送入约束求解器求解,所得的最终结果就为测试用例。
本发明的有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310703581.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于稳定测量音叉晶体素子频率的工具
- 下一篇:无线通讯仪表