• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 8
    • 下载费用:30 金币  

    重庆时时彩怎样注册网址: 一种测试用例集生成方法.pdf

    关 键 词:
    一种 测试 用例集 生成 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201010116844.4

    申请日:

    2010.03.02

    公开号:

    CN102193858A

    公开日:

    2011.09.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20100302|||公开
    IPC分类号: G06F11/36 主分类号: G06F11/36
    申请人: 中国科学院软件研究所
    发明人: 程亮; 张阳; 冯登国
    地址: 100190 北京市海淀区中关村南四街4号
    优先权:
    专利代理机构: 北京君尚知识产权代理事务所(普通合伙) 11200 代理人: 冯艺东
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201010116844.4

    授权公告号:

    102193858B||||||

    法律状态公告日:

    2013.11.06|||2011.11.23|||2011.09.21

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种测试用例集生成方法,属于操作系统安全技术领域。本方法为:1)从测试需求集SP中取出一安全属性p,取反后输入模型检测器生成该安全属性p的测试序列Tp;2)提取Tp中所有的状态迁移,并与测试需求集中所有已存在的状态迁移进行对比,将状态迁移相同部分记录到集合EI中;3)删除Knownedges或Tp中与集合EI中相同部分的状态迁移;4)对测试需求集SP中所有属性,重复步骤1)~3),生成简并测试序列集;5)将生成的测试序列集实例化,得到测试用例集。与现有技术相比,本发明能更为有效、直接地缩小测试集的大小。

    权利要求书

    1.一种测试用例集生成方法,其步骤为:1)从测试需求集SP中取出一安全属性p,取反后输入模型检测器生成该安全属性p的测试序列Tp;2)提取测试序列Tp中所有的状态迁移,并与测试需求集中所有已存在的状态迁移进行对比,将状态迁移相同部分记录到集合EI中;3)删除Knownedges或Tp中的与集合EI中相同部分的状态迁移;其中,Knownedges为测试需求集中已经存在的状态迁移集合;4)对测试需求集SP中所有属性,重复步骤1)~3),生成简并测试序列集;5)将生成的测试序列集实例化,得到测试用例集。2.如权利要求1所述的方法,其特征在于生成所述测试序列Tp之后,将该属性p从所述测试需求集SP中删除;然后遍历所述测试需求集SP中剩下的所有需求,查找所述测试序列Tp满足的需求并将其从所述测试需求集SP中删除。3.如权利要求1所述的方法,其特征在于所述测试序列Tp=<σ1,σ2,...,σn>,Tp∈TS;其中,TS为测试用例集合,σn为第n个测试序列,第p个测试序列中的第k项表示为σpk,σpk=(Ipk,epk,hold)∈P(N)×E×{0,1,NE},k∈[1.#Tp],#表示求集合的基数,集合用于记录所有包括了状态迁移e的测试序列的编号,Ti为TS中的任意元素,i是测试序列的编号,σim是Ti中的项,m属于集合[1..#Ti],epk为σpk中的状态迁移对(sk-I,sk),hold为标志位,E为包含了所有t∈TS中的状态迁移对(si-1,si)的集合,E(S×S),]]>S为有限状态集合,P(N)为自然数集合。4.如权利要求3所述的方法,其特征在于所述标志位hold的取值方法为:σi为第i个测试序列。5.如权利要求3所述的方法,其特征在于定义函数EDGE(T)={σ:T·σ.2},]]>即测试序列T中包含的所有不带标签的状态迁移,计算交集EI=EDGE(Tp)∩Knownedges,得到状态迁移相同部分的集合。6.如权利要求5所述的方法,其特征在于所述删除Knownedges或Tp中的与集合EI中相同部分的状态迁移的方法为:1)计算集合Replaced={Ti:DTS|σEI·iσ.1},]]>其中,DTS为简并测试序列集;2)如果集合Replaced不为空,则保留其中最长的Ti,删除剩下元素中的EI部分,然后进行步骤3);如果集合Replaced为空,则直接进行步骤3);3)将EDGE(Tp)加入Knownedges集合中,将测试序列Tp加入DTS中,输出所述简并测试序列集。7.如权利要求1或6所述的方法,其特征在于删除Knownedges或Tp中相同部分的状态迁移时,同时记录所删除的状态迁移信息。

    说明书

    一种测试用例集生成方法

    技术领域

    本发明属于操作系统安全技术领域,具体涉及一种测试用例集生成方法。

    背景技术

    随着Internet应用的广泛深入,以及计算机信息系统安全问题的日益凸显,安全操作系统的研究已吸引了越来越多的关注。然而,我们在研究工作中发现,相比于安全操作系统的研发,安全操作系统的测试与验证更是一项紧迫的工作。由于安全模型通常是独立于实现开发的,我们并不能从安全模型的正确性推出其实现是安全的。因此,比较理想的测试方法是采用自动化的方法生成测试用例(参考发明名称:一种可信密码??榈牟馐杂美煞椒捌洳馐韵低?,专利号:ZL?200810104596.4的专利技术文献;一种基于关系的测试用例生成方法,专利号:200810089572.6;参考发明名称:一种实现测试用例自动化运行的方法,专利号:200510132220.0),将用例细化成具体的测试数据后,再利用合适的测试驱动在具体实现上自动运行测试用例,以验证实现与规范之间的一致性。

    安全操作系统测试的自动化的基础是形式化方法。目前已经有很多形式化方法应用于自动化的测试用例生成(参考发明名称:基于模型转换的协议正确性验证和测试方法,专利号:ZL200510002613.X的专利技术文献)。形式化方法中的模型检测技术是一种基于模型的属性验证方法(参考发明名称:用于验证电路的模型检测中的模型抽象方法及其系统,申请号200910083790.3的专利技术文献),它以系统模型和待验证属性或安全需求作为输入,其优点在于验证过程的完全自动化,验证速度快、效率高。如果一个属性不满足,它可以立刻反馈出违反该属性的执行路径。对于安全操作系统测试来说,最后一点尤为重要,因为一个违反安全需求的执行路径直接对应安全模型或安全策略配置上的漏洞,对该路径细化之后就可以直接生成测试用例。然而,由于操作系统状态多,安全需求多,如果不对测试用例进行化简,测试的工作量会非常庞大。

    目前出现的针对测试用例化简的研究可以分为以下三类(参考发明名称:一种测试用例集缩减技术,申请号200910020845.6的专利技术文献):第一类对测试需求集进行化简,这种方法通过寻找测试需求之间以及需求集与测试集之间的相互关系对测试需求集进行化简,这种方法化简方法简单直观,但是没有考虑到测试集中各测试集之间的内在联系,化简效果不太理想。第二类方法对模型检测器的检测算法进行优化,在模型检测器针对某?属性p产生了测试用例后,在该用例的基础上继续探索状态空间,如果发现路径满足新的属性p’,则将p’从需求集中删除,从而达到化简用例集的目的。该方法充分利用了模型检测器的性能,人工干预极少,然而从现有用例探索对新属性的满足性的过程完全是盲目的,而且探索的深度也难以控制:太浅效率难以保证,太深则资源消耗严重。第三类方法对已生成的测试集进行化简,这种方法在模型检测器生成一个测试序列之后寻找该测试序列和已生成测试集之间的内在联系,从而达到化简测试集的目的。这种方法目前仍以寻找不同测试序列中的相同安全状态为主要思路,没有考虑到安全状态迁移的影响,仍有继续化简的空间。

    考虑到目前方法都是以测试路径中的系统状态为操作对象的,而在实际测试中,决定测试集大小的直接因素是状态迁移的数量,而不是状态的数量,如何提供一种简化的测试用例集,以提高安全操作系统的验证效率是目前急待解决的技术问题。

    发明内容

    本发明的目的在于提供一种基于安全状态迁移的测试用例集生成方法。首先将不存在相同安全状态迁移的测试序列组成的测试集定义为简并测试集。接着针对利用模型检测器生成的测试序列,寻找不同测试序列之间存在的相同安全状态迁移,加以化简。在化简的同时记录相关信息,以减少测试集中测试序列的数量;而且在测试失败时,也能根据所记录信息准确定位失败位置。从而最终得到简并测试集并达到尽可能化简测试集的目的。

    本发明的技术方案为:

    一种测试用例集生成方法,其步骤为:

    1)从测试需求集SP中取出一安全属性p,取反后输入模型检测器生成该安全属性p的测试序列Tp;

    2)提取测试序列Tp中所有的状态迁移,并与测试需求集中所有已存在的状态迁移进行对比,将状态迁移相同部分记录到集合EI中;

    3)删除Knownedges或Tp中的与集合EI中相同部分的状态迁移;其中,Knownedges为测试需求集中已经存在的状态迁移集合;

    4)对测试需求集SP中所有属性,重复步骤1)~3),生成简并测试序列集;

    5)将生成的测试序列集实例化,得到测试用例集。

    进一步的,生成所述测试序列Tp之后,将该属性p从所述测试需求集SP中删除;然?后遍历所述测试需求集SP中剩下的所有需求,查找所述测试序列Tp满足的需求并将其从所述测试需求集SP中删除。

    进一步的,所述测试序列Tp=<σ1,σ2,...,σn>,Tp∈TS;其中,TS为测试用例集合,σn为第n个测试序列,第p个测试序列中的第k项表示为σpk,σpk=(Ipk,epk,hold)∈P(N)×E×{0,1,NE},k∈[1..#Tp],#表示求集合的基数,集合?用于记录所有包括了状态迁移e的测试序列的编号,Ti为TS中的任意元素,i是测试序列的编号,σim是Ti中的项,m属于集合[1..#Ti],epk为σpk中的状态迁移对(sk-1,sk),hold为标志位,E为包含了所有t∈TS中的状态迁移对(si-1,si)的集合,E(S×S),]]>S为有限状态集合,P(N)为自然数集合。

    进一步的,所述标志位hold的取值方法为:?σi为第i个测试序列。

    进一步的,定义函数EDGE(T)={σ:T·σ.2},]]>即测试序列T中包含的所有不带标签的状态迁移,计算交集EI=EDGE(Tp)∩Knownedges,得到状态迁移相同部分的集合。

    进一步的,所述删除Knownedges或Tp中的与集合EI中相同部分的状态迁移的方法为:

    1)计算集合Replaced={Ti:DTS|σEI·iσ.1},]]>其中,DTS为简并测试序列集;

    2)如果集合Replaced不为空,则保留其中最长的Ti,删除剩下元素中的EI部分,然后进行步骤3);如果集合Replaced为空,则直接进行步骤3);

    3)将EDGE(Tp)加入Knownedges集合中,将测试序列Tp加入DTS中,输出所述简并测试序列集。

    进一步的,删除Knownedges或Tp中相同部分的状态迁移时,同时记录所删除的状态迁移信息。

    本发明结合模型检测器基于有限状态自动机模型的特点,将待测系统抽象为有限状态自动机(Finite?State?Machine,FSM)模型,而针对系统的一个测试序列则为FSM的一个运行序列。定义如下:

    定义1:系统模型M是个有限状态自动机(FSA),表示为M=(S,S0,L,T,F),其中S是有?限状态集合;S0是初始状态集合,S0S;]]>L是一个有限标签集合;T是转换集合,T(S×L×S);]]>F是最终状态集合,FS.]]>

    定义2.系统M的一个运行t,是一个有序的、可能有限也可能无限的转换集合(序列),表示为

    <(s0,l0,s1),(s1,l1,s2),(s2,l2,s3),...>,

    i,(i0)(si,li,si+1)T]]>

    其中,si∈S,li∈L。模型检测器每产生的这样的一个运行,就对应着一条测试序列(用例)。为了便于表述,我们将测试序列t=<(s0,l0′,s1),(s1,l1′,s2),...,(sn,ln′,sn+1)>,n=#t-1转记为下面的形式:

    t=<σ1,σ2,...,σn+1>.

    其中σi=(li,ei)为二元组,li=l′i-1,ei=(si-1,si),i∈[1..n+1],为状态迁移对,表示系统M由状态si-1迁移到状态si。另记包含了所有t∈TS中的状态迁移对(si-1,si)的集合记为E。即如果存在t∈TS,σ∈t,那么一定有σ.2∈E。

    此外,定义测试需求集为SP={所有待验证的安全需求},测试用例集合为TS={所有待验证的安全需求的测试用例}。那么对于测试需求p∈SP到测试用例集TS的映射为集合Test(p)={t:TS·所有可以满足p的测试用例t},显然pSPTest(p)TS.]]>

    本发明方法所提出的简并测试集(Degenerate?Test?Set,DTS)的定义为:

    定义3.简并测试集(DTS)是这样的测试集:首先,它是TS的一个子集;其次,简并测试集中任意两个测试序列都不包含相同的状态迁移。

    本发明方法包含了三个层次:1)利用模型检测器生成测试序列、2)寻找测试序列与已生成测试集之间的相同状态迁移、3)对相同状态迁移进行处理并将处理结果加入测试集。测试序列的生成需要利用模型检测器运行系统模型M,同时检查M是否满足取反后的安全需求,以产生对应的测试序列,一个安全需求对应的测试序列不会超过一个;寻找相同状态迁移则是将第一步中产生的测试序列中的状态迁移与已生成测试集中所有状态迁移进行比较,相同部分则是需要化简掉的部分;状态迁移处理则是对第二步中发现的状态迁移进行筛选和相关信息记录,既要保证测试集中测试用例数最少,也要保证即使测试失败,也可以根据记录的信息找到导致测试失败的状态迁移。

    本发明的具体步骤如下:

    步骤A:测试序列的生成,从测试需求集SP中取出一个安全属性p,取反后输入模型检测器,如果p成立,则模型检测器生成该安全属性p的测试序列Tp,如果p不成立,模型检测器会报告没有测试序列生成。

    步骤B:寻找相同状态迁移,提取步骤A中得到的每个测试序列中所有的状态迁移,并与测试需求集中所有已存在的状态迁移集合Knowedges进行对比,查找相同的部分,将相同部分记录到集合EI中。

    步骤C:状态迁移处理,这一步骤分为两部分,一方面选择删除Knowedges或Tp中的相同状态迁移EI,另一方面需要记录所删除迁移的信息,以备测试失败时进行错误定位。

    步骤D:结果输出,对需求集SP中所有属性实施以上步骤,最终可以得到简并测试集。从而达到化简初始测试集的目的。

    本发明的积极效果:

    本发明以安全状态迁移作为测试集的化简对象,和传统的以安全状态为对象的测试集化简方法相比,能更为有效、直接地缩小测试集的大小。此外,由于DTS中储存了被化简状态迁移的位置信息,所以在测试序列失败时也可以准确定位未满足的安全需求。

    具体实施方式

    本发明的输入是待验证的系统模型与其所待测试的安全需求。输入信息分为两部分,一部分来源于已经实施的软硬件系统,它可以来自任何一个计算机软件系统及设备,如主机、服务器、入侵检测系统、路由器、防火墙等等。对这些设备上的运行机制经过形式化抽象、提取后得到的数学模型都可作为本发明的输入信息。另一部分来源于这些系统、设备应满足的安全需求或安全属性,如“setuid程序在执行不可信程序前必须放弃root权限”或者“禁止以写模式打开文件到stderr或stdout”等。以上信息要求完整全面,信息越完整,验证结果越准确。通过对输入信息的层层处理和分析,最后得到进一步为实际测试步骤的测试序列。

    下面给出详细过程。

    步骤A:测试序列的生成。

    为了生成满足安全需求p的测试用例,对待测系统建模并进行模型检测,检验在模型各处属性?的满足情况,如果出现反例,则表明存在满足p的测试用例Tp,如果模型检测器找不到?的反例,则表明p是不存在对应测试用例的。一个反例对应一个测试用例。由于模型检测器对于一个p只生成一个反例,因此,一般情况下,利用模型检测器?生成测试用例时,一个待验证全需求p也只对应一个测试用例Tp。

    在为p生成Tp之后,将p从需求集SP中删除,然后遍历SP中剩下的所有需求,检查Tp是否也满足这些需求,如果满足,则将所有Tp满足的需求均从SP中删除。

    步骤B:寻找相同状态迁移。

    对于测试序列Tp=<σp1,σp2,...,σpn>,Tp∈TS,我们将它的每一个项σpk(p为测试序列的编号,k为测试序列p中各个项的编号)由定义2中的二元组构造为一个三元组:

    σpk=(Ipk,epk,hold)∈P(N)×E×{0,1,NE},k∈[1..#Tp]。

    其中,P(N)为自然数集合;E(S×S),]]>表示TS中所有状态迁移对(sk-1,sk)的集合,“#”在集合论中表示求集合的基数,也就是集合中包含元素的数量,集合?用于记录TS中所有包括了状态迁移e的测试序列的编号,Ti:TS表示TS中的任意元素Ti,i是测试序列的编号,σim是Ti中的项,?的意思是“存在这样的自然数m,m属于集合[1..#Ti]”,epk为σpk中的状态迁移对(sk-1,sk),σm.2的意思是三元组中第二个元素,即em,初始状态时Ipk={p},即初始状态时,集合Ipk中只包含自身的序号p;而hold是个标志位

    这样,当在实际测试时,如果某个Tp中的某个状态迁移出错(假设为σpk),只需检查它对应的σpk.1的元素,也就是相应的Ipk集合,那么,所有Ti,i∈Ipk都是无法执行的测试序列;此外,当DTS中所有的状态转移都被遍历一遍之后,可以得到所有失败的测试集合:?由于DTS对不同测试序列中出现的相同状态迁移仅保留一份,然而却存在一个问题:如果拥有相同状态迁移的两个测试序列中有一个在具体测试中被证明不成立,那么另一个测试用例即使通过也不能保证它对应的属性成立。这个问题在现有的以删除测试序列中的冗余状态为手段的测试用例化简方法中也存在,而且并未得到解决。本方法利用failure集合则可以解决这个问题,在TS中所有测试序列都执行完毕之后,failure集合可以收集所有失败的测试序列。

    其次,定义函数EDGE(T)={σ:T·σ.2},]]>即测试序列T中包含的所有不带标签的状?态迁移,函数SEQ(E,T)={e:E|(σ:T|σ.e=e)·σ},]]>即测试序列T中所有包含了集合E中的状态迁移的项,e′表示E中的任意元素;而E(S×S).]]>那么Tp与测试集中已经存在的状态迁移集合Knownedges的交集EI=EDGE(Tp)∩Knownedges就是相同的、需要被化简掉的状态迁移。

    步骤C:状态迁移处理。

    在上一步骤获得EI后,需要对其做一定的处理以获得DTS。具体方法如下:

    1)计算集合

    Replaced={Ti:DTS|σEI·iσ.1}]]>

    从而获得拥有全部EI中状态迁移的测试序列的集合。如果Replaced不为空,则保留其中最长的Ti,删除剩下元素中的EI部分,这样可以保证留在DTS中的EI始终在最长的测试序列中,从而尽可能地削减DTS中测试序列的数量;如果Replaced为空,则无需做此步处理。计算方法为:

    if?then

    TM←thelongest?T∈Replaced;

    forall?T∈Replaced?EXCEPT?TM?do

    T←T-SEQ(Ti,EI);

    end

    end

    2)其次,将EDGE(Tp)加入Knownedges,将Tp加入DTS。计算公式为

    Knownedges←Knownedges+EDGE(Tp);

    DTS←DTS+Tp;

    步骤D:结果输出。

    重复以上步骤,当SP为空时可以得到简并测试集DTS,该测试集与原始的、为每一个SP中的需求生成一个测试序列的测试集相比,拥有更高的化简率,更节省储存空间。只需将DTS中的测试序列实例化,就可得到测试用例对实际系统进行测试。

    尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求?;さ姆段б匀ɡ笫榻缍ǖ姆段?。

    关于本文
    本文标题:一种测试用例集生成方法.pdf
    链接地址://www.4mum.com.cn/p-5865273.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 彩53彩票游戏 荣耀棋牌每天救济金6元 吉林快3走势图电脑板 福彩上海快三 二分彩开奖号 09年大乐透走势图 冰晶科技怎么玩赚钱 浙江6十1怎么中奖 江苏11选5任7技巧 排例五中奖规则 七乐彩开奖号码查询今天码 麻将的规则和玩法介绍 22选5开奖视频 杰克棋牌输了十多万 湖南幸运赛车开奖直播 球探网球吧