一种自动化测试系统中为I/O建模及约束提取的方法

来源 :北京邮电大学 | 被引量 : 1次 | 上传用户:zzzzzzvb
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
单元测试是软件测试流程的第一步,充分有效的单元测试可以尽可能多的发现软件故障,降低开发成本,提高软件质量。代码测试系统(Code Testing System,CTS)是一款由Java语言实现的软件测试系统,实现了自动化的单元测试,主要功能是针对C程序进行语句、分支、MC/DC覆盖测试。库函数和系统调用是自动测试面临的一大难点,测试人员需要进行人工操作,才能使测试正常进行,这样大大降低了自动化测试的效率,在CTS中采用自适应打桩算法为普通函数自动生成桩函数。输入/输出(Input/Output,I/O)函数是一类常见的库函数,不同于普通函数,I/O函数操作对应于具体的I/O设备,普通的打桩方法忽略了函数调用之间的关联。为了提高自动化测试的效率和桩函数的准确性,本文提出了为I/O设备建模和I/O函数建模的方法。本文的主要工作如下:(1)为I/O设备和I/O函数分别建立模型,并将I/O函数的语义等价为对I/O设备模型的操作。为I/O设备建模,用模型的状态和属性来表示一个具体的I/O设备,包括控制台、文件和Socket网络。为I/O函数建模,I/O函数的语义被存储在I/O函数模型中,并将I/O函数的语义等价为对I/O设备模型的操作。I/O设备的最终状态和属性由对应的模型来表示。(2)给出了一个约束提取的算法,用来将I/O设备模型和I/O函数模型中的约束条件提取出来。该算法以源代码、抽象语法树、控制流图为输入,通过分析控制流图上的每个函数节点,来修改和存储I/O设备模型的属性和状态,并将约束条件存储在I/O设备模型中,最后利用约束求解来实现自动打桩。实验结果表明本文提出的方法能够有效提升源代码中包含I/O函数的程序的覆盖率,提高了自动测试的效率。实例分析说明该方法能够为路径上的I/O函数自动生成满足路径约束的桩函数。
其他文献
智能化是计算机发展的必然趋势,无论是计算机控制,还是商用民用软件,都要求含有越来越高的智能因素,因此人工智能领域的研究越来越受到重视。近几年多智能体系统成为研究热点之一
近些年来,随着计算机技术的快速发展和企业信息化程度的不断提高,企业数据量正呈现指数增长,这些数据蕴含着大量的信息财富,通过对其合理存储和管理,可以减少知识流失,为企业
在现代软件测试中,单元测试是一种重要的测试方法。它对软件中的最小单元即函数模块进行测试。任何函数模块都不是独立的,可能需要调用其他函数模块来完成目标功能。由于一个