技术新讯 > 计算推算,计数设备的制造及其应用技术 > 基于符号化有限状态机的完备性测试用例生成方法  >  正文

基于符号化有限状态机的完备性测试用例生成方法

  • 国知局
  • 2024-08-05 12:11:14

本发明涉及软件测试领域,具体涉及一种基于符号化有限状态机的完备性测试用例生成方法。

背景技术:

1、安全攸关系统是一种集成了物联网技术的系统,其安全性至关重要。在当前的技术背景下,安全攸关系统面临着来自网络攻击、隐私泄露等多方面的安全威胁。随着物联网的广泛应用,系统规模庞大、复杂性高,因此对其进行全面有效的测试显得尤为重要。

2、传统的测试方法在面对系统复杂性和安全性需求时存在一定局限性,没有能进行完备性测试的方法。现有技术中:采用有限状态机(fsm)对安全攸关系统进行描述,在建模复杂的安全攸关系统时,fsm模型的表现力受限,主要体现在描述系统的安全属性时具有特定的受限规范样式,并且在面对具有无限的输入和输出域和不确定性的系统时,生成的测试用例数量庞大,测试时间长,完备性较差,难以满足安全攸关系统进行全面有效的测试要求。

技术实现思路

1、本技术的目的在于针对上述提到的技术问题提出基于符号化有限状态机的完备性测试用例生成方法。

2、第一方面,本发明提供了一种基于符号化有限状态机的完备性测试用例生成方法,包括以下步骤:

3、采用stpa技术对安全攸关系统进行分析,得到精炼的不安全控制动作以及精炼的软件安全要求,将精炼的软件安全要求转换为线性时态逻辑属性,并进一步转换为原子命题,以构成原子命题集;

4、采用符号化有限状态机对安全攸关系统进行建模,得到测试用例生成模型,基于测试用例生成模型构建若干个突变体,并得到故障域,并计算安全攸关系统的所有估值函数,根据估值函数生成得到测试用例生成模型中的符号迹及其对应的具体迹,将估值函数映射到其满足的原子命题集中,得到命题抽象,通过递归定义将命题抽象扩展到赋值序列和具体迹上;

5、对测试用例生成模型进行基于一阶表达式的精化,得到精化后的测试用例生成模型,基于精化后的测试用例生成模型对所有估值函数进行等价类划分,得到输入等价类,根据输入等价类对精化后的测试用例生成模型的转换进行标记,得到标记后的测试用例生成模型,基于标记后的测试用例生成模型构建可观察的测试用例生成模型,并得到可观察的测试用例生成模型的输入等价类集合,可观察的测试用例生成模型和测试用例生成模型在同一故障域中;

6、基于可观察的测试用例生成模型的输入等价类集合和命题抽象生成测试用例,在故障域中的测试用例生成模型及其突变体执行测试用例,检测测试用例是否满足精炼的软件安全要求,若不满足,则重新构建故障域并重复以上两个步骤,直至测试用例满足精炼的软件安全要求。

7、作为优选,采用stpa技术对安全攸关系统进行分析,得到精炼的不安全控制动作以及精炼的软件安全要求,将精炼的软件安全要求转换为线性时态逻辑属性,并进一步转换为原子命题,以构成原子命题集,具体包括:

8、识别安全攸关系统的服务、损失、危险和系统边界,基于危险确定安全攸关系统的系统级约束;

9、基于服务、危险、系统边界和系统级约束构建控制结构,控制结构包括控制器和受控过程,控制器向受控过程发出控制动作;

10、基于控制动作及其相关的状态变量和关键变量的组合识别精炼的不安全控制动作,并根据精炼的不安全控制动作生成精炼的软件安全要求,精炼的不安全控制动作表示为四元组(ca,cs,c,tc),其中,ca表示导致危险的控制动作,cs=∪(p1=v1,…pn=vn)表示控制动作ca相关的状态变量和关键变量的组合,c表示提供或不提供控制动作ca具有危险的情况,tc表示提供控制动作ca的情况,分为任何时间、太早或太晚;

11、按照以下规则将精炼的软件安全要求转换为线性时态逻辑属性:

