CN102033806B - 一种实时嵌入式软件可靠性测试数据生成方法 - Google Patents
一种实时嵌入式软件可靠性测试数据生成方法 Download PDFInfo
- Publication number
- CN102033806B CN102033806B CN2010105878993A CN201010587899A CN102033806B CN 102033806 B CN102033806 B CN 102033806B CN 2010105878993 A CN2010105878993 A CN 2010105878993A CN 201010587899 A CN201010587899 A CN 201010587899A CN 102033806 B CN102033806 B CN 102033806B
- Authority
- CN
- China
- Prior art keywords
- section
- sub
- probability
- relation
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种实时嵌入式软件可靠性测试数据生成方法,属于软件可靠性领域,通过对被测实时嵌入式软件及其硬件的接口和关联环境的分析,整理出输入和输出变量,并建立***分析图,再对输入和输出变量建立使用类,根据被测***的使用情况建立使用剖面与操作描述图,按照建立的使用剖面和操作描述图中的信息组织数据并随机抽样,生成软件可靠性测试数据。本发明的方法清晰地描述软件使用过程和使用输入分布,能够较为高效的自动生成软件可靠性测试数据,提高了软件可靠性测试的效率。
Description
技术领域
本发明涉及软件可靠性领域,具体涉及一种用于实时嵌入式软件可靠性测试的测试数据生成方法。
背景技术
软件的分析、设计和实现过程是引入软件缺陷的过程,而软件测试则是排除软件中的缺陷的过程。软件测试能够发现软件潜在的缺陷,提高软件质量,已经成为了人们的共识。但是常规的软件测试,如单元测试、集成测试、***测试等,旨在发现软件缺陷,却对于软件可靠性的定量度量无能为力。因为软件可靠性与软件的使用情况密切相关,需要在测试中体现出用户对软件的使用情况,是一种基于用户使用情况的统计测试方法。软件可靠性测试可以使用与其它测试方法相同的测试环境,相同的测试结果分析方法,但是必须使用专有的软件测试数据生成方法,在测试数据中体现出软件需求以及用户对软件的使用情况。软件使用剖面正是解决软件可靠性测试数据自动生成的有效方法。
现有的软件可靠性测试数据生成方法主要分为两类,基于Musa软件操作剖面的方法和基于马尔科夫链过程的剖面构造方法。基于Musa软件操作剖面的方法实质上是对输入空间元素的无条件概率分布的描述,没有涉及输入变量之间相互依赖关系,进而不能反映时间因素对软件使用的影响,不能准确地刻画软件的使用过程。而基于马尔可夫过程的剖面构造方法,虽然从一定程度上反映了软件输入的依赖关系,但是所假设的软件使用的无后效性,并不能准确地反映软件的历史使用过程。由于目前软件,特别是嵌入式软件,使用复杂,输入之间的约束关系较多,因此需要一种更为有效,既能描述出复杂的软件使用情况,也能有利于软件可靠性测试数据生成的方法。
发明内容
本发明针对实时嵌入式软件的可靠性测试,提出一种实时嵌入式软件可靠性测试数据生成方法,以软件使用剖面的形式,对用户使用软件的情况进行建模,很好的解决时间约束、条件约束和操作概率分布等情况,具有很强的操作性和实用性,能够有利的支持软件可靠性测试工作。
一种实时嵌入式软件可靠性测试数据生成方法,具体是采用以下步骤实现:
步骤一、通过分析被测***的外部接口,整理输入和输出变量,根据被测***的交联环境分析出用户类型,为被测***建立***分析图;
步骤二、对输入和输出变量建立使用类,并用使用类图将使用类之间的关系表示出来;所述的建立使用类是指:针对数字式的接口整理的输入和输出变量根据被测实时嵌入式软件的接口关系建立使用类,针对模拟输入和输出量和彼此不是很相关的离散输入和输出量根据逻辑关系建立使用类;
步骤三、根据被测***的使用情况建立使用剖面,所述的使用剖面由用户剖面、使用模式剖面和使用过程剖面构成,各剖面又包含有子剖面,子剖面中也能够包含有子剖面,各剖面与子剖面都为由剖面元素和使用关系构成的有向图;
步骤四、在使用剖面基础上,对每一个操作建立操作描述图,对于离散型输入采用步骤图的方式描述,对于连续型的输入采用连续图进行描述;
步骤五、按照建立的使用剖面和操作描述图中的信息组织数据并随机抽样,生成软件可靠性测试数据,软件可靠性测试数据的生成方法有两种:操作序列确定型生成方法和操作序列变化型生成方法。
本发明的优点与积极效果在于:(1)本发明提供了一套从被测软件分析、数据封装、使用建模到随机抽样生成测试数据的全过程方法,填补了当前嵌入式软件可靠性测试缺乏可视化的软件使用剖面建模方法的空白;本发明的方法能够清晰的描述软件使用过程和使用输入分布的软件使用剖面,是软件可靠性测试数据生成的解决方案;(2)本发明提出的软件使用剖面建模方法具有相配套图形化建模符号,能够有利于方法的工程推广;(3)本发明提出的软件使用剖面,在建模完成的基础上,能够较为高效的自动生成软件可靠性测试数据,提高了软件可靠性测试的效率;(4)本发明提出的建模方法,解决了软件可靠性测试中面临的时间约束、条件约束、操作时序和概率分布难以描述等方面的问题。
附图说明
图1是本发明的测试数据生成方法的步骤流程图;
图2是本发明的测试数据生成方法步骤一建立的***分析图的示意图;
图3是本发明的测试数据生成方法步骤二中根据接口关系建立使用类的示意图;
图4是本发明的测试数据生成方法步骤三所建立的一个子剖面的示意图;
图5是建立的使用剖面图的各要素的示意图;
图6是本发明的测试数据生成方法步骤三使用剖面建模方法的步骤流程示意图;
图7是本发明使用剖面建模方法中用户剖面的一个示例图;
图8是本发明使用剖面建模方法中使用模式剖面的一个示例图;
图9是本发明使用剖面建模方法中使用过程剖面的一个示例图;
图10是本发明的测试数据生成方法步骤四中对离散型输入的操作描述示意图;
图11是本发明的测试数据生成方法步骤四中对连续型输入的操作描述示意图;
图12是本发明的测试数据生成方法采用操作序列确定型生成测试数据的流程图;
图13是采用操作序列确定型生成测试数据遍历使用剖面时转换为对多叉树的遍历的示例图;
图14是本发明的测试数据生成方法采用操作序列变化型生成测试数据的流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面通过具体实施方式对本发明作进一步的详细和深入描述。本发明的测试数据生成方法的具体过程,如图1所示,包括以下步骤。
步骤一、建立***分析图,通过分析被测***的外部接口,整理出输入输出变量,根据被测***的交联环境分析出用户类型。被测***是指被测***的实时嵌入式软件与被测***的硬件整体。
建立***分析图是对被测***及其交联环境进行客观描述和分析的过程,首先分析被测***的外部接口,然后根据每个外部接口抽象整理出输入和输出变量,最后分析用户类型。
在***分析图中,将被测***作为一个黑盒,被测***与交联***,以及被测***与使用者之间的数据交互,实质上是通过被测***的外部接口来实现的。在外部接口分析过程中,可以为数据交互关系定义具体的接口类型。所述的外部接口指的是实时嵌入式***的外部硬件接口,如A/D、D/A、RS422、ARINC429和MIL-STD-1553B等。
在分析出外部接口后,便可以根据每个外部接口抽象整理出输入变量和输出变量。比如以外部接口RS422为例,通过RS422进行四个字节数据的传输,传输的前两个字节表示设定的高度,后面两个字节表示传输的模式,那么就整理出两个输入变量:“高度设定”和“传输模式”。A/D、D/A等信号通常代表一种类型的输入,可以由一个输入量表示,如一个A/D信号表示深度,那么就用一个输入变量“深度”来表示。根据数据交互关系的方向,还可以描述出输入变量、输出变量的源和目的。
在建立***分析图时,分析出了被测***的使用者,通常使用者代表了某一领域的用户,在此基础上,可以根据使用软件的不同特点划分出更为详细的用户类型,为后续的建立使用剖面图服务。
所述的***分析图包含元素:被测***、***使用者、参与者,以及数据交互关系。如图2所示,被测***(System Under Test,简称SUT)是软件可靠性测试针对的目标,由于实时嵌入式软件与硬件关系非常密切,所以实时嵌入式软件都是与被测***硬件一起参与测试。SUT可以代表一个独立的***,或者是多个***组成的交联***,在***分析图中以一个黑盒进行表示,如图2所示。被测***具有名称、说明等属性,还包含工作周期、输入输出列表等元素信息,其中输入输出列表中列举的为各输入变量和输出变量,工作周期是指软件运行的任务周期。
在SUT的边界之外的任何与SUT交互的事物都是参与者,如图2所示。参与者为被测试***提供支持,保证***正常运行。对于实时嵌入式软件的可靠性测试来说,被测***的交联设备用参与者来表示,在测试过程中通过仿真这些参与者来实现为被测***提供数据。通过分析***的参与者能够获得与被测***相关的交联信息,此交联信息作为分析输入变量的依据。以测试航电子***任务机为例,大气机、惯导、外挂物管理机等都与其产生了交互,所以都可以定义为参与者。所述参与者的属性主要包括:名称、类型和特性说明。
如图2所示,***的使用者是***的特殊参与者——***对其提供价值,而不是那些仅仅为***提供服务的用户。***的使用者使用软件***达到自己的目的,即***是为其提供服务的。使用者可以是***的用户、外部***和自身的控制器。确定使用者可以辅助测试人员站在***使用者的角度分析软件的使用情况,进而利于软件功能或操作的分析。所述定义的使用者与参与者一样,具有名称、特性说明和类型等属性。
如图2所示,数据交互关系用有向箭头表示,代表使用者、参与者与被测***之间的数据流关系。在建立数据交互关系时,需要同步分析数据类型,建立输入变量清单和输出变量清单,为后续步骤作准备。数据交互关系的属性包括源和目的,元素包括数据交互关系的类型,由它决定是单向交互还是双向交互。
步骤二、建立使用类图。
使用类图对输入和输出变量进行类封装,建立使用类,以使用类及其关系进行表示。建立使用类有两种方式:一种是通过根据实时嵌入式软件***的外部接口关系进行建立;一种是根据逻辑关系进行建立。
根据被测***的接口关系建立使用类,可以使建立的使用类与被测***的接口数据相对应,建立的过程比较直观,生成测试数据时也只需将使用类中的数据成员组织成需要的格式就可以满足测试的需要。这种使用类的建立方式比较适用于一些数字式的接口,比如MIL-STD-1553B、ARINC429和ARINC629等总线,可以从它们的数据帧的格式中直接获得使用类数据成员的信息。如图3所示,根据某总线数据帧所代表的意思抽象出使用类,该某总线数据帧具有8位字节,第1位表示轮转WOW,第2到4位表示子模式SubMod,第5位表示飞行结束EOF,第6到8位表示主模式MainMod,抽象出来的使用类包括4个元素:主模式MainMod,数值型integer;子模式SubMod,数值型integer;轮转WOW,布尔型Boolean;飞行结束EOF,布尔型Boolean。这些接口信息可以从实时嵌入式软件的接口控制文件(ICD)中获得。使用类实质上实现了对实时嵌入式软件接口控制文档(ICD)的建模。通过使用类,很容易地建立起逻辑意义上的输入变量、输出变量与测试环境中物理量的映射关系,为实现测试数据由测试环境无关到测试环境相关打下了基础。
根据逻辑关系建立使用类主要是利用面向对象的思想,从输入时间和逻辑关系的角度将输入变量作进一步的封装,从输出时间和逻辑关系的角度将输出变量作进一步的封装,使其便于表达和组织。这种建立使用类的方法比较适用于模拟输入和输出变量和彼此不是很相关的离散输入和输出变量,也可以将时间上一致的模拟量封装成同一个使用类。
使用类是对具有一定共性的输入变量、输出变量及其关系进行面向对象的封装,包含的元素有公有变量、私有变量以及成员函数列表。
将输入变量和输出变量封装到使用类中,对于测试数据取值建模具有直接的意义,将简化取值建模的过程,使描述过程中不需要逐一的对单个的输入变量或者输出变量取值规律进行描述。
步骤三:建立使用剖面图。
使用剖面(use profile)是软件各种使用情况及其发生概率的集合,它采用一种以操作为基本元素的网络体系结构,不但表现出操作及其发生概率,还表现出由操作序列构成的使用过程及其发生的概率,是一种动态的操作剖面,用UP表示。UP由若干的使用子剖面构成,子剖面用SUP表示。各个SUP并非相互独立,而是按照一定的使用关系结合在一起。SUP是分级的,可以包含其它SUP。
由于UP是以层次化网路体系的形式出现的。使用剖面只是一个整体上的称谓,它实际上由若干的SUP构成。,而且每一个SUP都具备与UP相同的性质,可以认为是在该级使用上的UP,因此可以通过对SUP的分析来体现对UP的分析和说明。
SUP构造为由剖面元素和使用关系构成的有向图,表示软件可能的使用情况。SUP中的剖面元素用e表示,剖面元素e具体可以是操作、包、入口、出口或终止,这5类剖面元素分别用o,p,b,s,f表示。使用关系用u表示,具体分为概率使用关系g和顺序使用关系h。本发明中采用如图5所示的图形表示各类剖面元素及使用关系。
为了说明SUP,对剖面元素e和使用关系u进行说明,如图4所示:
入口b表示子剖面的起点,是子剖面所代表的逻辑使用的开始;出口s表示子剖面所代表的逻辑使用的结束;终止f表示的是一次软件使用的退出,即整个使用剖面的结束,相当于顶层使用子剖面的出口;包p是对SUP的封装,一个包就代表着一个SUP;操作o1、o2、o3之间的连线表示操作之间的使用关系;各剖面元素之间的连线上的数值表示转移概率,例如第一种操作o1转移到第二种操作o2的概率是0.2,第一种操作o1转移到包p的概率是0.8。
操作的属性有名称和说明,元素包括前置条件、后置条件、预期结果以及描述图名称。包的属性有名称和说明,元素包括前置条件、后置条件以及对应的子剖面图名称等信息,通过子剖面图的名称与对应的使用子剖面保持连接关系。
使用关系的属性包括源、目的和类型,通过类型来决定是顺序使用还是概率使用;包含的元素有时间(分时间区间和固定时间两种)、概率(顺序使用关系可以但作概率为1的情况处理)、是否是起点等。
将使用子剖面SUP构造为带权有向图,SUP=<E,U>,其中E为使用元素的集合,U是使用关系的集合,那么E中的元素为图的顶点,U中的元素为图的弧,图的弧就是使用关系u,对于任意的弧u∈U都分配一个[0,1]的权值,记做p(u),表示弧发生的概率。在SUP中有且仅有一个入口b和一个出口s,并且入口b的引入数id(b)=0,出口s的引出数od(s)=0。
使用剖面图的分析建立过程如图6所示。使用剖面图由用户剖面图、使用模式剖面图和使用过程剖面图构成,各剖面图又包含有子剖面图,子剖面图中也能够包含有子剖面图。首先从用户信息调查和软件需求信息分析入手,构建成用户剖面UUP和软件的功能列表。然后在用户剖面UUP和功能列表的基础上,分析软件使用的模式,构建使用模式剖面MUP。对每个使用模式分析用户的使用过程,构建出使用过程剖面PUP。由于用户的使用过程非常复杂,所以PUP的由若干个子剖面构成,而且其创建也是一个不断分析迭代的过程。这里提到的UUP、MUP和PUP都是使用子剖面的一种形式,只是根据代表意义的不同而对子剖面的不同命名。
本发明提供一种实时嵌入式软件使用剖面建模方法,如图6所示,具体包括以下步骤:
步骤3.1:对软件的用户信息进行调查,构建用户剖面;同时分析软件的文档,获得软件的功能列表。
首先对用户信息进行调查。所述的用户指的是可能启动***操作的任何人,可以是***预期的用户,也包括维护和管理***的人。要确定用户,首先要根据相关的***业务和市场数据,确定期望的客户类型。用户类型是直接使用产品的人的集合,同一种类型的用户倾向于以相同的方式使用产品。通过用户信息调查,对用户的分类,并得到各种类型用户所占的比例。
然后在用户信息调查的基础上构建用户剖面。用户剖面主要描述各种类型用户的分布,通常是使用剖面的顶层子剖面。在用户信息调查的基础上,为不同类型用户构建一个子剖面,以包的形式在用户剖面中出现。根据调查到的用户比例,设置每个子剖面的概率使用关系。
如图7表示的为某软件的用户剖面,表示该软件10%的情况下是管理员类型用户使用,90%是一般的用户使用。
此外,需要对软件文档分析并创建功能列表。通过软件的需求说明能够直接获得软件的功能列表。然而,在这些功能列表中,有些功能并非为软件的使用提出,比如一些非功能性需求,或者为保证***的正常运行而需要的BIT(Build in test,***自检测),以及一些自动故障报告功能等。这些功能虽然不为软件的用户直接使用,用户不会为实现这些功能而使用软件,但是它们是软件功能正常使用的保证,用户会在软件的使用过程中间接的使用这些功能。所以,可以将从软件需求中获得的功能分为两部分:用户直接使用的功能和间接使用的功能。将能够直接从软件文档中获得的最小功能命名为功能点,所创建的功能列表中列举的都是功能点。通常情况下,用户直接使用的功能点能够用于使用剖面的构造,而间接使用的功能难以在使用中测试,需要通过构造故障剖面等方式来触发这些功能。
步骤3.2:构建使用模式剖面MUP。
软件的使用模式应该在用户类型的基础上进行分析。不同类型的用户对软件的使用有着不同的目的和习惯,在使用模式上有着较大的差异。使用模式是可能会造成软件不同失效模式的软件使用状态,强调软件的使用方式,是站在不同用户的立场上对使用的分类,如软件在高负载和低负载情况下的使用,在正常状态下和在维护状态下的使用等。这种分类使每种使用模式更加关注一种相对独立的使用方式,使分析过程更加具有针对性。使用模式剖面描述了使用模式的概率分布。
使用模式剖面在用户剖面的基础上构造,使用模式采用包的形式表示,统计出各种使用模式被该类型用户使用的比例,为各使用模式设置概率使用关系。如图8所示为管理员类型用户的使用模式剖面,对管理员来说,30%的情况下在维护模式下使用软件,70%的情况是在管理模式下使用软件。
步骤3.3:构建使用过程剖面PUP。对每种使用模式需要通过建立使用过程剖面来描述软件在该模式下的使用过程。实时嵌入式软件的每一个功能点至少可以由一个操作来实现,所以对于步骤3.1中所列出的功能点都可以用一个包来代替,在分析的后期,如果该功能点的实现过于简单,将该包转换为操作。以下是使用过程剖面的建立过程:
a、因为实时嵌入式软件的一次使用过程通常被定义为***上电到任务完成的过程,所以使用过程剖面的建立从最初的***上电开始分析。
b、分析上电后可以执行的后续功能。由于使用剖面采用的是分级子剖面描述的方式,因而可以在子剖面分级的过程中不断细化。越靠近顶层的子剖面内容越简单越容易描述,所以最好将后续功能分为几个大类,用包来表示,然后再在包所代表的子剖面中细化该功能的使用过程,形成多级子剖面,每个子剖面代表一个功能点。
c、在确定了子剖面以及子剖面中所包含的内容后,需要为每一级子剖面建立使用关系。
在为子剖面建立使用关系的同时,可以对功能点对应的子剖面进行细化,细化可以采取如下的原则:
如果子剖面中的操作或包所代表的逻辑任务有条件的执行,那么需要为其设置前置条件或后置条件。
所述的前置条件指的是操作或包要被执行,必须满足的条件。所述的后置条件是指操作或包执行后必须满足的条件。通常前置条件是决定剖面分支的因素,而后置条件是抽样之后决定生成的测试数据是否满足要求的因素。
d、为使用过程剖面中的各元素分配概率,采用下面两种途径来获取发生的概率:
(1)统计相似产品的使用方式或某一产品从前版本使用方式来获得操作项的概率信息。
(2)调研用户对软件的使用方式,估计软件中各操作项的发生概率。
e、描述使用过程剖面中的各个元素之间的约束关系。
使用过程剖面中的各个元素之间可能存在时间约束、数值条件约束、数值运算约束和使用约束关系。时间约束指的是将时间作为约束条件,由时间决定被约束对象的测试输入取值。数值条件约束指将输入或输出的值作为被约束对象输入的判断条件,由条件的真假来决定是否进行输入,或者采用哪一个输入;数值运算约束指的是输入输出值直接参与被约束对象的取值运算,输入量之间的函数运算关系就是一种运算约束。使用约束指的是在使用过程中,一个输入必须在某使用已经发生之后才能进行的情况。
约束关系的描述采用数学描述或逻辑关系描述的方式进行。如果为自动生成测试数据开发相关工具的话,通常以脚本来描述这些约束关系,并以脚本解释器来自动处理这些约束关系。
使用过程剖面建立完成后,形成的是一个非常复杂的网络结构,可以将剖面转化为矩阵,对网络进行路径检查和概率检查,以保证网络的通顺和概率分配的合理。
如图9所示为一个PUP的例子,该例子中,从加电开始分析,所建立的使用过程剖面图中,除了加电操作,还包括:维护BIT操作、BIT查看操作、数据管理包,各剖面元素之间的连线上的数值表示发生概率,例如从加电操作到维护BIT操作的发生概率为0.2,从数据管理包到BIT查看操作的发生概率为0.7,从数据管理包到自身的发生概率为0.3。
步骤四:在步骤三建立的使用剖面基础上建立操作描述图。
在使用剖面中描述了用户是怎么使用软件,但是还需要描述每个操作具体是由哪些变量或使用类的取值来实现的。每一个操作都应该有一个操作描述图来说明它的实现过程。由于在使用剖面图中已经包含了操作序列的信息,如果操作定义得合理,那么操作描述将变得很简单。但是也有一些复杂的操作,为了实现一个操作需要多个连贯的输入,或者并发输入,那么需要在操作描述中表达出这些信息。
对于离散型输入采用步骤图的方式描述,步骤图如图10所示,沿横轴方向平行的列表示输入步骤,每一个输入步骤中可以有若干个输入单元,通过输入关系决定每一步输入时采用哪一个输入单元,一共有5个步骤(Step),Step1与Step2之间是条件执行关系,Step2与Step3之间是顺序执行关系,Step3与Step4之间是概率执行关系,Step4与Step5之间是顺序执行关系。顺序执行关系只与一个输入单元相连。条件执行关系和概率执行关系根据分支个数与多个输入单元相连。条件转移必须保证各个分支互斥,概率转移必须保证概率之和为1,如图10中Step3与Step4之间有三个转移发生,总的转移概率之和为1。如果步骤之间存在时序关系,那么需要在步骤输入关系中描述时间关系。对于输入单元中的使用类和输入变量的取值,主要通过范围均匀抽样方法得到,设置输入变量或使用类中变量的取值范围或固定的值来实现。有时取值存在多个区间的情况,则为每个区间指定取值概率。
对于操作中的连续型的输入可以采用连续图进行描述。连续图时间坐标的原点为操作发起的时刻,描述过程中根据输入变量随时间的变化规律在坐标轴上描点,各个点之间的线段将采用直线或曲线拟合的方式绘制,如图11所示,有8个输入变量对应图中的8个点,各点之间用直线连接一起,表示出输入变量随时间的变化规律,对线段端点的时间和值的抽样主要采用偏移量抽样方法得到。坐标图上的每一个坐标转折点(时间,值),都可以描述偏移范围。所谓偏移范围就是在设定的基础上,时间和值能够发生波动的范围。
步骤五:抽样生成测试数据。在建模都完成之后,可以通过随机抽样生成软件可靠性测试数据。
软件可靠性测试数据的生成过程,就是按照建立的使用剖面图和操作描述图中的信息组织数据并随机抽样的过程。因为可能存在约束条件和一些数值计算关系,如操作和包的前置条件、操作描述中的分支条件,使用类中的成员函数以及连续操作描述的直线、曲线方程等,它们从逻辑分支和数值计算的角度影响了测试数据的生成,所以测试数据的生成过程并不是简单意义上的随机抽样,还包括逻辑运算和数值的计算。
根据测试数据生成过程中是否能够获得确定的操作序列,可以分为两种不同的测试数据生成方法:操作序列确定型生成方法和操作序列变化型生成方法。
采用操作序列确定型方法生成软件可靠性测试数据的应用条件包括:A.使用子剖面中不存在回路;B、使用剖面中操作和包的前置条件和后置条件中不包含输入变量取值。具体操作序列确定型生成软件可靠性测试数据的过程如图12所示,包括以下过程:
步骤5a、遍历使用剖面中的子剖面,获得所有的操作序列及其概率;
步骤5b、在所有已经确定下来的操作序列中,根据操作序列的发生概率随机抽取一个操作序列;
步骤5c、对抽取出的操作序列按照操作发生顺序执行操作描述,生成一组测试数据,并存入测试数据集;
步骤5d、判断测试数据集中的测试数据的个数是否已经达到需要生成的测试数据个数要求,如果没有,转步骤5b执行,如果达到了,则结束该次测试数据生成过程。所述需要生成的测试数据个数通过软件的可靠性指标和充分性准则来确定。
步骤5a需要遍历整个使用剖面网络,遍历过程从顶层子剖面的入口开始,沿使用关系遍历各级子剖面,最后到顶层子剖面出口终止。遍历过程中经过的所有操作将按照遍历的先后顺序构成一个操作序列,并计算出相应的操作序列发生概率。因为不存在回路和未知的条件,所以整个使用剖面可以展开成多叉树的形式,树的根为顶层子剖面的入口,树的叶子为顶层子剖面的出口。进而生成操作序列的过程变成了对多叉树的遍历。使用剖面到分叉树的转化示例如图13所示,使用剖面包括三个操作:加电、维护BIT和BIT查看,还包括一个包:数据管理,数据管理的子剖面包括三个操作:数据加载、数据修改和数据删除。执行步骤5a时从入口顶层子剖面开始,遍历整个使用剖面,等同于遍历图13中右边所示的对应使用剖面的分叉树。
在遍历过程中,每经过一个使用关系,将记录下使用关系中的时间间隔,将其作为后续操作的发生时间;在遍历过程中每经过一个使用关系,需要将发生概率相乘,顺序使用关系当作概率等于1的情况处理。表1为图13中使用剖面生成的操作序列及其发生概率。
表1操作序列及其发生概率示例
序号 | 操作序列 | 发生概率 |
1. | 加电-维护BIT | 0.08 |
2. | 加电-维护BIT-BIT查看 | 0.06 |
3. | 加电-维护BIT-数据加载 | 0.018 |
4. | 加电-维护BIT-数据修改 | 0.024 |
5. | 加电-维护BIT-数据删除 | 0.018 |
6. | 加电-数据加载 | 0.24 |
7. | 加电-数据修改 | 0.32 |
8. | 加电-数据删除 | 0.24 |
在遍历使用剖面获得操作序列及其概率的列表后,根据操作序列的发生概率抽取一个操作序列来生成测试数据,具体如下:
设rj为第j个操作序列,pj为rj的发生概率,j=1,2,3…n,n为步骤5a中获取的操作序列的个数。构成一个操作序列的发生概率的区间数组{Sj},S1=[0,p1),其中j≥1,然后随机生成[0,1]之间的随机数,观察其落入的区间范围,以{Sj}的脚标j作为编号的操作序列rj便是抽出的操作序列。
采用操作序列变化型生成软件可靠性测试数据,主要针对使用剖面中存在回路,或者条件中存在无法确定因素的情况。该过程采用的是测试数据生成与操作抽取同步进行的方式,没有显式的操作序列存在。序列变化型生成过程实质上就是按照使用剖面和操作描述,同步对操作和变量取值随机抽样,生成一组带有序列关系的测试数据。因为使用剖面中存在回路的原因,生成的测试数据序列的长度也是根据抽样随机变化的,这与真实情况下用户对软件的使用情况吻合。
采用操作序列变化型生成软件可靠性测试数据,具体如图14所示,包括以下步骤:
步骤5.1、进入子剖面的入口,在第一次开始是从顶层子剖面的入口开始;
步骤5.2、然后沿使用关系开始进行遍历;
步骤5.3、判断遇到的使用关系是否是概率使用关系;如果是转步骤5.4执行,如果不是,转步骤5.5执行;
步骤5.4、首先根据随机抽样方法选择后续剖面元素,然后抽取出操作发生时间,判断在抽取过程中是否满足前置条件,如果满足,转步骤5.6执行,如果不满足,进行概率调整,转步骤5.3执行;
步骤5.5、直接进入后续操作或包,并抽取出操作发生时间,然后判断在抽取过程中是否满足前置条件,如果满足执行步骤5.6,如果不满足,则生成一组操作序列,结束软件可靠性测试数据的生成过程;
步骤5.6、判断遇到的后续元素是否是操作,如果是,转步骤5.7执行,如果不是转步骤5.8执行;
步骤5.7、根据操作描述生成软件可靠性测试数据,然后判断是否达到序列长度上限,如果没有,转步骤5.2执行,如果达到了,生成一组操作序列,结束软件可靠性测试数据的生成过程;
步骤5.8、判断遇到的后续元素是否是包,如果是,转步骤5.1执行,若不是,判断是否是出口,若不是,生成一组操作序列,结束软件可靠性测试数据的生成过程;若是,进一步判断是否是顶层子剖面的出口,若是,生成一组操作序列,结束软件可靠性测试数据的生成过程,若不是,转步骤5.1执行。
步骤5.4中,如果在抽取过程中遇到前置条件,则应该根据条件决定该次抽取是否有效,如果无效,则需要将本概率使用关系的概率降为0,同时等比例提升其它使用关系的发生概率,重新抽样。
操作序列变化型测试数据生成过程中,每抽取出一个操作,需要根据操作的描述生成测试数据,其方法和过程与操作序列确定型的方法一致。如果分支条件或前置条件中出现以未知条件,如以输出变量为条件的情况,则生成的测试数据很可能没有具体的数值,而是根据条件采取说明性表示,例如:当xx输出变量等于0,那么输入变量V=20;当xx输出变量大于0,那么输入变量V=10,对于这样的测试数据,往往需要将其转化为测试脚本,由能支持反馈的测试环境执行,在测试过程中确定输入变量的实际取值。
步骤四中与步骤五中用到多种随机抽样方法,主要为概率分支抽样、根据范围进行均值抽样和根据偏移量进行抽样三种。
(1)概率分支抽样方法,主要用于步骤5.4中根据随机抽样选择后续剖面元素,步骤5b中根据操作序列的发生概率采用随机抽样方法生成操作序列,也可以对具有多个取值范围时对取值范围进行抽样以及离散操作描述中对概率输入关系的抽样。概率分支的抽样可以采取如下的方式:
设rj为第j个概率分支,pj为rj的概率,j=1,2,3…n,n为概率分支的个数。那么可以构成一个区间数组{Sj},令S1=[0,p1),其中j≥1,随机生成[0,1]之间的随机数,观察其落入的区间范围,以{Sj}的脚标j作为编号的概率分支rj便是抽取出的操作序列。
(2)范围均匀抽样方法;
范围均匀抽样主要针对在一个时间区间抽取一个时间点或者在一个取值范围内抽取一个数值的情况,范围均匀抽样主要用于步骤四中对于离散型输入采用步骤图的方式描述时,步骤图中输入变量的取值。范围均匀抽样可以采用如下方式:
将范围表示成[v1,v2]的形式,然后产生[0,1]的随机数r′,则随机抽取值V=v1+r′×(v2-v1)。
(3)偏移量抽样方法;
偏移量抽样主要用于步骤四中建立操作描述图时,采用连续图进行描述时对线段端点的时间和值的抽样,偏移量实际上是范围均值抽样的一个变形。偏移量用范围区间的形式可以表示为[v-Δv1,v+Δv2]的形式,其中Δv1,Δv2分别为上下偏移量。产生[0,1]之间的随机数r′,则抽取出来的值为V=v-Δv1+r′×(Δv1+Δv2)。
如果存在以其它分布函数出现的描述,如正态分布、开方分布、指数分布等,则按照相应的抽样方式进行。
步骤5.4与步骤5.5中所述的判断在抽取过程中是否满足前置条件,根据是否满足前置条件来决定该次抽样是否有效,如果满足则有效,如果不满足则无效。因为测试数据生成过程往往先于软件测试的过程,所以根据测试数据生成过程中,根据前置条件的因素是否可知分为两种处理情况。
1、条件因素已知:条件因素已知的情况下,约束条件往往是使用约束、时间约束和输入变量取值已知的值约束。这些约束可以根据是否对操作进行了覆盖,时间是否在要求的范围之内以及前面输入变量的取值是否满足要求来决定真假。
2、条件因素未知:条件因素未知的情况下,约束条件主要来源于对测试输出变量取值的判断。因为输出变量的取值只能在测试进行中才能获得,所以在测试数据生成过程中是不能判断条件真假的。这种情况下通常遍历条件分支,条件分支指的是步骤图中,每一步中可以有若干个输入单元,可以根据条件来决定采用哪一个输入单元里的描述,将各种条件下的输入变量取值情况分条件说明,最后将其转换为测试脚本。在测试进行中通过测试解释器执行测试脚本,并实时收取测试反馈来决定条件的真假,生成最终的测试数据。
在使用剖面中,如果约束条件不满足,则说明对该包或操作的抽样无效。可以根据测试数据取值规则的要求来决定是放弃此次抽样还是保留前一操作或包生成的测试数据。
步骤5.4中在抽取过程中不满足前置条件,需要进行概率调整,则把该使用关系的概率降为0,同时将其它同源的使用关系的概率按比例提升。如操作A、B、C的概率分别是0.5、0.2和0.3,如果本来抽取到操作A,但是操作A的前置条件不满足,则调整后的概率就变为A:0,B:0.4,C:0.6。如果所有的前置条件不满足,则终止此次抽样,或保留前置条件以前生成的测试数据。这种概率调整的处理方法与实际的软件使用过程非常吻合,当本来可以使用的功能由于条件不满足不能使用时(如菜单变灰),用户只能使用其它的功能,从而将使用其它功能的可能性提升了。
本发明的测试数据生成方法中采用图形化方式描述实时嵌入式软件的使用情况,采用XML语言描述。通过图形化描述测试输入中的表观,通过XML语言描述测试输入的详细含义,对实时嵌入式软件的使用情况进行分析建模,以使用剖面为核心进行***分析、输入输出封装、操作描述等图形化建模,并据此自动生成软件可靠性测试数据。
Claims (9)
1.一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,该测试数据生成方法包括以下步骤:
步骤一、通过分析被测***的外部接口,整理输入和输出变量,根据被测***的交联环境分析出用户类型,为被测***建立***分析图;
步骤二、对输入和输出变量建立使用类,并用使用类图将使用类之间的关系表示出来;所述的建立使用类是指:针对数字式的接口整理的输入和输出变量根据被测实时嵌入式软件的接口关系建立使用类,针对模拟输入和输出变量和彼此不相关的离散输入和输出变量根据逻辑关系建立使用类;
步骤三、根据被测***的使用情况建立使用剖面,所述的使用剖面由用户剖面、使用模式剖面和使用过程剖面构成,各剖面又包含有子剖面,子剖面中也能够包含有子剖面,各剖面与子剖面都为由剖面元素和使用关系构成的有向图;所述的使用剖面,具体是通过以下步骤建立的:
步骤3.1、对用户信息进行调查,将用户分类并得到各类型用户所占的比例,然后构建用户剖面,具体是:为各类型用户构建一个子剖面,所述的子剖面采用包表示,根据各类型用户所占的比例,设置每个子剖面的概率使用关系;分析软件文档,获得软件的功能列表,功能列表中列举的为从软件文档中获得的功能点;
步骤3.2、构造使用模式剖面:在用户剖面的基础上,统计出各类型用户中各种使用模式被该类型用户使用的比例,为各使用模式设置概率使用关系,所述的使用模式采用包表示;
步骤3.3、为每种使用模式构造使用过程剖面:使用过程剖面的建立从最初的***上电开始分析,然后分析上电后执行的后续功能,所述的后续功能为用包表示的子剖面,在确定了后续功能对应的子剖面以及该子剖面中进一步细化得到的各功能点对应的子剖面后,为每一级子剖面建立使用关系,同时对功能点对应的子剖面进行细化,然后为使用过程剖面中的各元素分配概率,并描述使用过程剖面中的各元素之间的约束关系;
对功能点对应的子剖面进行细化,具体为:如果该功能点通过一个操作实现,那么将该功能对应的包直接转化为操作;如果该功能点的实现过程非常复杂,那么在该功能点对应的子剖面中进一步描述其实现过程;如果子剖面中的操作或包所代表的逻辑任务有条件的执行,那么需要为其设置前置条件或后置条件;
步骤四、在使用剖面基础上,对每一个操作建立操作描述图,对于离散型输入采用步骤图的方式描述,对于连续型输入采用连续图进行描述;
步骤五、按照建立的使用剖面和操作描述图中的信息组织数据并随机抽样,生成软件可靠性测试数据,软件可靠性测试数据的生成方法有两种:操作序列确定型生成方法和操作序列变化型生成方法。
2.根据权利要求1所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤一中所述的被测***是指被测***的实时嵌入式软件与被测***的硬件整体,以一个黑盒来表示;所述的用户类型有使用者和参与者两种,所述的参与者是指为被测试***提供支持的交联设备,所述的使用者是指被测***为其提供服务的交联设备;所述的***分析图采用有向箭头表示使用者、参与者与被测***之间的数据交互关系;
所述的被测***具有属性:名称和说明,还包括元素:工作周期和输入输出列表,输入输出列表中为输入变量和输出变量;
所述的使用者与参与者,都具有属性:名称、类型和特性说明;
所述的数据交互关系具有属性:源和目的,还包括元素:数据交互关系的类型。
3.根据权利要求1所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤三中所述的剖面元素有五种:操作、包、入口、出口和终止,使用关系有两种:概率使用关系和顺序使用关系;
操作的属性有名称和说明,元素包括:前置条件、后置条件、预期结果以及描述图名称;包的属性有名称和说明,元素包括:前置条件、后置条件以及对应的使用子剖面图名称;入口是使用子剖面所代表的逻辑使用的开始;出口是使用子剖面所代表的逻辑使用的结束;终止是整个使用剖面的结束,为最顶层使用子剖面的出口;
使用关系的属性包括源、目的和类型,通过类型来决定是顺序使用还是概率使用,包含的元素有:时间、概率和是否是起点。
4.根据权利要求1所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤四中所述的采用步骤图的方式描述离散型输入时,对于输入单元中的使用类和输入变量的取值,通过范围均匀抽样方法得到;在采用连续图对连续型的输入进行描述时,对线段端点的时间和值的抽样采用偏移量抽样方法得到。
5.根据权利要求1所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤五中所述的操作序列确定型生成方法,具体包括以下步骤:
步骤5a、遍历整个使用剖面,获得所有的操作序列及其概率;
遍历过程从顶层子剖面的入口开始,沿使用关系遍历各级子剖面,最后到顶层子剖面出口终止,按照遍历的先后顺序构成一个操作序列,并计算出相应的操作序列的发生概率;所述的操作序列的发生概率是在遍历过程中每经过一个使用关系,将发生概率相乘得到,顺序使用关系当作概率等于1的情况处理;
步骤5b、在所有已经确定下来的操作序列中,根据操作序列的发生概率采用随机抽样方法生成一个操作序列;
首先得到操作序列的发生概率的区间数组{Sj},其中j≥1,然后随机生成[0,1]之间的随机数,观察其落入的区间范围Sj,则第j个操作序列rj被抽取出来,pj为rj的发生概率,j=1,2,3…n,n为步骤5a中获取的操作序列的个数;
步骤5c、对抽取出的操作序列按照操作发生顺序执行操作描述,生成一组测试数据,并存入测试数据集;
步骤5d、判断测试数据集中的测试数据的个数是否已经达到需要生成的测试数据个数要求,如果没有,转步骤5b执行,如果达到了,则结束本次测试数据生成过程。
6.根据权利要求1所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤五中所述的操作序列变化型生成方法,具体包括以下步骤:
步骤5.1、进入子剖面的入口,开始的第一次是从顶层子剖面的入口开始;
步骤5.2、然后沿使用关系开始进行遍历;
步骤5.3、判断遇到的使用关系是否是概率使用关系;如果是执行步骤5.4,如果不是,转步骤5.5执行;
步骤5.4、首先根据随机抽样方法选择后续剖面元素,然后抽取出操作发生时间,判断在抽取过程中是否满足前置条件,如果满足,转步骤5.6执行,如果不满足,进行概率调整,转步骤5.3执行;
步骤5.5、直接进入后续剖面元素,并抽取出操作发生时间,然后判断在抽取过程中是否满足前置条件,如果满足执行步骤5.6,如果不满足,则生成一组操作序列,结束本次测试数据的生成过程;
步骤5.6、判断抽取的后续剖面元素是否是操作,如果是,执行步骤5.7,如果不是转步骤5.8执行;
步骤5.7、根据操作描述生成软件可靠性测试数据,然后判断是否达到序列长度上限,如果没有,转步骤5.2执行,如果达到了,生成一组操作序列,结束本次测试数据的生成过程;
步骤5.8、判断抽取的后续剖面元素是否是包,如果是,转步骤5.1执行;若不是,判断抽取的后续剖面元素是否是出口,若不是,生成一组操作序列,结束本次测试数据的生成过程,若是,进一步判断抽取的后续剖面元素是否是顶层子剖面的出口,若是,生成一组操作序列,结束本次测试数据的生成过程,若不是,转步骤5.1执行。
7.根据权利要求6所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤5.4所述的随机抽样方法为概率分支抽样方法。
8.根据权利要求6所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤5.4与步骤5.5中所述的判断在抽取过程中是否满足前置条件,具体是:a、在前置条件因素已知的情况下,根据是否对操作进行了覆盖,时间是否在要求的范围之内以及前面输入变量的取值是否满足要求来判断;b、在条件因素未知的情况下,遍历条件分支,将各种条件下的输入变量取值情况分条件说明,最后将其转换为测试脚本,通过测试解释器执行测试脚本实时收取测试反馈来判断是否满足。
9.根据权利要求6所述的一种实时嵌入式软件可靠性测试数据生成方法,其特征在于,步骤5.4中所述的概率调整具体是:把该使用关系的概率降为0,同时将其它同源的使用关系的概率按比例提升。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105878993A CN102033806B (zh) | 2010-12-14 | 2010-12-14 | 一种实时嵌入式软件可靠性测试数据生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105878993A CN102033806B (zh) | 2010-12-14 | 2010-12-14 | 一种实时嵌入式软件可靠性测试数据生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102033806A CN102033806A (zh) | 2011-04-27 |
CN102033806B true CN102033806B (zh) | 2012-07-25 |
Family
ID=43886732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105878993A Expired - Fee Related CN102033806B (zh) | 2010-12-14 | 2010-12-14 | 一种实时嵌入式软件可靠性测试数据生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102033806B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866949A (zh) * | 2012-08-31 | 2013-01-09 | 中国人民解放军63928部队 | 一种基于假设检验的嵌入式基础软件可靠性评估方法 |
CN104008048B (zh) * | 2013-11-07 | 2017-06-20 | 哈尔滨工程大学 | 一种考虑检测效用及修正效用的软件可靠性检测方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306123B (zh) * | 2011-10-14 | 2014-01-22 | 哈尔滨工业大学 | 基于cstm模型测试数据转换的构件软件可靠性分析方法 |
CN102629232B (zh) * | 2012-01-09 | 2014-03-26 | 北京航空航天大学 | 引入测试有效性的软件可靠性验证测试方法 |
CN102629233B (zh) * | 2012-01-09 | 2014-05-14 | 北京航空航天大学 | 一种软件可靠性测试数据生成方法及其计算机辅助工具 |
CN102662841B (zh) * | 2012-04-01 | 2014-11-05 | 北京航空航天大学 | 一种软硬件结合的可靠性综合试验剖面构造方法 |
CN103324569B (zh) * | 2013-06-08 | 2016-06-15 | 四川长虹电器股份有限公司 | 嵌入式***应用程序代码的测试方法 |
CN104346366B (zh) | 2013-07-30 | 2017-11-24 | 国际商业机器公司 | 扩展测试数据的方法及设备 |
JP6161459B2 (ja) * | 2013-07-31 | 2017-07-12 | 株式会社日立製作所 | 事業性評価装置、事業性評価方法及び事業性評価プログラム |
CN104636404B (zh) * | 2013-11-14 | 2019-02-19 | 华为技术有限公司 | 用于测试的大规模数据生成方法和装置 |
CN103729296B (zh) * | 2013-12-31 | 2017-02-15 | 北京理工大学 | 一种基于网络Motif的软件稳定性评估方法 |
CN106326096A (zh) * | 2015-06-30 | 2017-01-11 | 中国船舶工业综合技术经济研究院 | 一种舰船装备软件接口协议形式化建模方法 |
CN104991864B (zh) * | 2015-07-24 | 2018-09-07 | 中国工商银行股份有限公司 | 一种面向外联***的测试方法及装置 |
CN105068858A (zh) * | 2015-07-29 | 2015-11-18 | 北京世冠金洋科技发展有限公司 | 一种多源异构***仿真方法和装置 |
CN109213671B (zh) * | 2017-06-30 | 2021-08-03 | 中国航发商用航空发动机有限责任公司 | 软件测试方法及其平台 |
CN108959104B (zh) * | 2018-08-09 | 2021-08-31 | 中国航空综合技术研究所 | 一种软件可靠性的测试数据生成方法 |
CN109491360B (zh) * | 2018-09-30 | 2021-05-07 | 北京车和家信息技术有限公司 | 整车控制器的仿真测试方法、装置、***及电子设备 |
CN112131809B (zh) * | 2020-09-18 | 2024-07-09 | 上海兆芯集成电路股份有限公司 | 时序报告分析方法和装置 |
CN113779776B (zh) * | 2021-08-23 | 2024-01-30 | 中国电力科学研究院有限公司 | 电网调度应用的测试剖面建模方法、***、设备及介质 |
CN115509909B (zh) * | 2022-09-26 | 2023-11-07 | 北京百度网讯科技有限公司 | 测试方法、装置、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441592A (zh) * | 2007-11-20 | 2009-05-27 | 鸿富锦精密工业(深圳)有限公司 | 嵌入式***的测试***及方法 |
US20100262864A1 (en) * | 2008-02-26 | 2010-10-14 | Yoshinori Tsujido | Automatic reproduction test device and automatic reproduction test method in embedded system |
CN101571802B (zh) * | 2009-06-19 | 2012-05-09 | 北京航空航天大学 | 一种嵌入式软件测试数据可视化自动生成方法及*** |
CN101894068B (zh) * | 2010-05-31 | 2013-01-30 | 北京航空航天大学 | 一种嵌入式软件可靠性加速测试方法 |
-
2010
- 2010-12-14 CN CN2010105878993A patent/CN102033806B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866949A (zh) * | 2012-08-31 | 2013-01-09 | 中国人民解放军63928部队 | 一种基于假设检验的嵌入式基础软件可靠性评估方法 |
CN104008048B (zh) * | 2013-11-07 | 2017-06-20 | 哈尔滨工程大学 | 一种考虑检测效用及修正效用的软件可靠性检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102033806A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102033806B (zh) | 一种实时嵌入式软件可靠性测试数据生成方法 | |
Markusson et al. | A socio-technical framework for assessing the viability of carbon capture and storage technology | |
Boring | Fifty years of THERP and human reliability analysis | |
CN111787090B (zh) | 一种基于区块链技术的智慧法治平台 | |
Sánchez-González et al. | Quality assessment of business process models based on thresholds | |
Chen et al. | Evaluating the effect of coal mine safety supervision system policy in China's coal mining industry: A two-phase analysis | |
CN105070097A (zh) | 一种营运车辆道路交通事故风险识别方法 | |
CN110533163A (zh) | 基于长短时记忆神经网络的压裂砂堵预警方法 | |
CN113849162B (zh) | 一种利用模型驱动和深度神经网络相结合的代码生成方法 | |
CN106649479A (zh) | 一种基于概率图的变压器状态关联规则挖掘方法 | |
CN101833504A (zh) | 一种基于模型检验的时序软件质量缺陷检测方法及*** | |
Hevia et al. | Compatibility of whole-stand and individual-tree models using composite estimators and disaggregation | |
CN109144481A (zh) | 面向领域的软件密集型***的构件化软件配置方法 | |
CN102799960A (zh) | 面向数据模型的并行业务流程异常检测方法 | |
Zhang et al. | Implicit contradictions identification and solution process model for complex technical systems | |
CN105975640A (zh) | 一种大数据质量管理与有用数据挖掘装置 | |
CN106326096A (zh) | 一种舰船装备软件接口协议形式化建模方法 | |
Centobelli et al. | From process mining to process design: a simulation model to reduce conformance risk | |
Crossley et al. | SimZombie: A case-study in agent-based simulation construction | |
Zhang et al. | Developing and experimenting on approaches to explainability in AI systems | |
CN111262878A (zh) | 一种核电厂安全级数字化仪控***脆弱性分析方法 | |
Hilpert et al. | A qualitative evaluation approach for energy system modelling software—Case study results for the open energy modelling framework (Oemof) | |
Wei et al. | Visual diagnostics of parallel performance in training large-scale dnn models | |
Maarouf et al. | Deep-Learning-Based Surrogate Reservoir Model for History-Matching Optimization | |
CN112100165B (zh) | 基于质量评估的交通数据处理方法、***、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120725 Termination date: 20151214 |
|
EXPY | Termination of patent right or utility model |