收藏本站
《北京邮电大学》 2013年
收藏 | 手机打开
二维码
手机客户端打开本文

应用数据类型抽象建模提高软件静态测试精度的方法研究

周虹伯  
【摘要】:随着软件产业化的发展,人们对软件的质量、成本和进度提出了越来越高的要求,软件测试逐渐成为了软件开发过程中不可或缺的重要环节,其中的软件静态测试由于无需执行程序且覆盖率高,而成为构建可信软件的主要手段。静态测试的结果不可能做到既是可靠的又是完备的,这样便会导致误报或漏报的产生。程序静态分析的精度是减少软件静态测试中漏报和误报的重要因素,而精确的静态分析又会导致分析效率的下降,如何将两者进行合理的折中计算是影响静态分析可行性的关键,也是国内外该领域中的研究热点。 本文的研究工作受国家高技术研究发展计划“863”基金项目“软件的安全性缺陷模型及基于安全性缺陷模型的测试技术(2009AA012404)”、“网构化软件协同生产和运行演化集成台及服务环境(2012AA011201)”及国家自然科学基金项目“航天嵌入式软件缺陷检测方法研究、系统研发及应用(91018002)”的支持,在保证测试效率的前提下,以提高静态测试精度为目标,主要做了以下三方面工作: 1.基于内存关联的三元数据类型抽象建模 对于静态分析,由于并不实际运行程序本身,导致在分析过程中动态执行信息无法获取,使得和变量具体值关联的故障难于检测。为了确定程序中某操作数或参数的取值范围,需要遍历整个控制流图,根据抽象语法树上每个控制流节点的相关信息,对程序中出现的各个变量进行数据流跟踪分析,对其取值范围进行区间运算,模拟动态执行结果。 传统数据流分析的二元静态分析框架变量-值模型并不能满足数据流分析中指向分析和别名分析的需求,进而导致分析精度下降。基于符号分析理论,可以把已分配的内存空间抽象成为一个符号,再将符号关联上一个整型区间用来表示抽象空间上的偏移量,利用上述方法建立一个新的三元模型变量-内存-值。如果对所有内存中分配的空间做标记的话,势必会占用大量的内存开销,考虑到别名分析与指向分析的数据流分析对象的特性,原有的分析框架可以针对不同的需求进行二元模型和三元模型的同时使用。本文只有当处理指针模型时才会使用三元模型去进行静态分析。 本阶段研究工作贡献主要有:(1)提出一种三元数据类型抽象模型,将内存抽象成符号,对其也作为数据流的分析对象之一进行变量关联操作,进而为提高数据流分析精度奠定了基础;(2)将变量所在存储区内对应的具体值作为指向分析的一种属性进行计算,针对程序中指向分析相关的语句类型给出了具体的抽象语法描述,基于该描述中不同的抽象语法,提出了指向分析算法;(3)给出了基于三元模型的数据流推导算法,并对算法的复杂度进行了分析;(4)提出了函数摘要模型,进一步实现了上下文敏感的指向分析算法。 2.支持区间运算的别名分析方法 当两个或多个变量同时指向一个存储单元或一片存储区域时(即内存地址相同),我们可以称它们互为别名。在控制流上进行区间集运算可以用于表示一个变量或表达式的可能取值范围,但通常的区间集运算没有考虑别名关系,导致变量取值范围修改不及时,计算不准确。 由于别名分析的对象之一是内存空间,所以传统数据流分析原有的二元静态分析框架模型已经不能满足别名分析的需求。应用本文第一部分中提出的理论,可以把已分配的内存空间抽象成为一个符号,再将符号关联上一个整型区间用来表示抽象空间上的偏移量,利用上述方法建立一个新的三元模型去计算变量间的别名关系。 本文通过对不同语句进行别名分析处理后,可以为每个变量关联-个别名集合,集合中可以能是一个变量也可能是多个变量,当对别名集中的某一变量进行值更新时,对别名集中其他所有变量的值也进行更新,进一步达到利用别名分析测试提高精度的效果。 本阶段研究工作贡献主要有:(1)提出了两种别名模型,一种是值关联,一种是存储空间关联的,针对不同的缺陷可以利用不同的模型进行检测,提高了测试精度和效率;(2)值关联的别名除了可以计算出变量间的直接别名关系外,通过三元模型中内存模型的偏移量还可以计算出变量间的间接别名关系;(3)提出一种父区域思想,实现了域敏感别名分析。 3.基于域敏感指向分析的区间运算在软件测试中的应用 域敏感分析是将程序中所有复杂数据类型的每个成员变量都视作不同的存储对象。在软件静态测试领域中,现有符号执行和区间运算技术并不支持域敏感分析,原因是无法对成员变量进行抽象表示。考虑基于缺陷模式描述的软件静态测试机制,其常见缺陷的分析对象均为基本数据类型,例如空指针的解引用、内存泄漏、非法计算等,将复杂数据类型中的每个成员变量进行非关联性的独立分析对测试精度并无影响,而且这样做可以避免由于域敏感分析中复杂数据类型的相关信息计算导致的效率下降问题。 借鉴steensgaard的指向分析原型,本文将该模型进行了支持域敏感分析的改进。本阶段研究工作贡献主要有:(1)提出了一种新的域敏感指向分析模型,该模型将复杂数据类型拆分成独立的变量进行抽象,在满足面向缺陷测试精度要求的同时,避免了对整体模型的数据流更新和合并(2)为所有变量关联一个三元的抽象集合,该集合可以保守的描述程序动态执行信息,提供了计算缺陷状态机状态迁移时的特征条件;(3)给出了数据流计算中具体的类型推导准则和合并策略;(4)设计实现了针对CPP和GCC程序的域敏感缺陷检测工具,在保证测试效率的同时,有效的提高了测试精度。
【学位授予单位】:北京邮电大学
【学位级别】:博士
【学位授予年份】:2013
【分类号】:TP311.53

