本申请涉及状态机模型,特别涉及一种状态机模型的状态标注与模型检测的方法及装置。
背景技术:
1、模型检测(model checking),指对于一个给定的系统,验证其是否具有特定的性质的方法。
2、相关技术中,在对软件或硬件系统的测试中,常使用模型学习的方法提取系统的状态机模型,并使用模型检测方法验证其是否违反了特定的性质以便系统的开发人员及时修复系统。
3、然而,相关技术中,模型学习得到的状态机模型通常不具有状态信息,需要开发人员人工审计才能理解具体状态的含义,同时常见的模型检测方法,例如线性时序逻辑(linear time logic,ltl)在使用时需要将待检测的属性使用ltl语言表达出,理解模型检测方法使用的语言并根据该语言表达要检测的属性增加了系统维护和开发人员的工作量,亟待解决。
技术实现思路
1、本申请提供一种状态机模型的状态标注与模型检测的方法及装置,以解决相关技术中,在进行系统的测试时,由于模型学习方法得到的模型没有状态信息而需要开发和维护人员人工审计状态机模型,并且需要学习特定语言并编写用于模型检测的属性,从而消耗更多人力成本等问题。
2、本申请第一方面实施例提供一种状态机模型的状态标注与模型检测的方法,包括以下步骤:映射约束模型与待检测状态机模型的输入和输出,得到分数计算方式;基于所述分数计算方式计算匹配分数,并根据所述匹配分数搜索待检测状态机模型状态到约束模型状态的最匹配映射关系;基于所述待检测状态机模型状态与约束模型状态之间的最匹配映射关系构建重组模型;使用所述约束模型标注所述重组模型的状态与所述重组模型相较于所述约束模型不一致的状态转移。
3、可选地,在本申请的一个实施例中,所述约束模型为其他待检测系统的状态机模型或者根据系统标准文档使用自动化方法或系统开发者手动构造的模型。
4、可选地,在本申请的一个实施例中,所述基于所述分数计算方式计算匹配分数,包括:计算待检测模型映射后得到的图到约束模型的图的编辑距离;根据所述编辑距离得到所述匹配分数。
5、可选地,在本申请的一个实施例中,所述编辑距离的计算公式为:
6、d=cene+i+ni++i-ni-+o-no-+o+no+,
7、其中,d表示编辑距离,ce、ci+、ci-、co-、co+分别表示进行添加一条边、在一条边上添加一条状态转移、在一条边上删除一条状态转移、删除状态转移上的一个输出、添加状态转移上的一个输出操作增加编辑距离时的权重,ne、ni+、ni-、no-、no+分别表示为了使重映射的待检测图满足约束模型的约束,需要添加的边、在边上添加状态转移、在边上删除状态转移、删去状态转移上的输出、添加状态转移上的输出的次数。
8、可选地,在本申请的一个实施例中,所述基于所述分数计算方式计算匹配分数,并根据所述匹配分数搜索待检测状态机模型状态到约束模型状态的最匹配映射关系,包括:在第一搜索阶段,对于所述约束模型中的每一个状态,搜索所述待检测状态机模型的状态并选择一个最匹配的状态,以构建所述待检测状态机模型到所述约束模型的映射;在第二搜索阶段,对于所述待检测模型中剩余的每一个状态,搜索所述约束模型的状态并选择一个最匹配的状态,以构建所述待检测状态机模型到所述约束模型的映射。
9、本申请第二方面实施例提供一种状态机模型的状态标注与模型检测的装置,包括:映射模块,用于映射约束模型与待检测状态机模型的输入和输出,得到分数计算方式;搜索模块,用于基于所述分数计算方式计算匹配分数,并根据所述匹配分数搜索待检测状态机模型状态到约束模型状态的最匹配映射关系;构建模块,用于基于所述待检测状态机模型状态与约束模型状态之间的最匹配映射关系构建重组模型;检测模块,用于使用所述约束模型标注所述重组模型的状态与所述重组模型相较于所述约束模型不一致的状态转移。
10、可选地,在本申请的一个实施例中,所述约束模型为其他待检测系统的状态机模型或者根据系统标准文档使用自动化方法或系统开发者手动构造的模型。
11、可选地,在本申请的一个实施例中,所述搜索模块包括:计算单元,用于计算待检测模型映射后得到的图到约束模型的图的编辑距离;获取单元,用于根据所述编辑距离得到所述匹配分数。
12、可选地,在本申请的一个实施例中,所述编辑距离的计算公式为:
13、d=cene+i+ni++i-ni-+o-no-+o+no+,
14、其中,d表示编辑距离,ce、ci+、ci-、co-、co+分别表示进行添加一条边、在一条边上添加一条状态转移、在一条边上删除一条状态转移、删除状态转移上的一个输出、添加状态转移上的一个输出操作增加编辑距离时的权重,ne、ni+、ni-、no-、no+分别表示为了使重映射的待检测图满足约束模型的约束,需要添加的边、在边上添加状态转移、在边上删除状态转移、删去状态转移上的输出、添加状态转移上的输出的次数。
15、可选地,在本申请的一个实施例中,所述搜索模块还包括:第一搜索单元,用于在第一搜索阶段,对于所述约束模型中的每一个状态,搜索所述待检测状态机模型的状态并选择一个最匹配的状态,以构建所述待检测状态机模型到所述约束模型的映射;第二搜索单元,用于在第二搜索阶段,对于所述待检测模型中剩余的每一个状态,搜索所述约束模型的状态并选择一个最匹配的状态,以构建所述待检测状态机模型到所述约束模型的映射。
16、本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的状态机模型的状态标注与模型检测的方法。
17、本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,该程序被处理器执行时实现如上的状态机模型的状态标注与模型检测的方法。
18、本申请实施例可以通过对待检测状态机模型进行状态映射,模型重组与状态和不一致性标注,增强模型的可读性,检测模型对应的真实系统相较于约束模型的预期是否违反了特定属性。由此,解决了模型学习方法提取到的状态机模型不包含状态信息而需要系统的开发和维护人员人工审计的问题。
19、本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
1.一种状态机模型的状态标注与模型检测的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述约束模型为其他待检测系统的状态机模型或者根据系统标准文档使用自动化方法或系统开发者手动构造的模型。
3.根据权利要求1所述的方法,其特征在于,所述基于所述分数计算方式计算匹配分数,包括:
4.根据权利要求3所述的方法,其特征在于,所述编辑距离的计算公式为:
5.根据权利要求1所述的方法,其特征在于,所述基于所述分数计算方式计算匹配分数,并根据所述匹配分数搜索待检测状态机模型状态到约束模型状态的最匹配映射关系,包括:
6.一种状态机模型的状态标注与模型检测的装置,其特征在于,包括:
7.根据权利要求6所述的装置,其特征在于,所述约束模型为其他待检测系统的状态机模型或者根据系统标准文档使用自动化方法或系统开发者手动构造的模型。
8.根据权利要求6所述的装置,其特征在于,所述搜索模块包括:
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-5任一项所述的状态机模型的状态标注与模型检测的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-5任一项所述的状态机模型的状态标注与模型检测的方法。