[发明专利]一种动态的二进制代码测试用例生成方法有效
申请号: | 201210243495.1 | 申请日: | 2012-07-13 |
公开(公告)号: | CN102799529A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 李舟军;马金鑫;忽朝俭;章张锴 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 二进制 代码 测试 生成 方法 | ||
1.一种动态的二进制代码测试用例生成方法,其特征在于:该方法的具体步骤如下:
步骤A.实现二进制代码运行时的动态插装框架,观察二进制的执行过程;
步骤B.根据动态插装框架收集到的动态运行时信息,如指令、寄存器、内存访问信息,把二进制代码翻译成中间语言;
步骤C.根据动态插装框架中记录的输入点信息,将输入点作为符号,传播与输入点相关的执行过程,在每个分支处收集路径约束;
步骤D.将收集到的路径约束,通过变异路径算法得到新的路径约束,将该路径约束转化为求解器可识别的查询语句;
步骤E.使用求解器计算新路径约束中,输入需满足的条件,再借助动态插装框架把新产生的输入交给二进制代码再次执行。
2.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤A中所述的二进制代码为Windows平台下的x86机器代码;所述的二进制代码的动态插装框架,包括:
A1.在每条指令执行完成后插装;
A2.在每个线程开始时插装;
A3.在每个动态链接库被加载时插装;
A4.记录每条指令的执行上下文;
A5.记录每次内存访问信息;
A6.记录分支指令是否被执行。
3.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤B所述的中间语言中,包括三种存储介质:
B11.临时变量,在每个基本块中临时申请,用于实现静态单赋值,为寄存器与内存间的媒介;
B12.寄存器,与机器指令中的寄存器相同,读写寄存器使用中间语言中的Get和Put操作完成;
B13.内存,内存地址由常量或临时变量表示,读写内存使用中间语言中的LDle和STle操作完成。
4.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤B中所述的中间语言由语句IRStmt组成,语句IRStmt包括:
B21.IMark语句,表示每个基本块的入口标志,其中包括该基本块对应机器指令的开始地址及该指令的字节数;
B22.Put语句,表示把临时变量的值写入寄存器;
B23.Store语句,表示把临时变量的值写入内存;
B24.IRDirty语句,表示调用有副作用的函数;
B25.Exit语句,表示基本块的出口。
5.根据权利要求4所述的一种动态的二进制代码测试用例生成方法,其特征在于:所述的语句IRStmt由表达式IRExpr组成,表达式IRExpr包括:
B31.Get表达式,表示从寄存器中读取值;
B32.Tmp表达式,表示临时变量;
B33.Binop表达式,表示二元操作;
B34.Unop表达式,表示一元操作;
B35.Load表达式,表示从内存中读取值;
B36.Const表达式,表示常量;
B37.MuxOX表达式,表示if-then-else语句。
6.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤C所述的输入点包括三种情况:
命令行参数:程序运行时传递的参数,如控制台程序启动时传递的参数;
文件类输入:表示通过ReadFile读取文件内容,作为输入;
网络输入:表示通过Recv、RecvFrom读取网络中的内容,作为输入。
7.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤C所述的将输入点作为符号,即传播符号方法是在中间语言上进行,需要考虑以下几种情况:
C1.Put操作,检查赋值给寄存器的临时变量是否依赖于输入;
C2.赋值给临时变量时,左值需要考虑以下几种情况:
C21.从临时变量中读,检查该临时变量是否依赖于输入;
C22.从内存中读,检查该内存中的值是否依赖于输入;
C23.从寄存器中读,检查该寄存器是否依赖于输入;
C24.一元操作与二元操作,检查操作数是否依赖于输入;
C3.Store操作,检查写入内存的临时变量是否依赖于输入。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210243495.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:老龄人专用镜笔组合
- 下一篇:一种多功能自动无尘粉笔