12、当发生组合csi的值时,控制器应始终不提供控制动作cai,其中,cs=∪(p1=v1,…pn=vn),i{1,…,n},转换公式为:

13、ltli=g(csi→!(controlaction==cai));

14、在组合csi的值发生之前,控制器不应太早提供控制动作cai,转换公式为:

15、ltli=g(((controlaction==cai)→!csi)&!((controlaction==cai)∪csi));

16、在组合csi的值发生之后,控制器不应太晚提供控制动作cai,转换公式为:

17、ltli=g((csi→!(controlaction==cai))&!(csi∪(controlaction==cai)));

18、当发生组合csi的值时,控制器必须在下一个时间步中立即提供控制动作cai,转换公式为:

19、ltli=g(csi→x(controlaction==cai));

20、根据线性时态逻辑属性进一步转换为原子命题,以构成原子命题集;

21、线性时态逻辑属性公式η的语法由以下文法给出:

22、;

23、其中,ηap表示原子命题,ap表示原子命题集,写成对来自i∪o的变量符号的无量词自由的一阶表达式:

24、;

25、其中,、表示任意的线性时态逻辑属性公式,是一个命题迹,i、j为索引,表达式表示迹后缀,并且,表示原子命题集ap的幂集,对于无限长度的命题迹的有限前缀,写作以指定是的一个有限前缀;

26、路径操作符 f、g 和 w 的语义通过以下语法缩写定义:,,,≡表示定义,∨表示或,¬表示取非;

27、一个线性时态逻辑属性公式η是一个命题迹的集合p,满足,其中,\表示补集,、分别表示命题迹的两个不同的有限前缀。

28、作为优选,采用符号化有限状态机对安全攸关系统进行建模,得到测试用例生成模型,基于测试用例生成模型构建若干个突变体,并得到故障域,并计算安全攸关系统的所有估值函数,根据估值函数生成得到测试用例生成模型中的符号迹及其对应的具体迹,将估值函数映射到其满足的原子命题集中,得到命题抽象,通过递归定义将命题抽象扩展到赋值序列和具体迹上,具体包括:

29、采用符号化有限状态机对安全攸关系统进行建模,得到测试用例生成模型,测试用例生成模型表示为八元组 ,其中,有限集s表示状态空间,表示初始状态,r表示转换关系,,有限集i包含输入变量符号,有限集o包含输出变量符号,集合var表示i∪o,d表示所有变量在类型域上的并集,∑i表示输入字母表,为有限多个输入事件的集合,每个输入事件是输入变量上的无量词的一阶表达式,∑o表示输出字母表,为输出表达式的集合;

30、基于测试用例生成模型引入错误行为构建若干个突变体,错误行为包括:错误或交换的输入事件、错误或交换的输出表达式、传输故障、添加或丢失的状态,传输故障包括额外的、丢失的或误导的转换,并将错误的输入事件加入到输入字母表∑i中、将错误的输出表达式加入到输出字母表∑o中,错误的输入事件和错误的输出表达式不在测试用例生成模型的任何地方出现,根据所有突变体构建得到故障域,故障域表示为z(i,o,d,∑i,∑o,ap,n,m),其中,n表示测试用例生成模型m具有n个可区分的状态,m表示测试用例生成模型m的突变体至多具有m个可区分的状态;

31、估值函数表示将每个变量符号 与d中一个对应的类型的值关联起来,表示估值函数是输入事件的模型,即将输入事件中的每个变量符号v替换为d中对应的类型的值后,得到的布尔表达式为true,表示估值函数是输入事件和其相应的输出表达式的合取的模型,计算安全攸关系统的所有估值函数,所有从var映射到d的估值函数集合表示为;

32、测试用例生成模型m的符号路径ζ为一个无限序列,表示为:

33、;

34、其中,“.”表示序列串接符号,表示测试用例生成模型m的初始状态,对于所有,;

35、测试用例生成模型m的符号迹为一个有限序列,表示为:

36、,满足:

37、,,使得 ,其中,表示存在,表示任意;

38、测试用例生成模型m的符号迹的集合表示为t(m);

