一种基于行为模型的软件安全性测试用例生成方法技术

技术编号:5153354 阅读:594 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于行为模型的软件安全性测试用例生成方法,包括如下步骤:(1)确定软件安全性测试需求;(2)使用测试需求行为模型对安全性测试需求进行描述;(3)使用UML状态图对测试需求行为模型进行描述;(4)将UML图状态图转换为FSM;(5)基于FSM特征序列自动生成安全性测试用例。本发明专利技术提出的基于行为模型的软件安全性的测试用例生成方法,重点从SSD行为预防机制、SSD行为检测机制和SSD行为响应机制展开安全性测试,克服了传统软件安全性测试的片面性和需求不完整,保证了测试的有效性。同时,发明专利技术提供了测试用例的自动生成方法,减少了测试人员的工作量,提高了测试的效率和自动化程度,保证了测试效果。

【技术实现步骤摘要】

本专利技术涉及软件测试方法,尤其涉及一种基于行为模型的软件安全性测试用例生 成方法。
技术介绍
近年来,软件安全性事件层出不穷,造成的危害也越来越大。人们往往把主要精力 集中在网络安全技术和信息系统安全框架上,但最新研究表明近年引发严重安全危机的绝 大多数都是软件安全问题,其根本原因在于软件存在安全性缺陷。统计表明,最常见的10 种软件安全性缺陷造成了 75%的安全漏洞。软件测试作为保证软件质量的重要途径,对提高软件安全性具有重要意义,其中 关键在于安全性测试方法的实用性和有效性。传统的软件安全性测试源自功能测试技术, 以软件安全性功能需求为依据确定测试需求,采用功能测试中等价类划分,边界分析等方 法进行规格功能点的验证。然而,在实际应用中,一方面,用户通常难以完全表达安全性需 求,软件需求文档中的安全性需求表达往往达不到测试所需的详细程度;另一方面,用户更 关心软件不应该出现何种危险行为,但需求文档中往往缺乏否定场景的描述,或者对恶意 数据输入域没有实现全覆盖。因此软件安全性测试行为实际上可以分为两种正向测试行 为和反向测试行为。正向测试行为即传统使用的源自软件安全性功能需求的测试,包括对 数据机密性、完整性、可用性、不可否认性、身份认证、授权、访问控制、审计跟踪、委托、隐私 保护、安全管理等安全需求的验证;反向测试需求行为即从外部攻击者角度模拟攻击者利 用安全性缺陷进行攻击的测试行为,主要检查软件抵御攻击的能力及受到攻击后的响应行 为。由此可见,传统的软件安全性测试是不完全的,缺少对否认场景和恶意输入等行为的考 虑,也缺乏对典型软件安全性缺陷的针对性测试。在软件测试的所有开销中,约有40%的工作量花在测试用例上,包括生成测试用 例和检查测试结果。人们提出了一些测试用例自动生成方法,但距离实用还有很大距离,这 也是目前制约软件测试技术发展的主要因素之一。目前在测试行业内,大都采用人工方式 或计算机辅助方式生成测试用例,这两种方法的缺点主要有编写和生成测试用例需要花 费大量的时间,测试效率低且缺乏规范性;对测试人员素质要求高,且要求测试人员非常熟 悉待测软件;测试完全性和测试效果难以保证。由于人工生成测试用例占据了大部分的时间,因此测试用例的自动生成一直是软 件测试所追求的目标之一。这是一个极为复杂的问题,国内外大量研究人员为此付出了大 量努力,但效果并不非常理想。就目前研究水平而言,完全取代人工编写的测试用例还不太 现实;但其成功解决对提高软件质量,缩短开发时间都具有十分重要的理论意义和使用价值。
技术实现思路
专利技术目的为了克服现有技术中存在的不足,本专利技术提供,借助测试需求行为模型来同时描述正向测试行为和反向测试 行为,提高安全性测试的规范性、覆盖率和针对性;从行为模型出发自动生成测试用例,提 高了软件测试的效率,降低了测试人员工作量。技术方案为实现上述目的,本专利技术采用的技术方案为(1)确定软件安全性测试行为需求。(2)使用测试需求行为模型对安全性测试需求进行描述测试需求行为模型通过 对SSD行为预防机制、检测机制和响应机制的描述,包含了从测试角度分析的安全功能和 外部攻击行为两方面内容,该步骤具体包括如下步骤(2-1)分析确定SSD (Software Security Defects,软件安全性缺陷)测试行为预 防机制、测试行为检测机制和测试行为响应机制。测试行为预防机制即测试行为前部分,主要描述软件系统在需要覆盖的SSD被激 活之前所应该具有的状态和行为;测试行为检测机制即测试行为过程部分,要描述软件系 统怎样对基于SSD的非法访问进行检测;测试行为响应机制即测试行为后部分,主要描述 在正确的检测完SSD测试行为后软件系统应该具有的状态和行为,从而防止SSD测试行为 再次被执行。(2-2)对步骤(2-1)中的三种机制,分别描述三种机制的三个阶段行为,即前置条 件、处理行为和后置条件;测试行为预防机制中包括防止SSD测试行为的前置条件、防止SSD测试行为前软 件系统可以进行的预防活动以及防止SSD测试行为的后置条件;测试行为检测机制中包括 测试SSD测试行为过程的前置条件、测试SSD测试行为过程的检测场景、测试SSD测试行为 过程的检测结果,即测试SSD测试行为过程的后置条件;测试行为响应机制中包括测试SSD 测试行为后前置条件、测试SSD测试行为后响应场景、测试SSD测试行为后响应行为以及测 试SSD测试行为后后置条件。(3)使用UML (Unified Modeling Language,统一建模语言)状态图对测试需求行 为模型进行描述,测试需求行为模型可以用图形化形式表示出来,以方便测试人员了解其 结构和内部流程。但这种图形形式不是规范化的,不利于作为交流和自动生成测试用例的 基础,因此需要使用UML图对其进行规范描述。由于测试需求行为模型图形和状态图较为 类似,因此使用状态图对其进行描述。该步骤具体包括如下步骤(3-1)分别将测试需求行为模型中的行为预防机制、行为检测机制和行为响应机 制的三个阶段行为映射为UML状态图中的三个顶层复合状态。UML状态图中可以包含多个状态层次,在描述中使用顶层状态图的复合状态描述 测试需求行为的三种机制,使用状态子图描述机制中的处理过程。(3-2)依据典型安全性缺陷在每个阶段行为中的处理过程,将三个阶段分别映射 为UML状态图中的行为预防状态子图、行为处理状态子图和行为响应状态子图。在状态子图描述中,需要对行为机制的前置条件、处理行为和后置条件进行细化, 使其分别对应一至几个子状态,再根据需求行为模型中的关系依次相连。(3-3)如果需要,可以将步骤(3-2)中三个子图中的前置条件、处理过程和后置条 件部分进一步细化为二级子图。对于处理行为比较复杂的行为机制,可以将处理行为再次映射为一个复合状态,而其内部处理过程使用二级子状态图进行描述。(4)将UML图状态图转换为FSM(Finite State Machine,有限状态机),UML状态 图提供了测试需求行为描述的规范性,但UML只是一种半形式化的语言,直接生成测试用 例使用限制较多,因此将其转换为形式化的FSM。该步骤具体包括如下步骤(4-1)将 UML状态图存储为 XMI (XML Metadata Interchange,XML 元数据交换)文 本格式。XMI使用XML(extensible Markup Language,扩展标记语言)提供元数据信息交 换的标准方法,规范了如何从UML模型生成XML文档。现有不少UML建模工具都支持将UML 模型直接存储为XML格式,如MagicDraw UML。(4-2)依据公开的文本转换算法将XMI格式的状态图转换为SCXML (State ChartXML,状态图XML)格式,后者即FSM的文本表示。SCXML是一种基于Harel状态表的状态变迁语言,提供了通用状态机的描述方法, 可以用来表示FSM。文本转换算法可参见《计算机科学》杂志2009年7月刊文章《UML模型 到FSM模型的转换》。也可以使用IBM公司的Modeling and Integration Tools forState Chart XML工具和Rational公司的Software本文档来自技高网
...

