C程序测试数据生成与死循环检测研究

来源 :中国科学院软件研究所 | 被引量 : 0次 | 上传用户:zhangzzxb
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件测试是保证软件质量的重要手段.随着软件技术的发展,软件的规模越来越大,程序的复杂度也逐渐增加.软件测试也由原来的人工操作逐渐走向自动化.自动化软件测试已经成为国内外软件工程研究的热点之一。   本文研究了自动软件测试中的两个问题,它们分别属于自动测试数据生成和错误查找两方面.主要贡献如下:   本文提出了一种对含有字符串和字符串函数调用的C语言程序自动生成测试数据的方法,具体做法是将C语言程序中的字符变量看成是取值范围在0255之间的整数,并使用字符数组来表示字符串,同时将字符串函数建模成一阶逻辑公式和赋值语句.通过使用前置条件和后置条件来描述函数调用语句,将程序中的字符串函数调用语句替换成逻辑公式和赋值语句,之后使用路径分析技术自动生成程序的测试数据.此外,本文还实现了一个自动化工具,能够为真实的C程序自动生成测试数据。   另一方面,本文还提出了一种自动检查程序中是否含有死循环的方法.该方法基于静态代码分析,结合了循环展开和路径可行性分析技术.具体做法是首先通过遍历控制流图生成待查循环的检验路径,之后通过分析检验路径的可行性以及路径之间的联系,判断这些路径是否符合死循环模式.在此基础上,本文实现了原型工具,并对一组基准程序进行测试.实验结果表明,工具能高效地检测出C语言程序中的死循环,准确率较高.工具的自动化程度较高,能处理复杂的控制流以及嵌套的循环。
其他文献
代码复用攻击(Code-Reuse Attacks)是当前存储错误漏洞利用的最新技术。这类攻击在不注入恶意代码的情况下,通过复用应用中合法代码片段挟持应用控制流。因此,这类攻击可以绕过
绘制技术是计算机图形学的关键领域,有真实感与非真实感两大分支。真实感绘制生成高度逼真的画面。非真实感绘制产生抽象和艺术两种效果,其中抽象化图像能够提高人们的视觉沟通
本文针对物理链路可靠性低、容错性要求高、实体异构程度高的基础设施网格化需求,在系统分析当前主流的网格体系结构的基础上,研究了移动代理(PVM)系统的特性,根据移动代理的特
企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础的。然而由于各种原因,如人工操作的误输入、网络传输错误等,各个业务系统内部的数据本身存在着一些问题,如
增量启发式搜索是一种利用先前的搜索信息和启发信息提高本次搜索效率的方法,通常可用来解决动态环境下的重规划问题。在人工智能领域,一些实时系统常常需要根据外界环境的变化
无线位置感知技术研究利用无线信号确定和跟踪移动设备的位置,是普适计算中的一项重要技术。随着Wi-Fi接入点的广泛覆盖,基于Wi-Fi的室内外定位系统已经成为热门的研究领域。本
大量的硬件和软件系统广泛应用在一些重要的领域,在许多情况下错误和失效是不可接受的。需要提供方法来检验软硬件的正确性,增强我们对软硬件系统的信心。形式化验证提供了提高
星地链路加密通信是卫星通信系统安全防护的重要内容,在军事和商业中都有明确的需求,而安全技术对星地链路传输过程的影响分析则是卫星系统设计中必须考虑的问题,本文就是针对星
分布式应用的飞速发展让结点平台的可信保障成为信息安全的研究热点。传统计算机平台的信息安全技术很难满足分布式计算环境的安全需求。可信计算技术通过引入可信硬件作为“
目标识别技术在现实生活中的很多领域都有广泛的应用,但是由于遮挡,视角变换等因素的影响,目标识别技术仍面临着巨大的挑战。局部特征由于其本身同有的局部性,引起了人们的重视。