39、测试用例生成模型m的具体路径为一个无限序列,表示为:

40、(s0,σ1,s1).(s1,σ2,s2)··· (s×dvar×s)ω;

41、其中,σidvar,使得测试用例生成模型m存在一个符号路径:

42、满足,;

43、测试用例生成模型m的具体迹τ为一个有限序列,表示为:

44、κ=σ1...σn (dvar)∗;

45、使得测试用例生成模型m存在一个符号迹满足,则具体迹被称为符号迹的见证,表示为;

46、测试用例生成模型m的具体迹的集合表示为l(m);

47、将估值函数σ映射到其满足的原子命题集ap中,得到命题抽象ω,如下式所示:

48、 ;

49、表示对应的映射关系,通过递归定义,将命题抽象ω扩展到赋值序列和具体迹上:

50、;

51、其中,ε表示空迹;

52、对于线性时态逻辑属性公式和有限前缀,当且仅当是的坏前缀时,使用符号表示;当且仅当测试用例生成模型m的任何具体迹都不会被命题抽象被抽象为,则测试用例生成模型m为线性时态逻辑属性对应的模型,即。

53、作为优选,对测试用例生成模型进行基于一阶表达式的精化,得到精化后的测试用例生成模型,基于精化后的测试用例生成模型对所有估值函数进行等价类划分,得到输入等价类,根据输入等价类对精化后的测试用例生成模型的转换进行标记,得到标记后的测试用例生成模型,基于标记后的测试用例生成模型构建可观察的测试用例生成模型,并得到可观察的测试用例生成模型的输入等价类集合,可观察的测试用例生成模型和测试用例生成模型在同一故障域中,具体包括:

54、提供一个有限集合q,其包含来自i∪o的自由变量的无量词自由的一阶表达式,有限集合q的一个子集qg = {g1,..., gk}中的一阶表达式仅具有来自i的自由变量,基于测试用例生成模型m构建精化后的测试用例生成模型,表示为q(m)=(s,s0,q(r),i,o,d,q(∑i),∑o),精化的测试用例生成模型q(m)与测试用例生成模型在同一故障域中,对于任意的一阶表达式的子集,定义布尔表达式:

55、;

56、其中,∧表示且;

57、定义q(m)的输入字母表,如下式所示:

58、;

59、其中,di表示在测试用例生成模型m的每个状态中,对于至少适用于该状态的一组输入中的每个模型的并集;

60、定义q(m)的转移关系,如下式所示:

61、;

62、根据以下规则对所有估值函数进行等价类划分:

63、定义一阶公式为来自y和补集的否定公式的合取,如下式所示:

64、;

65、其中,故障域的字母表是所有输入事件、输出表达式和要验证的线性时态逻辑属性公式的原子命题集的并集,表示为,集合y 表示根据上式构造的、具有至少一个估值函数 作为模型的所有输入事件的集合,集合y如下式所示:

66、;

67、对于每个,定义一个输入等价类,表示为:

68、;

69、所有输入等价类的集合a表示为:

70、;

71、根据输入等价类 对精化后的测试用例生成模型q(m)的转换进行标记,得到标记后的测试用例生成模型,若标记后的测试用例生成模型存在从相同起始状态s发出但结束于不同的目标状态

72、则对标记后的测试用例生成模型应用幂集构造法可观察的测试用例生成模型,具体包括:

73、确定初始状态:将标记后的测试用例生成模型的初始状态作为可观察的测试用例生成模型的初始状态;

74、确定状态集合:对于每个状态集合,在每个输入事件上推导其可能转换到的状态,构成新的状态集合,成为可观察的测试用例生成模型中的状态;

75、确定转移函数:根据标记后的测试用例生成模型的转移函数,以及每个状态集合在每个输入事件上的迹,确定可观察的测试用例生成模型的转移函数;

76、确定接受状态:确定可观察的测试用例生成模型中的接受状态,这些状态是包含标记后的测试用例生成模型中的接受状态的状态集合;

77、基于可观察的测试用例生成模型中的接受状态对输入等价类进行细化,生成可观察的测试用例生成模型的输入等价类;

