安全数据库管理系统测试用例生成方法技术方案

技术编号:2854653 阅读:264 留言:0更新日期:2012-04-11 18:40
本发明专利技术首次提出了一种用于生成安全数据库管理系统测试用例的系统化、可操作的方法,包含如下步骤:1)生成测试规约,依据描述系统操作功能的形式化规约与操作的安全公理要求生成系统中各个操作的测试规约;2)生成测试模板,按照一定的重写规则对测试规约进行等价变换,将其表示成析取范式形式,从而将操作的测试规约等价表示为一组测试模板;3)类型划分,对系统中存在的类型进行启发式等价变换,进一步细分每个测试模板所代表的测试空间;4)生成测试向量,检验各测试子域,并将其实例化,生成相应的测试向量。该方法以被测系统的安全模型为依据,测试的结果具有完备性、科学性、可重复性和内在一致性。

【技术实现步骤摘要】

本专利技术属于计算机软件的测试与评估领域,主要涉及安全数据库管理系统(SecureDataBase Management System,简称SDBMS)的测试与评估,更确切地是基于SDBMS安全策略模型的高安全等级。
技术介绍
软件测试是检验软件实现与其功能规约之间的一致性、并保证软件质量的一种有效手段。在基于安全评估标准实现信息安全产品评估的过程中,评估方对安全系统的安全功能实施全面、系统的第三方测试是评估中一个不可缺少的重要环节。但由于多种原因,目前独立的安全功能测试在我国安全数据库管理系统评估中并没有占据重要的地位。其关键问题在于如何实现测试用例的组织与设计,目前缺乏一种系统的方法快速生成针对特定信息安全产品/系统(包括SDBMS)的测试用例集。由于软件著作权利等限制,第三方独立测试大多采用基于规约的测试。系统规约来源于系统需求,它完整地定义了系统的行为。基于规约的测试可以确定输入输出之间的影响关系,有效保证软件功能测试的全面性。形式化规约是系统规约的一种更为精确的表达形式,能更好地消除系统需求中的二义性。同时,形式化规约提供一种规范的表达形式,因而便于对其进行自动化处理。依据形式化安全规约自动生成测试用例将大大的减少测试工作量。目前存在的一种做法是,通过功能规约建模,按照一定的重写规则划分测试空间,自动生成测试用例。然而,上述方法在针对SDBMS系统的测试评估中直接应用会导致一些特殊问题上述形式化功能规约重写规则(或是启发式)纯粹只与语法相关,与语义无关,因此产生的测试用例缺乏针对性,难于发现具体系统中的问题。另外,SDBMS系统中每个操作的输入变量空间有限,但系统内部状态空间十分庞大,几乎是无限的。上述方法只适用于较小规模的系统,也不能直接应用于SDBMS系统的测评。更为重要的是,对于包括SDBMS在内的大多数信息安全产品,系统规约并不能真实地反映现实系统的行为。因为系统中的操作除了要完成其预定的功能外,同时必须满足安全策略要求。安全策略描述一个信息安全产品(或系统)所要保护的对象,以及采取的所有保护措施。存在不同抽象层次的安全策略,如系统的安全目标,与系统的安全策略模型等。高安全等级SDBMS中存在形式化的安全策略模型。另一种做法是通过对非形式化的安全目标建模,建立精确的形式化安全功能模型。这种做法存在的问题是因为存在测评人员的人工建模过程,所以模型与最终的测试结果严重依赖于建模人员对开发者提供的非形式化的安全目标的正确理解。另外,安全目标中的安全策略粒度比较粗,需要测评人员将安全策略中的主客体与实际系统对象一一对应。
技术实现思路
针对上述问题,本专利技术的目的在于提供一种基于SDBMS安全策略模型的测试用例生成方法。该测试方法的基本前提要求包括1.一个SDBMS安全策略模型该模型的正确性经形式化工具证明。一个典型的形式化SDBMS安全策略模型中具备以下要素(1)状态集(STATES),描述系统合法状态;(2)安全公理集(ANXIOMS),安全公理是模型中定义的一组性质,某个系统状态S是安全的当且仅当它满足这些性质;(3)操作集(OPS),系统状态的转换由系统操作实现,每个操作都是受控的,只有在其产生一个安全状态时,才允许其执行,即它满足模型中的所有性质;(4)安全定理集(THEOREMS),可以证明的抽象安全模型所满足的一些安全性质。2.待测SDBMS产品一套该产品依据前述SDBMS安全策略模型实现,两者经开发者确认保持一致。3.待测SDBMS的高层规约,以及该产品的具体接口定义文档。本专利技术所提供的基于SDBMS安全模型的测试用例生成方法是基于以下的构思形式化安全策略模型是生成SDBMS安全功能测试用例的基础,生成测试用例方法的基本思想是确定测试状态空间,并对测试空间(包括输入状态空间以及中间状态空间)进行划分。因为根据测试理论中的统一假设(unified hypothesis)思想,每个划分中的所有输入与状态的表现应该相同。因此在每个划分中选取其中的一个或几个实例进行测试。本方法中包括两类测试空间的划分策略一类是子域划分。将测试空间划分成测试子域。每个子域由一个抽象的测试模板描述;另一类是类型划分。将变量所属的类型值划分,测试模板被实例化为具体的测试用例。具体来说,该方法包括以下四个步骤步骤一生成测试规约。因为生成测试用例的前提是精确、完整的形式化测试规约,所以在步骤一中必须依据描述操作功能的形式化规约与操作的安全公理要求等生成测试规约。步骤二生成测试模板。步骤二通过测试规约重写对测试规约所限定的测试空间进行子域划分。子域间互不相交,并且每个测试子域对应一个测试模板。步骤三类型划分。步骤三提供与步骤二不同的划分方式——类型划分。类型划分在测试子域的基础上进一步划分测试空间。步骤四生成测试向量。综合上述两种划分方式,步骤四中检验各测试子域,并将其实例化,生成相应的测试向量,构成一个完整的测试用例。下面以Z语言描述的SDBMS模型为例说明上述四个步骤的内容,该步骤思想可以自然地应用于其他形式化语言描述的SDBMS模型,此处Z语言仅用于说明本
技术实现思路
,对本专利技术不构成任何限制。步骤一生成测试规约SDBMS系统中一个操作的测试规约全面、准确地反映了该操作的行为。具体来说,SDBMS安全模型操作集中某个成员操作op的测试规约由以下三部分构成(1)操作op在SDBMS模型中的基础定义操作op在SDBMS模型中的基础定义的声明部分包括操作的输入变量集合ins,输出变量集合outs,以及操作前后的中间状态变量集合Δstate。操作基础定义中的谓词部分可按语义分为两类一类是操作op发生的预条件约束,标记为P;另一类是该操作所导致系统状态变化,标记为Q。它们的含义是当且仅当预条件约束P满足时,操作op执行,正确执行后导致系统的状态变化满足Q。例如,以Z语言shcema形式表示的操作op的基础定义为操作的形式化定义必须满足一致性要求与完整性要求。一致性要求指操作的预条件约束是可满足的;完整性要求指不存在任何遗留的定义域,它的操作结果没有定义。若在操作基础定义上补充操作约束不满足时的描述,增添如上述定义操作non_op,Success,与Fail。则构成如下形式的操作 因为pre op_full=true,操作op_full为一个一致且完整的操作。(2)SDBMS模型中与操作相关的安全公理(集)SDBMS安全策略模型中的大多数操作都必须满足特定的安全公理(集)。例如某个SDBMS安全策略模型要求数据对象上的插入、删除操作应该满足基于角色的访问控制模型中的静态约束与动态约束。操作op必须满足的安全公理集表示为函数axioms(op)。安全公理通常表现为谓词约束,它与系统定义的安全策略直接相关,反映系统所要求的安全性质。本方法将安全性质约束与操作自身语义约束区分,使得SDBMS安全策略模型结构更清晰。加入安全公理约束后的操作op的基础定义及补充定义分别调整为op′与non_op′ 类似的,加入安全公理约束后完整的操作表示为 (3)系统相关中间状态变量中存在的固定约束实际上,操作op除了受预条件P约束外,还必须满足一些与操作非直接相关的约束。这些约束限制系统中间变量之间的关系,只有满足这些固定约束的状态才可本文档来自技高网
...

