软件测试案例生成方法、电子设备以及可读存储介质

allin2024-07-07  100



1.本发明涉及软件测试技术领域,具体涉及一种软件测试案例生成方法、电子设备以及可读存储介质。


背景技术:

2.在轨道交通列车运行控制系统、航空航天控制系统、核电控制系统等软件密集型安全苛求系统中,如何提升软件安全性和可靠性,是提高这类系统安全性能的关键所在。传统安全分析是由独立的第三方安全分析工程师进行,而系统开发由软件开发工程师进行,系统开发完成后只能评估已有设计的安全性,而不能指导设计以创建早期的决策,若进行重大变更会付出高昂代价。该问题促使了安全分析与形式化方法相结合的安全驱动设计方法的深入研究。
3.传统基于事件链的安全分析方法难以应对硬件未故障而软件错误、不期望的组件交互等危害,因此需要选择更适用于软件的安全分析方法,如系统理论过程分析(system-theoretical process analysis,stpa)方法。在stpa分析方法中同样存在着过于依赖人工分析的问题,这也促使了stpa分析方法与形式化方法相结合。
4.形式化方法以严密的数学理论和相关推理为基础,本身是自证正确的,通过保证各研发活动一致性的精化关系达到构造可信系统的核心目标。对信息物理融合系统建模,还需要考虑如何对混成行为、随机行为、高可靠时间约束有效建模。但是传统形式化方法中的模型检验方法需要有穷地遍历状态空间,在分析复杂系统的模型时容易出现“状态空间爆炸”问题,增大了系统验证的难度。


技术实现要素:

