论文部分内容阅读
作为软件生命周期中必不可少的阶段,软件测试是保障软件安全性和可靠性的重要手段。随着并行程序逐渐成为主流,软件测试的研究方向也逐渐向并行方面转移。然而,并行程序通常由多个独立的线程组成,线程之间包含复杂的、不确定的交互关系,这使得并行程序的自动化测试难度增加。如何表达多线程之间的交互关系和并行程序的错误检测算法是并行程序自动化测试过程中的薄弱环节,是一个值得研究的课题。静态测试是指在不动态执行待测程序的前提下,仅通过分析待测源程序的语法、结构、方法语句、接口等源程序信息来检查待测程序的正确性。具体的做法是通过对源程序做结构分析、流分析、漏洞分析来检测程序的漏洞。与动态测试相比,静态测试更有效率,能快速找到缺陷。采用静态测试的方法对并行程序进行安全性的自动化检测,采用词法语法分析算法将程序源代码转成并行化扩展的程序中间表示,使用静态分析算法提取程序语句之间的依赖信息组成支持并行的系统依赖图,漏洞检测算法利用得到的依赖信息分析出程序存在的漏洞。基于安全性规则的测试是首先由用户提供安全性规则的约束关系描述,在测试过程中,测试框架对程序进行安全性规则的匹配,得到软件安全性测试的结果。实验结果表明:本文提出的并行程序安全性测试框架在检测并行程序漏洞方面要优于现有静态测试软件,并在安全性测试方面具有良好效果。