【技术保护点】
一种安全数据库管理系统测试用例生成方法,包含如下步骤:1)生成测试规约,依据描述系统操作功能的形式化规约与操作的安全公理要求生成系统中各个操作的测试规约;2)生成测试模板,按照一定的重写规则对测试规约进行等价变换,将其表示成 析取范式形式,从而将操作的测试规约等价表示为一组测试模板;3)类型划分,对系统中存在的类型进行启发式等价变换,进一步细分每个测试模板所代表的测试空间;4)生成测试向量,检验各测试子域,并将其实例化,生成相应的测试向量。

【技术特征摘要】
1.一种安全数据库管理系统测试用例生成方法,包含如下步骤1)生成测试规约,依据描述系统操作功能的形式化规约与操作的安全公理要求生成系统中各个操作的测试规约;2)生成测试模板,按照一定的重写规则对测试规约进行等价变换,将其表示成析取范式形式,从而将操作的测试规约等价表示为一组测试模板;3)类型划分,对系统中存在的类型进行启发式等价变换,进一步细分每个测试模板所代表的测试空间;4)生成测试向量,检验各测试子域,并将其实例化,生成相应的测试向量。2.如权利要求1所述的方法,其特征在于,所述的测试规约包括操作在系统安全模型中的定义;系统安全模型中与操作相关的安全公理集;系统相关中间状态变量中存在的固定约束。3.如权利要求1所述的方...

【专利技术属性】
技术研发人员:张敏冯登国徐震吕双双陈驰黄亮
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1