基于函数建模的面向路径自动打桩方法研究

来源 :北京邮电大学 | 被引量 : 0次 | 上传用户:focus2316acn
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在现代软件测试中,单元测试是一种重要的测试方法。它对软件中的最小单元即函数模块进行测试。任何函数模块都不是独立的,可能需要调用其他函数模块来完成目标功能。由于一个外部函数调用语句的行为是由它调用的函数决定的,所以无法从函数调用语句本身推断出它的语义来。如何处理函数调用是正确进行单元测试的关键问题之一。论文围绕提高打桩的精确化程度和自动化程度两个方面进行了以下工作:(1)提出了基于上下文敏感的函数建模方法,该方法以符号执行、数据流分析技术、抽象内存建模技术、以及路径敏感的区间计算技术为核心,可以模拟外部函数调用,较为完整的保存外部函数调用的约束信息以及语义信息。该方法根据所选择路径可确定出函数调用的实参,返回值以及在函数调用中可能改变的全局变量的确定值,并将这些值的语义信息使用变量类型的抽象内存模型进行保存。(2)提出自动化桩代码生成方法,该方法目标是全自动的生成桩函数,减少人工干预。为达到该目标,在函数建模技术的基础上,设计了基于函数建模技术的自动化桩代码生成方法。该方法全自动的完成了一个函数模型记录到一个完成可被正常编译执行的C代码的转译流程。经由上述两方面工作,单元测试中可以脱离人工干预、完全自动化的完成路径敏感的函数调用打桩问题,测试效率有较大提高。作者在代码自动化测试系统(Code Test System)中实现了上述方法,并对大型的开源程序(scipy-0.7.0)进行了测试。结果表明,该方法将平均覆盖率由43.76%提高到了65.94%。对于个别表达式较多,变量单一的函数、覆盖率提高了近一倍,并支持正确的自动化的打桩,验证了该方法在单元测试中的作用。
其他文献
针对办公自动化系统中邮件安全性要求,提出了加密和数字签名方法,该方法基于广泛使用的邮件加密软件PGP。本文详细的分析了组成该PGP算法的所有算法的安全漏洞,针对这些漏洞提出
智能化是计算机发展的必然趋势,无论是计算机控制,还是商用民用软件,都要求含有越来越高的智能因素,因此人工智能领域的研究越来越受到重视。近几年多智能体系统成为研究热点之一
近些年来,随着计算机技术的快速发展和企业信息化程度的不断提高,企业数据量正呈现指数增长,这些数据蕴含着大量的信息财富,通过对其合理存储和管理,可以减少知识流失,为企业