APP下载

基于过程间动态符号执行的C语言测试框架

2014-12-23邵巳航杨孟飞

计算机工程与设计 2014年8期
关键词:程序

邵巳航,苏 亭,顾 斌,王 政,杨孟飞

(1.华东师范大学 软件学院,上海200062;2.北京控制工程研究所,北京100080)

0 引 言

目前,工业界仍旧主要采用人工手动编写测试用例的方法。但由于软件规模的不断扩大,测试的人力和成本也随之上升。在此背景下,一系列自动化生成测试用例的工具得到了研究和发展,以辅助测试人员。

动态符号执行是自动化生成测试用例的方法之一,能通过程序实际运行时的实际值信息提高符号执行的可行性。根据测试的需求粒度不同,可以划分为过程内和过程间。现有的工具包括DART[1],KLEE[2],PEX[3]等。

本文贡献如下:基于一套过程间数据流分析方法(SMART 算法),在相关项目工具实现的基础上,针对C语言进行研究,建立了一套详细可行的过程间动态符号执行模型;解决了过程间调用时实参和形参变量的符号统一问题;对SMART 算法进行改进,使其在实际应用中能更准确地计算函数摘要。

1 动态符号执行

在自动化生成测试用例的研究中,符号执行是一种可行性较高的方法。主要思想是通过程序初始的随机输入,由负责监控的插桩代码收集路径上的符号约束,然后根据不同的路径选择策略生成新的路径约束,通过约束求解器进行求解,从而在下次迭代中使程序转入新的分支,最后根据相应的覆盖标准或特定条件终止测试[4]。

然而,由于实际程序的符号约束有时并不能被约束求解器求解,例如当遇到源代码不可得的函数调用,动态符号执行正是为了有效解决这类问题而被提出。……

登录APP查看全文

猜你喜欢

程序
给Windows添加程序快速切换栏
试论我国未决羁押程序的立法完善
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
基于VMM的程序行为异常检测
侦查实验批准程序初探
我国刑事速裁程序的构建
创卫暗访程序有待改进
恐怖犯罪刑事诉讼程序的完善