[发明专利]一种面向敏感区域的嵌入式软件测试用例生成方法无效
申请号: | 201310703581.0 | 申请日: | 2013-12-18 |
公开(公告)号: | CN103714000A | 公开(公告)日: | 2014-04-09 |
发明(设计)人: | 方景龙;程攀;万季;王兴起;王大全 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 敏感区域 嵌入式 软件 测试 生成 方法 | ||
1. 一种面向敏感区域的嵌入式软件测试用例生成方法,其特征在于该方法包括以下步骤:
步骤1)对二进制文件进行分析,对反汇编技术生成的汇编语言进行中间语言转换,并对转换结果进行插桩处理,得到插桩程序;
步骤2)利用所得的插桩程序进行敏感区域分析,确定出污点数据;
步骤3)利用种子测试用例动态执行程序,在运行过程中监控输入符号变量,收集分支路径约束条件,在遇到分支跳转时,将当前收集到的约束集取反输出;
步骤4)分析收集到的约束集中的各个约束是否包含污点数据并进行处理,将化简后的约束集送入约束求解器求解,所得的最终结果就为测试用例。
2.根据权利要求1所述的一种面向敏感区域的嵌入式软件测试用例生成方法,其特征在于:步骤1)具体是:
1-1.利用反汇编技术对二进制文件进行反汇编处理,得到二进制文件相应的汇编程序;
1-2.利用Valgrind对反汇编得到的汇编程序进行转换,将经过反汇编生成的汇编程序进一步提升至中间语言;
1-3.对中间语言做进一步分析,针对中间语言对变量的输入、赋值处理,在变量所在相应位置插桩函数,所得到的最终结果就是插桩程序。
3.根据权利要求1所述的一种面向敏感区域的嵌入式软件测试用例生成方法,其特征在于:步骤2)具体包括如下步骤:
2-1.确定敏感区域:将容易引起缓冲区溢出的 printf、memcpy、memset 和 strcpy 危险函数的调用确认为敏感区域;
2-2.将与敏感区域相关的输入数据确认为污点数据;
2-3.查看程序变量是否与污点数据进行了运算,如果是,则其运算结果也是污点数据。
4.根据权利要求1所述的一种面向敏感区域的嵌入式软件测试用例生成方法,其特征在于:步骤3)具体包括如下步骤:
3-1.利用种子测试用例作为输入动态驱动程序执行,并对执行过程中所遇到的变量进行符号化,用符号变量代替实际变量符号化执行程序;
3-2.收集符号化执行时路径经过的分支条件,收集的全部约束就是该路径的一组约束条件;
3-3.通过将这组约束条件依次求反得到指向其他分支的路径约束条件,重复执行3-2,3-3步得到程序的全部路径约束。
5.根据权利要求1所述的一种面向敏感区域的嵌入式软件测试用例生成方法,其特征在于:步骤4)具体包括如下步骤:
4-1.对收集到的路径约束进行分析,遍历其中的每一个约束条件;
4-2.根据约束条件中的符号变量是否是污点数据进行处理,如果该约束条件包含污点数据则确定为最终要输入约束求解器的符号变量,反之则忽略该符号变量;
4-3.将收集到的该路径上的符号变量送入约束求解器求解,最终得到对应路径上的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310703581.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于稳定测量音叉晶体素子频率的工具
- 下一篇:无线通讯仪表