5.本发明的目的是提供了一种软件测试案例生成方法、电子设备以及可读存储介质,将stpa方法与随机混成自动机结合,从而能够辅助构造适用于开发过程自身可证的可信软件,安全约束具备强可追溯性及得到了形式化验证,降低开发后期出现问题而反复修改带来的成本问题;利用变异测试生成基于故障的原始测试案例集合,有助于发现与功能缺失或规范误解有关的错误,利用不安全控制行为来生成变异算子,更加客观有效,提升了变异测试的效率。
6.为实现上述目的,本发明提供了一种软件测试案例生成方法,包括:根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及所述不安全控制行为对应的软件安全约束,并生成所述不安全控制行为对应的变异算子集合;基于随机混成自动机将所述软件安全约束转换为软件安全控制模型,并利用所述软件安全控制模型生成所述变异算子集合中的各变异算子对应的变异体模型;基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例。
7.本发明还提供了一种电子设备,包括:至少一个处理芯片;以及,与所述至少一个处理芯片通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理芯片执行的
指令,所述指令被所述至少一个处理芯片执行,以使所述至少一个处理芯片能够执行如上述的软件测试案例生成方法。
8.本发明还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序运行时实现如软件测试案例生成方法。
9.本发明实施例提供了一种软件测试案例生成方法,基于stpa的安全分析方法将安全性看作动态控制问题而非故障预防问题,从整个系统的角度出发而非孤立地评价某一部件的安全性,适合于软件密集型系统的安全分析;sha模型支持对连续行为、离散行为、随机行为进行准确的描述,sha模型进一步用统计模型检验方法验证时,可以通过评估系统所满足的概率区间对系统进行定量分析,从而有效解决状态过多而难以验证的问题;本发明将stpa方法与随机混成自动机结合,从而能够辅助构造适用于开发过程自身可证的可信软件,安全约束具备强可追溯性及得到了形式化验证,降低开发后期出现问题而反复修改带来的成本问题。同时,利用变异测试生成基于故障的原始测试案例集合,有助于发现与功能缺失或规范误解有关的错误,利用不安全控制行为来生成变异算子,更加客观有效,提升了变异测试的效率。
10.在一个实施例中,所述根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及所述不安全控制行为对应的软件安全约束,包括:确定与所述安全苛求软件对应的系统级事故、系统级危险以及系统级约束,构建系统的第一分层控制结构,并基于构建的所述第一分层控制结构,得到所述安全苛求软件中存在的四种类型的不安全控制行为;构建带有过程模型变量的第二分层控制结构,并基于提供的情境与所述第二分层控制结构,得到导致各所述不安全控制行为的过程模型变量集合;基于各所述不安全控制行为的过程模型变量集合,生成各所述不安全控制行为对应的软件安全约束。
11.在一个实施例中,所述生成所述不安全控制行为对应的变异算子集合,包括:基于随机混成自动机的语义与各所述不安全控制行为对应的过程模型变量集合,建立各所述不安全控制行为与多个变异算子映射关系,并得到由各所述不安全控制行为对应的变异算子组成的变异算子集合。
12.在一个实施例中,四种类型的不安全控制行为包括:提供控制行为导致的不安全控制行为、未提供控制行为导致的不安全控制行为、提供控制行为的时间或顺序错误以及控制行为持续时间太久或者停止过早。
13.在一个实施例中,在所述基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例之前,还包括:将各所述变异算子对应的变异体模型分别与所述软件安全控制模型进行一致性关系检查,获取各所述变异算子对应的变异体模型中的非等价变异体模型;所述基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例,包括:基于各所述变异算子对应的变异体模型中的非等价变异体模型,生成各所述非等价变异体模型对应的原始测试案例。
14.在一个实施例中,在所述基于随机混成自动机将所述软件安全约束转换为软件安全控制模型之后,还包括:将所述软件安全约束转换为随机混成自动机所需的计算树时态逻辑,并对所述时态逻辑进行安全需求验证。
15.在一个实施例中,所述利用所述软件安全控制模型生成所述变异算子集合中的各变异算子对应的变异体模型,包括:对于每个所述变异算子,将所述变异算子应用于所述软
件安全控制模型中的一个位置或转换,得到所述变异算子对应的一阶变异体模型。
附图说明
16.图1是根据本发明第一实施例中的软件测试案例生成方法的具体流程图;
17.图2是图1中的软件测试案例生成方法的步骤101的具体流程图;
18.图3根据本发明第一实施例中的构建的控制系统的第一分层控制结构的示意图;
19.图4是根据本发明第一实施例中的带有过程模型变量的第二分层控制结构的示意图;
20.图5是根据本发明第一实施例中列车组件对应的软件安全行为模型的示意图;
21.图6是根据本发明第一实施例中基于随机混成自动机的软件安全控制模型a1及其12个一阶变异体模型的示意图;
22.图7是根据本发明第二实施例中的软件测试案例生成方法的具体流程图。
具体实施方式
23.以下将结合附图对本发明的各实施例进行详细说明,以便更清楚理解本发明的目的、特点和优点。应理解的是,附图所示的实施例并不是对本发明范围的限制,而只是为了说明本发明技术方案的实质精神。
24.在下文的描述中,出于说明各种公开的实施例的目的阐述了某些具体细节以提供对各种公开实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本技术相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
25.除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
26.在整个说明书中对“一个实施例”或“一实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一实施例”中的出现无需全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
27.如该说明书和所附权利要求中所用的单数形式“一”和
“”
包括复数指代物,除非文中清楚地另外规定。应当指出的是术语“或”通常以其包括“或/和”的含义使用,除非文中清楚地另外规定。
28.在以下描述中,为了清楚展示本发明的结构及工作方式,将借助诸多方向性词语进行描述,但是应当将“前”、“后”、“左”、“右”、“外”、“内”、“向外”、“向内”、“上”、“下”等词语理解为方便用语,而不应当理解为限定性词语。
29.本发明第一实施方式涉及一种软件测试案例生成方法,应用于电子设备,电子设备例如为手机、平板电脑、笔记本电脑、台式主机等。电子设备可执行本实施例中的软件测试案例生成方法生成安全苛求软件的原始测试案例。本实施例以及之后的实施例中以安全苛求软件为应用于列车车门控制器的控制软件为例进行说明;列车车门控制器的主要功能是在不同的环境情况下控制车门的状态,是轨道交通信号车载系统安全防护和自动控制中的重要功能。
30.本实施方式的软件测试案例生成方法的具体流程如图1所示。
31.步骤101,根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及不安全控制行为对应的软件安全约束,并生成不安全控制行为对应的变异算子集合。
32.在一个例子中,请参考图2,步骤101包括以下子步骤:
33.子步骤1011,确定与安全苛求软件对应的系统级事故、系统级危险以及系统级约束,构建系统的第一分层控制结构,并基于构建的第一分层控制结构,得到安全苛求软件中存在的四种类型的不安全控制行为。
34.具体而言,建立安全苛求软件的分析基础,制定系统级事故、系统级危险、系统级约束。与列车车门控制器的控制软件(安全苛求软件)相关的系统级事故包括:人员被夹(a-1)、人员跌落(a-2)以及人员被困(a-3),系统级危险包括:车门关闭时人员被夹住(h-1)、当列车运行时或不在车站时车门打开(h-2)以及发生紧急情况时人员无法逃脱(h-3),系统级约束包括:当有人在门口时,车门不能关闭(sc1)、当列车运行时或不在车站时,车门不能打开(sc2)以及紧急情况时允许打开车门让车内人员出去(sc 3)。系统级事故、系统级危险以及系统级约束为映射关系如下表1所示。
35.表1
[0036][0037]
基于控制器、执行器、受控过程、传感器这4类程序组件以及控制行为、反馈行为、输入、扰动、输出这5类系统行为,能够构建控制系统的分层控制结构(即第一分层控制结构),分层控制结构图为由多个控制回路组成的功能模型。列车车门控制器所在系统的分层控制结构如图3所示,执行器为车门动作筒、车门传感器用于检测车门相关的情况。
[0038]
列车车门控制器接收外部控制命令(controlcommands),并向车门动作筒发送命令(commands),包括以下两个控制行为:开车门、禁止关门(open door,stop closing door),关车门、禁止开门(close door,stop opening door)。
[0039]
在4类引导词的指导下,得到安全苛求软件的上述两种控制行为存在的四种类型的不安全控制行为(unsafe control action,uca),四种类型的不安全控制行为包括:提供控制行为导致的不安全控制行为、未提供控制行为导致的不安全控制行为、提供控制行为的时间或顺序错误以及控制行为持续时间太久或者停止过早。安全苛求软件相关的两种控制行为存在的四种类型的不安全控制行为请参考下表2。
[0040]
表2
[0041][0042][0043]
子步骤1012,构建带有过程模型变量的第二分层控制结构,并基于提供的情境与第二分层控制结构,得到导致各不安全控制行为的过程模型变量集合。
[0044]
具体而言,利用过程模型变量来描述列车车门控制器,由此能够构建带有过程模型变量的第二分层控制结构,该分层控制结构中包括一个或多个过程模型变量(process model variable,pmv)及变量值。过程模型变量分为3种类型,包括:改变软件控制器状态的内部变量、接收和存储系统中数据、命令、反馈的交互接口变量以及与软件控制器相互作用或受其控制的环境部件的环境变量。本实施例中过程模型变量描述列车车门控制器的第二分层控制结构如图4所示。
[0045]
列车车门控制器包括五个过程模型变量,包括:
[0046]
车门位置(door position),属于环境变量,包括:全部打开(fully open)、全部关闭(fully closed)、部分打开(partially open)、未知(unknown)。
[0047]
车门状态(door state),属于环境变量,包括:有人员进入(person in doorway)、无人进入(person not in doorway)、未知(unknown)。
[0048]
列车位置(train position),属于交互接口变量,包括:与站台对准(aligned with platform)、未与站台对准(not aligned with platform)、未知(unknown)。
[0049]
列车运动状态(train motion),属于交互接口变量,包括:停止(stopped)、列车移动中(train is moving)、未知(unknown)。
[0050]
紧急情况(emergency),属于环境变量,包括:无紧急情况(no emergency)、需要疏散(evacuation required)、未知(unknown)。
[0051]
本实施例中提供了两种类型的情境,分别为提供导致危险的控制行为c1=providing ca,包含任何时间(any time),过晚(too late),过早(too early)三种情境类型;与不提供导致危险的控制行为c2=not providing ca。
[0052]
在制定情境表的过程中,对过程模型变量进行组合,评估得到“导致危险(hazardous)”的过程模型变量集合,可以称为细化uca。
[0053]
以开车门、禁止关门(open door,stop closing door)为例,可以得到如下的情境表,其中表3为提供导致危险的控制行为的情境表、表4为未提供导致危险的控制行为的情境表。
[0054]
表3
[0055][0056]
表4
[0057][0058][0059]
子步骤1013,基于各不安全控制行为的过程模型变量集合,生成各不安全控制行为对应的软件安全约束。
[0060]
具体而言,基于上述过程所得到各不安全控制行为uca的过程模型变量集合(即细化uca),建立在两个情境下的危险路径ruca以及各危险路径对应的安全需求rssr,安全需求rssr便可以转换得到软件安全约束。
[0061]
ruca是一个四元组(ca,cs,c,tc),其中ca是导致危险的控制行为,cs=∪(p1=v1,
……
,pn=vn)是ca的对应pmv的组合,p表示pmv,v表示变量值,c是提供或不提供ca是危险的情境,tc是提供ca的情境类型(any time,too early或too late)。
[0062]
规则1:每个rucai及rssri在控制行为cai的“提供”情境下可表示为:
[0063]
rucai=《ca》provided《tc》is hazardous when《cs=∪(p1=v1,...,pn=vn》occurred。
platform and door stateis person not in doorway。
[0076]
close door,stop opening door command must not be provide too late when door position is fully open and train motion is train is moving and emergency is evacuation required and train position is not aligned with platform and door state is person not in doorway。
[0077]
open door,stop closing door command must not be provide anytime when train motion is train is moving and emergency is no emergency。
[0078]
open door,stop closing door command must not be provided too early when train motion is train is moving and emergency is no emergency。
[0079]
open door,stop closing door command must not be provided too late when train motion is train is moving and emergency is no emergency。
[0080]
open door,stop closing door command must not be provided anytime when train motion is train is moving and emergency is evacuation required。
[0081]
open door,stop closing door command must not be provided too early when train motion is train is moving and emergency is evacuation required。
[0082]
open door,stop closing door command must not be provided too late when train motion is train is moving and emergency is evacuation required。
[0083]
open door,stop closing door command must not be provided too late when train motion is stopped and emergency is evacuation required。
[0084]
open door,stop closing door command must not be provided anytime when train motion is stopped and emergency is no emergency and train position is not aligned with platform。
[0085]
open door,stop closing door command must not be provided too early when train motion is stopped and emergency is no emergency and train position is not aligned with platform。
[0086]
open door,stop closing door command must not be provided too late when train motion is stopped and emergency is no emergency and train position is not aligned with platform。
[0087]
open door,stop closing door command must be provided when train motion is stopped and emergency is evacuation required.
[0088]
open door,stop closing door command must be provided when train motion is stopped and emergency is no emergency and train position is aligned with platform and door state is person in doorway。
[0089]
子步骤1014,基于随机混成自动机的语义与各不安全控制行为对应的过程模型变量集合,建立各不安全控制行为与多个变异算子映射关系,并得到由各不安全控制行为对应的变异算子组成的变异算子集合。
[0090]
具体而言,基于不安全控制行为对应的过程模型变量集合,利用随机混成自动机(stochastic hybrid automata,sha)的语义,对各不安全控制行为进行表达;列举随机混成自动机的参考变异算子集合,并对参考变异算子集合中的每个变异算子的应用位置、所
需参数、时间相关性以及在随机混成自动机中所表示的典型意义进行描述,具体请参考下表6。继而能够根据不安全控制行为以及变异算子在随机混成自动机中的意义,将每种不安全控制与相应的变异算子之间建立映射关系,具体请参考下表7,从而能够得到由每种不安全控制行为对应的变异算子所组成的变异算子集合,使得应用到随机混成自动机中的变异算子集合为约简得到的最小集合,使得变异更有针对性。
[0091]
表6
[0092][0093][0094]
表7
[0095][0096]
步骤102,基于随机混成自动机将软件安全约束转换为软件安全控制模型,并利用软件安全控制模型生成变异算子集合中的各变异算子对应的变异体模型。
[0097]
具体而言,随机混成自动机是八元组m=(l,l,cact,inv,enab,prob,f);其中,l表
示位置的有限集合,l表示初始位置,l∈l;c表示时钟的有限集合;act表示迁移的有限集合,inv:l

cc(c)表示不变式的有限集合,cc表示时钟约束函数;enab:l
×
act

cc(c)表示迁移触发的条件;prob:l
×
act

dist(2c×
l)表示概率迁移函数;f:l
→2ap
表示将每个位置映射到原子命题集合的标签函数。
[0098]
在构建列车车门控制器的sha网络模型时,利用sha子模型对应列车车门控制器系统的各个组件,用位置、通道、守卫、更新、不变式对应输入/输出、控制行为与反馈信息;再利用uppaal-smc工具通过并行组合sha模型形成网络控制结构,同步通道发送和接收输入或输出行为,使用共享的离散和时钟变量;综上可以将软件安全约束转换为软件安全控制模型。本例可由自动车门控制器、列车两个模型并行组合,列车车门控制器的sha模型如图5所示。
[0099]
在一个例子中,在构建了软件安全控制模型后,还需要对构建的软件安全控制模型进行安全需求验证,以保证构建的模型与对应的规范的一致性。安全需求验证的过程包括:将软件安全约束转换为随机混成自动机所需的时态逻辑,并对时态逻辑进行安全需求验证。
[0100]
其中,基于巴科斯范式的ctl语法,将软件安全约束转换为随机混成自动机所需的时态逻辑,时态逻辑为ctl语句。
[0101]
具体的,巴科斯范式的ctl语法如下:
[0102]
φ::=t|

|p|

φ|φ∧φ|φ∨φ|φ

φ|axφ|exφ|afφ|efφ|agφ|egφ|a[φuφ]|e[φuφ]
[0103]
其中,p为原子命题,

表示永假式,t表示永真式,a为沿着所有路径,e为沿至少一条路径,x为下一个状态,f为某个未来状态,g为所有未来状态;a、e为路径量词,x、f以及g为时态算子,路径量词必须伴随时态算子之一出现。
[0104]
在转换得到ctl语句的时态逻辑后,可以使用uppaal-smc工具所提供的验证器对该时态逻辑进行安全需求验证。
[0105]
基于步骤101中所确定的变异算子集合,将各变异算子应用到所构建的软件安全控制模型,便能够得到变异体模型。根据对软件安全控制模型进行单一语法修改次数的不同,可以分为一阶变异体和高阶变异体。本实施中以对软件安全控制模型进行一阶变异为例,即所得到的变异体模型均为一阶变异体模型。
[0106]
具体的,对于每个变异算子,将变异算子应用于软件安全控制模型中的一个位置或转换,得到变异算子对应的一阶变异体模型,即该一阶变异体模型仅覆盖一个特定的缺陷。以图6所示的软件安全控制模型a1为例,则将上述的12个变异算子应用于软件安全控制模型a1后,能够得到12个一阶变异体模型,即为图6中的m1至m
12
。软件安全控制模型a1的含义为系统初始位置为q0,如果收到输入行为input且满足v≤3的变量约束,则迁移到位置q1(q1上有不变量约束x≤4),同时将始终x置0。在q1时,如果满足x<3的时钟约束,则输出行为output迁移到位置q2,并将变量v置2。
[0107]
步骤103,基于各变异算子对应的变异体模型,生成各变异体模型对应的原始测试案例。
[0108]
具体而言,基于预设的测试案例生成算法与各变异体模型,创建各变异体模型对应的原始测试案例;原始测试案例一般为英文,可以再将其转换为中文测试案例,筛选去除
相似以及真实逻辑不吻合的测试案例,并按照功能进行测试案例归并。
[0109]
本实施例提供了一种软件测试案例生成方法,对于安全苛求软件,根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及不安全控制行为对应的软件安全约束,并生成不安全控制行为对应的变异算子集合,随后基于随机混成自动机将软件安全约束转换为软件安全控制模型,并利用软件安全控制模型生成变异算子集合中的各变异算子对应的变异体模型,再基于各变异算子对应的变异体模型,生成各变异体模型对应的原始测试案例。基于stpa的安全分析方法将安全性看作动态控制问题而非故障预防问题,从整个系统的角度出发而非孤立地评价某一部件的安全性,适合于软件密集型系统的安全分析;sha模型支持对连续行为、离散行为、随机行为进行准确的描述,sha模型进一步用统计模型检验方法验证时,可以通过评估系统所满足的概率区间对系统进行定量分析,从而有效解决状态过多而难以验证的问题;本发明将stpa方法与随机混成自动机结合,从而能够辅助构造适用于开发过程自身可证的可信软件,安全约束具备强可追溯性及得到了形式化验证,降低开发后期出现问题而反复修改带来的成本问题。同时,利用变异测试生成基于故障的原始测试案例集合,有助于发现与功能缺失或规范误解有关的错误,利用不安全控制行为来生成变异算子,更加客观有效,提升了变异测试效率。
[0110]
本发明的第二实施例涉及一种软件测试案例生成方法,本实施方式相对于第一实施方式而言:增加了变异体模型与软件安全控制模型之间的一致性对比。
[0111]
本实施例的软件测试案例生成方法的具体流程如图7所示。
[0112]
步骤201,根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及不安全控制行为对应的软件安全约束,并生成不安全控制行为对应的变异算子集合。与第一实施例中的步骤101大致相同,在此不再赘述。
[0113]
步骤202,基于随机混成自动机将软件安全约束转换为软件安全控制模型,并利用软件安全控制模型生成变异算子集合中的各变异算子对应的变异体模型。与第一实施例中的步骤102大致相同,在此不再赘述。
[0114]
步骤203,将各变异算子对应的变异体模型分别与软件安全控制模型进行一致性关系检查,获取各变异算子对应的变异体模型中的非等价变异体模型。
[0115]
具体而言,在生成各变异算子对应的变异体模型后,将各变异体模型分别与软件安全控制模型进行输入输出时间一致性关系检查(或者k界模型检验);对于每个变异体模型来说,同时为该变异体模型与软件安全控制模型添加输入启用特性,对该变异体模型与软件安全控制模型进行输入输出时间一致性关系检查;若该变异体模型与软件安全控制模型一致,则说明该变异体模型没有引入相对于原始模型的新行为,该变异体模型为原始的软件安全控制模型的等价变异体,可以丢弃;若该变异体模型与软件安全控制模型不一致,则说明该变异体模型引入了相对于原始模型不存在的实时路径,即该变异体模型为原始的软件安全控制模型的非等价变异体模型。基于上述过程,能够得到各变异算子对应的变异体模型中相对于软件安全控制模型的非等价变异体模型,这些非等价变异体模型即为可以转换为测试案例的变异体模型。
[0116]
步骤204,基于各变异算子对应的变异体模型中的非等价变异体模型,生成各非等价变异体模型对应的原始测试案例。
[0117]
具体而言,基于预设的测试案例生成算法与各非等价变异体模型,创建各非等价
变异体模型对应的原始测试案例;原始测试案例一般为英文,可以再将其转换为中文测试案例,筛选去除相似以及真实逻辑不吻合的测试案例,并按照功能进行测试案例归并。
[0118]
本实施例中,将各变异算子对应的变异体模型分别与软件安全控制模型进行一致性关系检查,获取各变异算子对应的变异体模型中的非等价变异体模型,非等价变异体模型为可以转换为测试案例的变异体模型,由此能够生成更加精准的测试案例集合。
[0119]
本发明的第三实施例涉及一种电子设备,电子设备例如为手机、平板电脑、笔记本电脑、台式主机等。边缘终端包括至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一至第三实施例中任一项的软件测试案例生成方法。
[0120]
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
[0121]
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
[0122]
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
[0123]
以上已详细描述了本发明的较佳实施例,但应理解到,若需要,能修改实施例的方面来采用各种专利、申请和出版物的方面、特征和构思来提供另外的实施例。
[0124]
考虑到上文的详细描述,能对实施例做出这些和其它变化。一般而言,在权利要求中,所用的术语不应被认为限制在说明书和权利要求中公开的具体实施例,而是应被理解为包括所有可能的实施例连同这些权利要求所享有的全部等同范围。

技术特征:
1.一种软件测试案例生成方法,其特征在于,包括:根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及所述不安全控制行为对应的软件安全约束,并生成所述不安全控制行为对应的变异算子集合;基于随机混成自动机将所述软件安全约束转换为软件安全控制模型,并利用所述软件安全控制模型生成所述变异算子集合中的各变异算子对应的变异体模型;基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例。2.根据权利要求1所述的软件测试案例生成方法,其特征在于,所述根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及所述不安全控制行为对应的软件安全约束,包括:确定与所述安全苛求软件对应的系统级事故、系统级危险以及系统级约束,构建系统的第一分层控制结构,并基于构建的所述第一分层控制结构,得到所述安全苛求软件中存在的四种类型的不安全控制行为;构建带有过程模型变量的第二分层控制结构,并基于提供的情境与所述第二分层控制结构,得到导致各所述不安全控制行为的过程模型变量集合;基于各所述不安全控制行为的过程模型变量集合,生成各所述不安全控制行为对应的软件安全约束。3.根据权利要求2所述的软件测试案例生成方法,其特征在于,所述生成所述不安全控制行为对应的变异算子集合,包括:基于随机混成自动机的语义与各所述不安全控制行为对应的过程模型变量集合,建立各所述不安全控制行为与多个变异算子映射关系,并得到由各所述不安全控制行为对应的变异算子组成的变异算子集合。4.根据权利要求2所述的软件测试案例生成方法,其特征在于,四种类型的不安全控制行为包括:提供控制行为导致的不安全控制行为、未提供控制行为导致的不安全控制行为、提供控制行为的时间或顺序错误以及控制行为持续时间太久或者停止过早。5.根据权利要求1所述的软件测试案例生成方法,其特征在于,在所述基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例之前,还包括:将各所述变异算子对应的变异体模型分别与所述软件安全控制模型进行一致性关系检查,获取各所述变异算子对应的变异体模型中的非等价变异体模型;所述基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例,包括:基于各所述变异算子对应的变异体模型中的非等价变异体模型,生成各所述非等价变异体模型对应的原始测试案例。6.根据权利要求1所述的软件测试案例生成方法,其特征在于,在所述基于随机混成自动机将所述软件安全约束转换为软件安全控制模型之后,还包括:将所述软件安全约束转换为随机混成自动机所需的计算树时态逻辑,并对所述时态逻辑进行安全需求验证。
7.根据权利要求1所述的软件测试案例生成方法,其特征在于,所述利用所述软件安全控制模型生成所述变异算子集合中的各变异算子对应的变异体模型,包括:对于每个所述变异算子,将所述变异算子应用于所述软件安全控制模型中的一个位置或转换,得到所述变异算子对应的一阶变异体模型。8.一种电子设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的软件测试案例生成方法。9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序运行时实现如权利要求1至7中任一项所述的软件测试案例生成方法。

技术总结
本发明实施例提供了一种软件测试案例生成方法、电子设备以及可读存储介质,涉及软件测试技术领域。软件测试案例生成方法包括:根据系统理论过程分析方法对安全苛求软件进行安全分析,得到不安全控制行为以及所述不安全控制行为对应的软件安全约束,并生成所述不安全控制行为对应的变异算子集合;基于随机混成自动机将所述软件安全约束转换为软件安全控制模型,并利用所述软件安全控制模型生成所述变异算子集合中的各变异算子对应的变异体模型;基于各所述变异算子对应的变异体模型,生成各所述变异体模型对应的原始测试案例。本发明中,将STPA方法与随机混成自动机结合,从而能够辅助构造适用于开发过程自身可证的可信软件。软件。软件。


技术研发人员:张雷 徐倩 欧冬秀 董德存
受保护的技术使用者:同济大学
技术研发日:2022.03.16
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-15156.html

最新回复(0)