论文部分内容阅读
随着计算机软件日益的庞大和复杂,软件存在的缺陷和问题越来越难以发现,软件测试在软件生存期中的地位越来越重要。软件测试是对软件需求分析、设计规格说明和编码的最终复审,是保证软件质量的关键步骤。软件测试的目的除了要对软件的质量做出评判,还要发现软件存在的问题。软件测试主要分为静态测试和动态测试。动态测试就是执行程序,检查程序的行为是否满足需求。静态测试不需要编译运行程序代码,只依据规约或者规则对程序源代码进行分析以检测程序中是否有潜在的错误。目前,静态测试是国内软件测试的一个研究热点。目前,基于软件的缺陷测试系统-静态缺陷检测工具(defect testing system, DTS)利用函数摘要技术将函数间的缺陷检测转换为函数内的缺陷检测。函数摘要是函数语义的部分抽象描述,通常描述与具体模式相关的信息,在分析不同的缺陷模式时则需要关心不同的函数摘要信息。函数副作用信息是指在子函数调用正确执行完毕之后,对局部变量、全局变量、指针参数、引用类型参数变量和函数返回值所造成的影响。在静态检测的系统实现中,函数副作用信息是以变量的区间信息的改变的方式进行描述的,但这通常与具体的缺陷模式无关。本文研究的主要内容是域敏感的函数副作用研究及应用,首先对域敏感的函数副作用进行建模,然后计算域敏感函数副作用信息和计算使域敏感函数副作用产生的有效条件,最后在域敏感变量使用未初始化故障中利用域敏感的函数副作用信息进行故障检测。本文提出的方法已在DTS的DTSGCC版本和DTSCPP版本中应用实现。文章实验部分通过使用实现了本文方法的DTSGCC版本和DTSCPP版本的实验数据的分析,阐明本法的实用和有效性。