基于Linux平台的单元测试框架的研究

来源 :北京邮电大学 | 被引量 : 1次 | 上传用户:q157194179
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
单元测试是软件测试的最初阶段,做好充分有效的单元测试可以显著地降低软件测试成本,提高软件质量。代码测试系统(Code Testing System,CTS)是一个针对C语言的自动化测试系统,其核心功能之一是单元测试。CTS在Windows平台上只能测试简单的单个C程序,但是大多C语言工程都包含多个C文件,而且针对的是Linux平台。所以需要将CTS从Windows平台移植到Linux平台。  CTS从Windows平台移植到Linux平台,主要存在的问题有:1)在Linux平台上,由于实际C语言工程中源文件和头文件之间依赖关系复杂,CTS不能正确地对被测文件进行预处理,导致模块划分通过率较低,造成CTS无法测试。2)原有的测试用例执行模块无法在Linux平台上运行。  本文对Linux平台自动化单元测试框架的搭建进行了深入研究,对上述问题,提出了解决方案:1)对Linux平台C语言工程中负责配置依赖关系的Makefile文件进行自动修改,使得CTS在利用Makefile文件编译整个工程时,能够保存编译过程中产生的预处理文件,解决了C语言工程中文件预处理的问题,提高了模块划分通过率;2)利用Linux平台C语言线程调用接口以及setjump和longjump函数完成了测试用例执行模块搭建,实现了在Linux平台对测试用例执行的控制,包括死循环捕获和异常处理。  进一步的,本文改进了CTS的打桩模块:提出函数抽象内存模型和自适应打桩算法。在变量抽象内存模型的基础上,建立了函数抽象内存模型,并利用自适应打桩算法对路径进行分析,将分析结果保存在抽象内存模型中。利用分析结果,能够为路径上的函数自动生成满足路径约束条件的桩函数。  实验结果表明本文提出的方法能够有效提升对实际工程模块划分通过率,保障测试过程顺利进行。实例分析说明面向路径的自适应打桩技术能为路径上的函数自动生成满足路径约束条件的桩函数。
其他文献
Java语言作为一个面向对象的编程语言,虽然它以C++为基础,但是它是一个全新的软件开发语言.与C++不同,它是一个完全面向对象、适用于分布式并与平台无关的环境.JBRET_Java是
该文在分析了国内目前使用较广泛的收费系统的优缺点之后,针对国内部分地区(主要是广东省)的情况,提出了广东省电子不停车联网收费系统模型.电子不停车联网收费系统是以计算
该文具体内容包括:1、该文对针对数据仓库及其应用的特点,提出了新的多表连接算法MJoin,相比传统的多表连接处理方法,性能有显著提高;然后又在多表连接算法的基础上,提出了一
作为计算机软件的核心,操作系统的安全对于所有的计算机软件来说都至关重要。但是由于操作系统的规模非常庞大,而且结构极其复杂,这使得操作系统的安全问题存在非常多的不确
该文从预处理阶段的这两方面工作入手,郑重讨论了以下这几个方面的内容:1、系统分析了HTML文档解析处理的相关技术,其中包括传统的基于有限状态自动机的词法分析技术、基于递
该论文的研究重点主要包括牌照的定位、牌照中字符的分割和字符识别三部分,通过对图像处理和分析技术的综合运用和对问题本身特点的详细考察,最终实现了基于边缘特征和形态分
论文首先给出了时间自动机的定义及相关符号,然后对使用等价类方法构造区域自动机的描述进行了算法实现。该算法的空间复杂度是状态数目的几何级扩张。对上述算法做进一步改进
该文详细阐述了虚拟现实技术的含义、特征,在对CAI的技术特点、发展方向进行分析、讨论的基础上,论述了虚拟现实应用于教育的可行性、必要性,指出基于虚拟现实的CAI将是CAI发
该文对当前的各种Ad-hoc网路由算法进行了归类;对评测算法性能的标准进行了分析,提出的以字节数计量路由算法在MAC层产生的开销的观点;该文用仿真的方法对几种具有代表性有路
金融多媒体自助服务系统(Finance—Multimedia Auto-ServiceSystem)作为自助银行的重要组成部分与自动取款机(ATM)、自动存取款机(CRS)联合使用即可构成一个小型自助银行,越来越受到