【参考文献】
中国期刊全文数据库 前5条
1 杨朝红;宫云战;肖庆;王雅文;;基于软件缺陷模型的测试系统[J];北京邮电大学学报;2008年05期
2 王志言,刘椿年;区间算术在软件测试中的应用[J];软件学报;1998年06期
3 高传平;谈利群;宫云战;张威;;基于整型区间集的数组越界静态自动测试方法研究[J];小型微型计算机系统;2006年12期
4 宫云战;一种面向故障的软件测试新方法[J];装甲兵工程学院学报;2004年01期
5 宫云战;软件测试的故障模型[J];装甲兵工程学院学报;2004年02期
【共引文献】
中国期刊全文数据库 前10条
1 单锦辉,姜瑛,孙萍;软件测试研究进展[J];北京大学学报(自然科学版);2005年01期
2 单锦辉;徐克俊;;软件故障诊断探讨[J];北京化工大学学报(自然科学版);2007年S1期
3 高传平;谈利群;宫云战;;基于抽象语法树的代码静态自动测试方法研究[J];北京化工大学学报(自然科学版);2007年S1期
4 侯斌;张冠楠;宫云战;;Java性能故障模式分析[J];北京化工大学学报(自然科学版);2007年S1期
5 王雅文;宫云战;肖庆;杨朝红;;扩展区间运算的变量值范围分析技术[J];北京邮电大学学报;2009年03期
6 金大海;宫云战;杨朝红;肖庆;;函数后置信息在软件静态测试中的应用[J];北京邮电大学学报;2010年06期
7 杨学红;黄俊飞;宫云战;刘传昌;;BPEL静态缺陷检测方法[J];北京邮电大学学报;2011年02期
8 徐希炜;;静态测试C++中定义未使用的变量[J];电脑编程技巧与维护;2009年16期
9 高传平;谈利群;赵利军;;基于用户业务的系统软件测试技术研究[J];电脑开发与应用;2010年02期
10 陈玉峰;;变量越界故障的测试方法研究[J];电子测量技术;2012年05期
中国重要会议论文全文数据库 前10条
1 张冠楠;宫云战;金大海;;过程间的空指针引用故障静态检测方法[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年
2 王斌;张伟;段见飞;张威;;基于软件运行记录的测试方法[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年
3 张伟;王斌;段见飞;张威;;软件运行记录模块设计及效能分析[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年
4 夏玉辉;张威;万琳;王洪艳;;一种基于控制流图的静态测试方法[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年
5 朱伟;徐拾义;;软件控制流故障诊断的研究[A];第四届中国测试学术会议论文集[C];2006年
6 夏玉辉;张威;万琳;王洪艳;;不可达代码的一种静态测试方法[A];第四届中国测试学术会议论文集[C];2006年
7 王雅文;宫云战;肖庆;杨朝红;;区间运算在软件缺陷检测中的应用[A];第五届中国测试学术会议论文集[C];2008年
8 江标;宫云战;杨朝红;;非法计算检测的通用模型[A];第五届中国测试学术会议论文集[C];2008年
9 翟志华;单锦辉;孙萍;;软件故障预防方法探讨[A];第五届中国测试学术会议论文集[C];2008年
10 邹欣;宫云战;金大海;;过程间的非法计算故障静态检测方法[A];第六届中国测试学术会议论文集[C];2010年
中国博士学位论文全文数据库 前10条
1 王立新;软件测试数据的高效生成及测试方法研究[D];东华大学;2011年
2 陈石坤;面向程序验证的循环不变式自动构造技术研究[D];国防科学技术大学;2010年
3 姚香娟;复杂软件测试数据进化生成理论及应用[D];中国矿业大学;2011年
4 邢建英;程序验证关键技术研究[D];国防科学技术大学;2011年
5 李仁见;堆操作程序分析验证技术研究[D];国防科学技术大学;2011年
6 刘志锋;模型检测中关键技术的研究及其应用[D];南京大学;2011年
7 李华旺;航天嵌入式现代小卫星软件容错设计及测试系统研究[D];中国科学院上海冶金研究所;2001年
8 单锦辉;面向路径的测试数据自动生成方法研究[D];国防科学技术大学;2002年
9 吴江;基于区间数互补判断矩阵的多属性决策若干问题研究[D];西南交通大学;2004年
10 江平;广义Ball曲线曲面的几何造型研究[D];合肥工业大学;2006年
中国硕士学位论文全文数据库 前10条
1 孙佳地;划分测试模型及其应用研究[D];大连理工大学;2010年
2 林秀华;基于J2EE的中小企业通用企业信息发布系统的设计与实现[D];电子科技大学;2010年
3 叶可可;BPEL缺陷测试系统的设计和实现[D];北京邮电大学;2011年
4 孙华衿;C/C++单元自动化覆盖测试框架的研究与实现[D];北京邮电大学;2011年
5 胡成杰;Java语言基于函数摘要的过程间静态测试方法研究[D];北京邮电大学;2011年
6 邹欣;基于函数摘要的非法计算故障检测方法的研究[D];北京邮电大学;2011年
7 白哥乐;基于静态源码分析的多线程死锁检测方法研究[D];北京邮电大学;2011年
8 姚欣洪;基于线程摘要的C/C++数据竞争检测研究[D];北京邮电大学;2011年
9 王禹;基于二进制程序的软件缺陷分析及其测试数据生成系统的设计与实现[D];北京邮电大学;2011年
10 杨清平;基于改进遗传算法的测试用例自动生成研究[D];广东工业大学;2011年
【二级参考文献】
中国期刊全文数据库 前1条
1 郝瑞兵,吴建平;测试集自动生成工具TUGEN的设计与实现[J];软件学报;1994年05期
【相似文献】
中国期刊全文数据库 前10条
1 吕金和;;函数副作用在软件静态测试中的应用[J];软件导刊;2010年04期
2 朱剑林;;基于PAT树的程序静态分析方法[J];咸宁学院学报;2007年06期
3 武永鑫;;基于气体传感器阵列的静态检测系统[J];安徽建筑工业学院学报(自然科学版);2010年03期
4 金朝阳;;软件单元测试实战[J];电脑编程技巧与维护;2010年15期
5 项维杰,彭绮琳,彭益民;关于微型计算机特殊故障处理二例[J];计算机时代;2002年11期
6 苟英;;白盒测试[J];科技资讯;2010年10期
7 付晓毓;朱利;顾伟;;基于模型检测的内存泄露静态测试方法[J];微电子学与计算机;2010年10期
8 张晓晖;王忠民;王文浪;;嵌入式软件静态测试技术研究[J];西安邮电学院学报;2011年02期
9 卓鹏程;基板的静态测试[J];电子工艺技术;1999年04期
10 徐希炜;;静态测试C++中定义未使用的变量[J];电脑编程技巧与维护;2009年16期
中国重要会议论文全文数据库 前10条
1 李华莹;于秀山;;基于静态测试工具的软件测试方法研究[A];中国电子学会可靠性分会第十四届学术年会论文选[C];2008年
2 金大海;宫云战;杨朝红;肖庆;;运行时异常对软件静态测试的影响研究[A];第六届中国测试学术会议论文集[C];2010年
3 姚勇涛;李晓光;伍理勋;郭淑英;任恒良;张逸成;;燃料电池汽车用DC/DC变换器静态测试结果介绍[A];2002中国电动汽车研究与开发[C];2002年
4 江标;宫云战;杨朝红;;非法计算检测的通用模型[A];第五届中国测试学术会议论文集[C];2008年
5 曹慧丹;沈昱明;赖际舟;;微硅加速度计标定及试验研究[A];第六届全国信息获取与处理学术会议论文集(2)[C];2008年
6 高秀敏;徐文东;干福熹;;蓝光光存储材料研究平台的构建[A];上海市激光学会2005年学术年会论文集[C];2005年
7 张威;李辉;毕学军;宫云战;;内存泄漏故障静态测试方法研究[A];第四届中国测试学术会议论文集[C];2006年
8 夏玉辉;张威;万琳;王洪艳;;一种基于控制流图的静态测试方法[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年
9 侯艺威;郑吉锋;张玉洁;;呼吸机的预防性维护[A];中华医学会医学工程学分会第八次学术年会暨《医疗设备信息》创刊20周年庆祝会论文集[C];2006年
10 胡宁;王翔;姚振汉;吴智深;;利用静态响应并结合频率测试数据进行结构损伤识别[A];第八届全国结构工程学术会议论文集(第Ⅰ卷)[C];1999年
中国重要报纸全文数据库 前10条
1 记者 孙绪闻;首汽服务“两会”汽车接受检验[N];首都建设报;2007年
2 记者 蒙华;《材料负离子发生量的测试方法》建材行业标准有望年底出台[N];中国建材报;2006年
3 思博伦通信 曲博、吴杰、黄歆宇;两种IPTV测试战略[N];中国计算机报;2005年
4 记者 焦健通讯员 林本武;专家为襄樊汉江大桥全面“体检”[N];人民铁道;2008年
5 本报记者 高荆萍;大柴,从欧I出发[N];中国机电日报;2001年
6 小米;谁为风险买单?[N];中国电脑教育报;2003年
7 王建蓉 王恩光;中级车“PK”速腾夺冠[N];经理日报;2006年
8 中国软件评测中心;5类软件测试工具[N];中国计算机报;2005年
9 刘文;思博伦:志在IPTV中国世界[N];通信产业报;2006年
10 朱虹苏志明;IEC将出台新的电视机能耗标准[N];中国国门时报;2007年
中国博士学位论文全文数据库 前6条
1 周虹伯;应用数据类型抽象建模提高软件静态测试精度的方法研究[D];北京邮电大学;2013年
2 刘煜坤;数字集成电路测试方法研究[D];哈尔滨理工大学;2009年
3 凌翔;需求模型和程序间行为一致性的比较检测[D];武汉大学;2013年
4 王茂龙;结构损伤识别与模型更新方法研究[D];东南大学;2003年
5 张红良;陆用高精度激光陀螺捷联惯导系统误差参数估计方法研究[D];国防科学技术大学;2010年
6 吴鸿云;集矿机牵引性能若干影响因素研究[D];中南大学;2010年
中国硕士学位论文全文数据库 前10条
1 赵宇峰;面向对象软件静态测试自动生成类图的研究[D];西安理工大学;2003年
2 苏青琴;基于抽象解释的嵌入式程序不变量静态测试研究与实现[D];南京航空航天大学;2012年
3 刘翠娟;Web应用中静态测试的研究[D];西北大学;2004年
4 尹晋;基于Testbed和Polyspace的装备软件静态测试研究[D];哈尔滨工程大学;2012年
5 常祥祥;基于二叉决策图的别名分析研究[D];西安电子科技大学;2010年
6 徐磊;路径敏感的跨过程别名分析的设计与实现[D];西安电子科技大学;2011年
7 杨宇;基于变量关系图和符号执行的指针相关路径分析[D];中国科学院研究生院(软件研究所);2003年
8 王钻开;微机械压阻式冲击加速度传感器研究[D];中国科学院研究生院(上海微系统与信息技术研究所);2003年
9 洪小丽;电感传感器测量电路设计与改进[D];中国人民解放军国防科学技术大学;2003年
10 王正山;基于ORG的OO软件测试技术研究[D];合肥工业大学;2005年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026