【技术保护点】
一种基于行为模型的软件安全性测试用例生成方法,其特征在于:所述方法包括如下步骤:(1)确定软件安全性测试行为需求;(2)使用测试需求行为模型对安全性测试需求进行描述,包括:(2-1)基于SSD分析确定其行为预防机制、行为检测机制和行为响应机制;(2-2)对步骤(2-1)中的三种机制,分别描述三种机制的三个阶段行为,即前置条件、处理行为和后置条件;(3)使用UML状态图对测试需求行为模型进行描述,包括:(3-1)分别将测试需求行为模型中的行为预防机制、行为检测机制和行为响应机制的三个阶段行为映射为UML状态图中的三个顶层复合状态;(3-2)依据典型安全性缺陷在每个阶段行为中的处理过程,将三个阶段分别映射为UML状态图中的行为预防状态子图、行为处理状态子图和行为响应状态子图;(4)将UML图状态图转换为FSM,包括:(4-1)将UML状态图存储为XMI文本格式;(4-2)依据文本转换算法将XMI格式的状态图转换为SCXML格式,即FSM的文本表示;(5)基于FSM特征序列自动生成安全性测试用例,包括:(5-1)对FSM进行预处理,所述预处理包括非完全FSM的完全化、非精简FSM的最小精简化和连通性说明,具体包括:(5-1-1)为规约中没有出现的输入增加定义,达到FSM的完全化;(5-1-2)去除FSM中的冗余状态,使用等价的精简FSM取代原FSM;(5-1-3)对FSM中所有状态可达性和可复位性进行检查和说明;(5-2)构造FSM的UIO树,并基于UIO树为FSM中的每个状态sj生成UIO特征序列,具体包括:(5-2-1)从FSM的初始向量出发,通过定义路径向量和扰动函数,产生新的结点,构造UIO树;(5-2-2)遍历整个UIO树,对每一个单一向量叶结点,将从树根到该叶结点所形成的输入/输出序列连接为该单一向量初始向量对应状态的UIO序列;(5-2-3)对每个状态,选取最短的一个UIO序列为其特征序列;(5-3)基于UIO特征序列,对FSM的每一个状态迁移生成使用测试序列表示的测试用例,具体包括:(5-3-1)对FSM中的每个状态迁移(s↓[i],s↓[j];x/y),使用Dijikstra算法确定s↓[0]到s↓[i]的最短路径,得到s↓[0]到s↓[i]最短输入/输出序列;(5-3-2)依次连接s↓[0]到s↓[j]的输入/输出,得到每个状态迁移(s↓[i],s↓[j];x/y)的测试用例(reset/null...

【技术特征摘要】
一种基于行为模型的软件安全性测试用例生成方法,其特征在于所述方法包括如下步骤(1)确定软件安全性测试行为需求;(2)使用测试需求行为模型对安全性测试需求进行描述,包括(2 1)基于SSD分析确定其行为预防机制、行为检测机制和行为响应机制;(2 2)对步骤(2 1)中的三种机制,分别描述三种机制的三个阶段行为,即前置条件、处理行为和后置条件;(3)使用UML状态图对测试需求行为模型进行描述,包括(3 1)分别将测试需求行为模型中的行为预防机制、行为检测机制和行为响应机制的三个阶段行为映射为UML状态图中的三个顶层复合状态;(3 2)依据典型安全性缺陷在每个阶段行为中的处理过程,将三个阶段分别映射为UML状态图中的行为预防状态子图、行为处理状态子图和行为响应状态子图;(4)将UML图状态图转换为FSM,包括(4 1)将UML状态图存储为XMI文本格式;(4 2)依据文本转换算法将XMI格式的状态图转换为SCXML格式,即FSM的文本表示;(5)基于FSM特征序列自动生成安全性测试用例,包括(5 1)对FSM进行预处理,所述预处理包括非完全FSM的完全化、非精简FSM的最小精简化和连通性说明,具体包括(5 1 1)为规约中没有出现的输入增加定义,达到FSM的完全化;(5 1 2)去除FSM中的冗余状态,使用等价的精简FSM取代原FSM;(5 1 3)对FSM中所有状态可达性和可复位性进行检查和说明;(5 2)构造FSM的UIO...

【专利技术属性】
技术研发人员:黄松任正平姚奕刘晓明惠战伟胡斌洪宇郑长友饶莉萍蒋圆圆袁利华刘艳云
申请(专利权)人:中国人民解放军理工大学
类型:发明
国别省市:84[中国|南京]

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

1