关键词:
形式化验证
错误传播
测试需求
测试用例
网构件
摘要:
随着科技飞速发展,人们可以在越来越多的领域里发现计算机的身影。计算机带来便捷的同时,同样也会带来一些不可忽略的安全问题。计算机系统运行时发生的故障或者产生的漏洞可能会被某些黑客利用,对用户的电脑进行攻击,给用户带来危及生命、财产的重大损失,造成严重危害。存在于构件系统中可能会造成危害的安全漏洞已经成为了不可忽视的问题,因此如何检测构件系统运行时出现的安全问题已经成了软件测试中的热门研究课题。形式化方法是一种依靠数学手段验证或论证来保证软件开发安全的方法,开发人员根据构件的说明文件构建构件自身安全规约并为其建立抽象模型从而分析其中存在的安全隐患。因此本文选择基于形式化的跨主体网构件漏洞检测方法作为研究课题。本文首先提出一种基于形式化的跨主体网构件漏洞检测框架,考虑构件间错误传播情况,构建形式化模型,在此基础上,按照转换规则获得Nu Smv(New Symbolic Model)模型,结合这两种模型对构件逻辑以及功能的进行测试。在此之后,深入研究测试用例生成方法,通过对测试需求的分析构建测试需求模型,并通过模型生成用例需要的标记迁移系统,最终形成一套符合软件测试工作需求的用例生成方法。同时,以本文的研究为基础,设计并实现了基于形式化的跨主体网构件漏洞检测原型系统。本文的主要工作如下:1、提出了基于形式化的跨主体网构件漏洞检测框架,在此框架中,首先选择了单子作为抽象计算的媒介,并且根据构件运行时的调用情况,使用形式化描述语言构建出构件运行过程中产生错误后的错误传播模型。接着分析了构件运行时产生的错误种类,将其分为了显式漏洞以及隐式漏洞,并且分别设计检测算法。然后,深入研究形式化语言与Nu Smv语言之间的语法语义,根据转换规则,通过4个方面的转换,设计了一种将形式化模型转换至Nu Smv模型的转换方法,对系统的功能上可能存在的安全漏洞进行进一步测试。提出的方法也通过实验证明可以较好地检测出构件漏洞。2、提出了一种基于测试需求模型的测试用例生成方法,首先选取被测系统的特征,并且量化这些特征,给出测试特征模型视图。然后选择被待测系统的测试目标并对其进行划分,分组完成后,以某个具体测试目标为对象对其节约束标注,并给出测试目标分组及描述模型视图。接着选取测试目标节点,具体分析后生成测试目标描述模型视图。最后筛选出测试需求关注的构件,并给出基于被测系统构件的测试需求描述模型视图。在获取了上述四个模型视图之后,可以构建出测试需求元模型。通过工具给出被测系统的状态图合集,并根据算法将被测系统状态图合集转化为被测系统的标记迁移系统,随后将测试目标描述模型转化测试目标的标记迁移系统,再通过标记迁移系统生成测试用例。最终通过实验证明本文提出的方法可以优化迁移路径,生成较少的测试用例。3、设计并实现了基于形式化的跨主体网构件漏洞检测原型系统。该原型系统的具体模块为:组件分析模块、形式化验证与测试模块、测试需求建模模块和测试用例生成模块。同时该系统贯穿人性化设计思想,便于操作。