78、否则,将标记后的测试用例生成模型作为可观察的测试用例生成模型。

79、作为优选,可观察的测试用例生成模型mʹ的一对符号迹是可区分的,且满足:存在一个符号输入/输出序列,将符号迹、对应的状态s1、s2进行区分,如下式所示:

80、;

81、其中,表示可观察的测试用例生成模型的符号迹的集合,且,

82、使用 表示所有区分序列的集合:

83、。

84、作为优选,测试用例为符号输入/输出序列,所有测试用例构成测试套件ts,,每个测试用例满足以下要求:

85、(1)ts包含可观察的测试用例生成模型的最小状态覆盖v,其中;

86、(2)对于任意不同的测试用例,存在符号输入/输出序列,使得;

87、(3)ts 包含以下集合:

88、;

89、(4)对于满足的任意和,存在,使得,表示空集;

90、(5)对于满足和的任意,存在,使得,表示前缀。

91、第二方面,本发明提供了一种基于符号化有限状态机的完备性测试用例生成装置,包括:

92、分析模块,被配置为采用stpa技术对安全攸关系统进行分析,得到精炼的不安全控制动作以及精炼的软件安全要求,将精炼的软件安全要求转换为线性时态逻辑属性,并进一步转换为原子命题,以构成原子命题集;

93、建模模块,被配置为采用符号化有限状态机对安全攸关系统进行建模,得到测试用例生成模型,基于测试用例生成模型构建若干个突变体,并得到故障域,并计算安全攸关系统的所有估值函数,根据估值函数生成得到测试用例生成模型中的符号迹及其对应的具体迹,将估值函数映射到其满足的原子命题集中,得到命题抽象,通过递归定义将命题抽象扩展到赋值序列和具体迹上;

94、精化模块,被配置为对测试用例生成模型进行基于一阶表达式的精化,得到精化后的测试用例生成模型,基于精化后的测试用例生成模型对所有估值函数进行等价类划分,得到输入等价类,根据输入等价类对精化后的测试用例生成模型的转换进行标记,得到标记后的测试用例生成模型,基于标记后的测试用例生成模型构建可观察的测试用例生成模型,并得到可观察的测试用例生成模型的输入等价类集合,可观察的测试用例生成模型和测试用例生成模型在同一故障域中;

95、测试用例生成模块,被配置为基于可观察的测试用例生成模型的输入等价类集合和命题抽象生成测试用例,在故障域中的测试用例生成模型及其突变体执行测试用例,检测测试用例是否满足精炼的软件安全要求,若不满足,则重新构建故障域并重复以上建模模块和精化模块中的步骤,直至测试用例满足精炼的软件安全要求。

96、第三方面,本发明提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。

97、第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

98、第五方面,本发明提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

99、相比于现有技术,本发明具有以下有益效果:

100、(1)本发明提出的基于符号化有限状态机的完备性测试用例生成方法采用stpa技术对安全攸关系统进行分析,得到全面的不安全控制动作,从而使进一步推导得到软件安全要求也是完备的。

101、(2)本发明提出的基于符号化有限状态机的完备性测试用例生成方法通过转换规则将安全攸关系统的软件安全要求转换为线性时态逻辑属性,不仅可以严格地表示安全攸关系统的软件安全要求,以便于被测试程序识别,还以一种形式化方式对安全攸关系统的软件安全要求进行抽象,更通用、更直观。

102、(3)本发明提出的基于符号化有限状态机的完备性测试用例生成方法在生成测试用例时,对安全攸关系统进行等价类划分,当面对非常复杂的安全攸关系统时,以进一步减少生成的测试用例的数量,从而大大减少测试所用的时长。

103、(4)本发明提出的基于符号化有限状态机的完备性测试用例生成方法将安全攸关系统建模成符号化有限状态机,并运用生成的完备的线性时态逻辑属性作为属性需求,生成测试用例,验证安全攸关系统在面对不同情况的控制动作时是否符合软件安全要求,保证了测试的完备性。

本文地址:https://www.jishuxx.com/zhuanli/20240802/261415.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。