CN110738384B - 事件序列的校验方法及系统 - Google Patents
事件序列的校验方法及系统 Download PDFInfo
- Publication number
- CN110738384B CN110738384B CN201910307375.5A CN201910307375A CN110738384B CN 110738384 B CN110738384 B CN 110738384B CN 201910307375 A CN201910307375 A CN 201910307375A CN 110738384 B CN110738384 B CN 110738384B
- Authority
- CN
- China
- Prior art keywords
- state
- event
- transition
- verification
- data
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
- G05B19/0425—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Automation & Control Theory (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种事件序列的校验方法及系统。其中,该方法包括:构建校验脚本文件,其中,所述校验脚本文件中包含校验逻辑;获取待检验的事件序列文件,其中,所述事件序列文件中包含有按照时间顺序排列的多个事件;利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果。本发明解决了相关技术中在自动检测控制作业是否符合校验逻辑时,校验困难的技术问题。
Description
技术领域
本发明涉及事件处理技术领域,具体而言,涉及一种事件序列的校验方法及系统。
背景技术
在复杂的控制系统中,每一个控制分支的控制任务都由一系列的控制作业组成,每一个控制分支编排完毕后,都需要检查这一组控制作业的安排是否正确。是否正确的标准是多样的、复杂的。将每一个正确的标准定义为一种校验逻辑,则针对每一组控制作业,存在着多种校验逻辑。正确的控制作业需要符合所有控制逻辑。
传统的方案是由领域专家对控制作业进行人工检查,判断是否符合校验逻辑。随着控制作业体量和校验逻辑数量的增加,人工检查方式工作量越来越大,难以满足要求。
人工检查的方式工作量巨大,可靠性不高,随意性大,复杂情况下难以满足要求。
另一种方式是自动检测,但是实现自动检查需要领域专家编写校验程序。校验程序一般采用通用高级编程语言、编辑工具和运行环境。这种方式存在着如下缺点:
(一)编写困难:领域专家一般领域知识丰富,但通用编程能力一般不强。通用编程语言虽然功能强大,但涉及面广、掌握困难,编写校验程序对领域专家提出了较高的要求,这也是自动校验难以推广的主要原因。
(二)校核困难:通用编程语言的应用极为灵活,不同专家编写同样的校验逻辑时,表现形式存在巨大差异,第三方理解困难。因此,很难由第三方专家对校验逻辑进行校核,也不利于传承、学习和改进。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种事件序列的校验方法及系统,以解决相关技术中在自动检测控制作业是否符合校验逻辑时,校验困难的技术问题。
根据本发明实施例的一个方面,提供了一种事件序列的校验方法,包括:构建校验脚本文件,其中,所述校验脚本文件中包含校验逻辑;获取待检验的事件序列文件,其中,所述事件序列文件中包含有按照时间顺序排列的多个事件;利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果。
进一步地,所述校验脚本文件中包括多个构成元素,所述多个构成元素包括:状态空间定义,初始状态数据和/或结束状态数据,状态变迁数据,其中,所述状态空间定义中包含有至少一个状态分量,所述状态分量对应有状态名称和状态类型;所述初始状态数据对应于所述状态空间定义的实例数据,对每个状态分量,初始状态数据中包含有对应状态名称的名称字段和状态值;所述结束状态数据对应于所述状态空间定义的实例数据,对每个状态分量,结束状态数据对应有状态名称的名称字段和状态值,其中,所述状态变迁数据中包括下述分量:变迁名称、触发变迁的事件集、触发变迁的约束数据、变迁触发前的状态要求数据、变迁触发后的状态数据,所述触发变迁的事件集包含有:事件名称和备份事件间隔;所述触发变迁的约束数据包含有:约束名称和约束参数列表。
进一步地,构建校验脚本文件包括:确定与校验逻辑对应的所述多个构成元素;对每个所述构成元素进行可视化编辑,得到元素文件,其中,所述元素文件支持通过预设编程语言实现事件代号与事件名称对应查询;根据所述元素文件构建所述校验脚本文件。
进一步地,利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果包括:按顺序判断所述事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定所述事件是否符合所述校验逻辑,得到所述校验结果。
进一步地,按顺序判断所述事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定所述事件是否符合所述校验逻辑包括:判断事件状态的变迁触发是否满足约束条件,并在所述变迁触发不满足所述约束条件的情况下,确定所述事件状态的变迁触发不符合所述校验逻辑;在所述变迁触发满足所述约束条件的情况下,判断所述事件是否为备份事件,并在所述事件为备份事件的情况下,触发变迁;判断主份事件的当前状态是否满足变迁触发的状态要求,并判断所述备份事件是否满足变迁触发的最终要求;在所述主份事件的当前状态不满足变迁触发的状态要求的情况下,和/或,在所述备份事件不满足变迁触发的最终要求的情况下,不触发变迁。
进一步地,在利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果之后,所述方法还包括:根据所述校验结果,生成校验日志;通过日志窗口展示所述校验日志。
根据本发明实施例的另一方面,还提供了一种事件序列的校验系统,包括:编辑器,用于构建校验脚本文件,其中,所述校验脚本文件中包含校验逻辑,所述校验逻辑通过预设的校验语言表述;验证器,利用所述校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果,其中,所述事件序列文件中包含有按照时间顺序排列的多个事件管理器,用于调用所述验证器,并通过预设的日志窗口展示与所述校验结果对应的校验日志。
进一步地,所述校验脚本文件中包括多个构成元素,所述多个构成元素包括:状态空间定义,初始状态数据和/或结束状态数据,状态变迁数据,其中,所述状态空间定义中包含有至少一个状态分量,所述状态分量对应有状态名称和状态类型;所述初始状态数据对应于所述状态空间定义的实例数据,对每个状态分量,初始状态数据中包含有对应状态名称的名称字段和状态值;所述结束状态数据对应于所述状态空间定义的实例数据,对每个状态分量,结束状态数据对应有状态名称的名称字段和状态值,其中,所述状态变迁数据中包括下述分量:变迁名称、触发变迁的事件集、触发变迁的约束数据、变迁触发前的状态要求数据、变迁触发后的状态数据,所述触发变迁的事件集包含有:事件名称和备份事件间隔;所述触发变迁的约束数据包含有:约束名称和约束参数列表。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质用于存储程序,其中,所述程序在被处理器执行时控制所述存储介质所在设备执行上述任意一项所述的事件序列的校验方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的事件序列的校验方法。
在本发明实施例中,构建校验脚本文件,其中,校验脚本文件中包含校验逻辑,获取待检验的事件序列文件,其中,事件序列文件中包含有按照时间顺序排列的多个事件,利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果。在该实施例中,可以利用校验逻辑对事件序列文件中的每个事件进行校验,可以通过快速编辑校验脚本对各个事件进行快速校验,校验简单且效率提高,进而解决相关技术中在自动检测控制作业是否符合校验逻辑时,校验困难的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种事件序列的校验方法的流程图;
图2是根据本发明实施例的另一种事件序列的校验系统的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在复杂的控制系统中,每一个控制分支的控制任务都由一系列的控制作业组成,每一个控制分支编排完毕后,都需要检查这一组控制作业(在本申请可以理解为带校验的事件)的安排是否正确,是否正确的标准是多样的、复杂的,将每一个正确的标准定义为一种校验逻辑,则针对每一组控制作业,存在着多种校验逻辑,正确的控制作业需要符合所有控制逻辑。
本申请中可以应用于基于状态变迁的事件序列校验中,对发生状态变迁的事件进行逻辑校验,以确定该事件是否符合校验逻辑,查询结果可视化程度更高,让普通的用户都能知道如何进行校验。
根据本发明实施例,提供了一种事件序列的校验方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种事件序列的校验方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,构建校验脚本文件,其中,校验脚本文件中包含校验逻辑;
步骤S104,获取待检验的事件序列文件,其中,事件序列文件中包含有按照时间顺序排列的多个事件;
步骤S106,利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果。
通过上述步骤,可以构建校验脚本文件,其中,校验脚本文件中包含校验逻辑,获取待检验的事件序列文件,其中,事件序列文件中包含有按照时间顺序排列的多个事件,利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果。在该实施例中,可以利用校验逻辑对事件序列文件中的每个事件进行校验,可以通过快速编辑校验脚本对各个事件进行快速校验,校验简单且效率提高,进而解决相关技术中在自动检测控制作业是否符合校验逻辑时,校验困难的技术问题。
下面对上述各个实施步骤进行说明。
步骤S102,构建校验脚本文件,其中,校验脚本文件中包含校验逻辑。
可选的,校验脚本文件采用状态和变迁描述校验逻辑,校验逻辑采用结构化描述。
校验脚本文件中包括多个构成元素,多个构成元素包括:
1)状态空间定义(可为一个),状态空间定义中包含有至少一个状态分量(一个或多个),每个状态分量对应有状态名称(1个)和状态类型(1个);即可以在状态空间定义给出需要进行事件校验的状态名称和状态类型。
2)初始状态数据(0个或1个),初始状态数据为状态空间定义的实例,针对每一个状态分量,可选的给出状态的值,如对于上述状态空间定义的状态名称和状态类型,分别给出对应状态名称的名称字段(1个)和状态值(1个);其中,该初始状态数据为可选项。
3)结束状态数据(0个或1个),结束状态数据为状态空间定义的实例,针对每一个状态分量,可选的给出状态的值,如对于上述状态空间定义的状态名称和状态类型,分别给出对应状态名称的名称字段(1个)和状态值(1个);其中,该结束状态数据为可选项。
4)状态变迁数据(1个或多个),其中,状态变迁数据中包括下述分量::
1、变迁名称(1个);该变迁名称为必须项。
2、触发变迁的事件集(1个),其中,触发变迁的事件集包含有:备份事件间隔(1个)和事件名称(1个或多个);该触发变迁的事件集为必须项。
3、触发变迁的约束数据(0个或多个),其中,触发变迁的约束数据包含有:约束名称(1个)和约束参数列表(0个或多个);该触发变迁的约束数据为可选项。
4、变迁触发前的状态要求数据(1个),其中,变迁触发前的状态要求数据对应状态分量(1个或多个),该状态分量也对应有状态名称(1个)和状态值(1个或多个);该变迁触发前的状态要求数据为可选项。
5、变迁触发后的状态数据(0个或1个),其中,变迁触发后的状态数据包含有状态分量(1个或多个),状态分量对应有状态名称(1个)和状态值(1个或多个)。该变迁触发后的状态数据为可选项。
在本申请中,校验逻辑的描述语言可以采用XML语言作为校验脚本文件的承载载体,其架构定义文件(XSD文件)按照校验逻辑的结构定义。符合校验逻辑架构定义的XML文件即可视为一个校验脚本文件。
在本申请中一可选的示例中,构建校验脚本文件包括:确定与校验逻辑对应的多个构成元素;对每个构成元素进行可视化编辑,得到元素文件,其中,元素文件支持通过预设编程语言实现事件代号与事件名称对应查询;根据元素文件构建校验脚本文件。
在本申请中,为实现校验脚本文件的可视化编辑,针对校验脚本文件中的每一个构成元素,定义可视化编辑样式,利用校验脚本文件的架构特性,实现语法制导的脚本编辑。可选的,本申请中支持的预设编程语言可以为Java编程语言,利用该JAVA支持类,可以实现事件代号与事件名称对查等编辑辅助。
步骤S104,获取待检验的事件序列文件,其中,事件序列文件中包含有按照时间顺序排列的多个事件。
可选的,可设置事件序列的路径,选择该路径下的文件。这些文件内的事件集合并集构成等待校验的事件序列,进而确定出一个事件序列文件。
在本申请中,可设置校验脚本的路径,选择该路径下的文件,这些文件构成了待检验逻辑的集合,每一个校验脚本文件构成一个校验逻辑。
在本申请中可以利用管理器,将选择的事件序列文件打开、合并、清理、排序,构成按照时间顺序排序的事件集,事件集中包括多个事件。
步骤S106,利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果。
可选的,利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果包括:按顺序判断事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定事件是否符合校验逻辑,得到校验结果。
通过读入校验脚本文件,然后对每个事件,按顺序完成状态变迁触发判断,判断针对脚本文件中的所有变迁,按顺序进行,变迁触发过程中若存在不符合校验逻辑的情况,将结果返回管理器。
对于本申请的上述实施方式,按顺序判断事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定事件是否符合校验逻辑包括:判断事件状态的变迁触发是否满足约束条件,并在变迁触发不满足约束条件的情况下,确定事件状态的变迁触发不符合校验逻辑;在变迁触发满足约束条件的情况下,判断事件是否为备份事件,并在事件为备份事件的情况下,触发变迁;判断主份事件的当前状态是否满足变迁触发的状态要求,并判断备份事件是否满足变迁触发的最终要求;在主份事件的当前状态不满足变迁触发的状态要求的情况下,和/或,在备份事件不满足变迁触发的最终要求的情况下,不触发变迁。
即可以在进行变迁触发的判断时,在变迁触发不满足约束条件的情况下,确定事件状态的变迁触发不符合校验逻辑时,并可以将结果返回给管理器,通过管理器控制逻辑的运行。
而在判断事件的当前状态是否满足变迁触发的状态要求后,如果满足,完成变迁触发后的状态转换,如果不满足,退出后续判断过程,将结果返回管理器。
另一种可选的,在利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果之后,方法还包括:根据校验结果,生成校验日志;通过日志窗口展示校验日志。
该校验日志可以是给开发人员或者使用者通过终端的可视化窗口查看的日志文件,通过该校验日志,用户可以知道校验脚本文件中哪些事件不符合校验逻辑,进而根据校验结果对脚本或事件进行修改,更新校验脚本文件,满足控制作业的要求。
通过本申请实施例,校验逻辑的架构可以通过开发人员提供,领域专家不需要处理架构相关任何内容,在脚本架构和编辑器语法制导的支持下,领域专家采用可视化方式,快速编辑校验脚本;而且状态定义和状态变迁具有较强的表达能力,通过灵活的状态定义和变迁定义,能实现较复杂的控制逻辑脚本拟制;并且约束表达方式通过约束函数实现,可自由定义,通过约束函数的拓展,具备使用通用高级语言进一步增强校验逻辑的能力。最后通过脚本不断积累,形成脚本库,便于领域知识的积累和传承。
下面通过另一实施例对本申请进行说明。
图2是根据本发明实施例的另一种事件序列的校验系统的示意图,如图2所示,该系统可以包括:编辑器21,验证器23,管理器25,其中,
编辑器21,用于构建校验脚本文件,其中,校验脚本文件中包含校验逻辑,校验逻辑通过预设的校验语言表述;
验证器23,利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果,其中,事件序列文件中包含有按照时间顺序排列的多个事件管理器25,用于调用验证器,并通过预设的日志窗口展示与校验结果对应的校验日志。
通过上述的事件序列的校验系统,可以利用编辑器21构建校验脚本文件,其中,校验脚本文件中包含校验逻辑,校验逻辑通过预设的校验语言表述,通过验证器23利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果,其中,事件序列文件中包含有按照时间顺序排列的多个事件管理器25,用于调用验证器,并通过预设的日志窗口展示与校验结果对应的校验日志。在该实施例中,可以利用校验逻辑对事件序列文件中的每个事件进行校验,可以通过快速编辑校验脚本对各个事件进行快速校验,校验简单且效率提高,进而解决相关技术中在自动检测控制作业是否符合校验逻辑时,校验困难的技术问题。
可选的,校验脚本文件采用状态和变迁描述校验逻辑,校验逻辑采用结构化描述。
校验脚本文件中包括多个构成元素,多个构成元素包括:
1)状态空间定义(可为一个),状态空间定义中包含有至少一个状态分量(一个或多个),每个状态分量对应有状态名称(1个)和状态类型(1个);即可以在状态空间定义给出需要进行事件校验的状态名称和状态类型。
2)初始状态数据(0个或1个),初始状态数据为状态空间定义的实例,针对每一个状态分量,可选的给出状态的值,如对于上述状态空间定义的状态名称和状态类型,分别给出对应状态名称的名称字段(1个)和状态值(1个);
3)结束状态数据(0个或1个),结束状态数据为状态空间定义的实例,针对每一个状态分量,可选的给出状态的值,如对于上述状态空间定义的状态名称和状态类型,分别给出对应状态名称的名称字段(1个)和状态值(1个);
4)状态变迁数据(1个或多个),其中,状态变迁数据中包括下述分量::
1、变迁名称(1个);
2、触发变迁的事件集(1个),其中,触发变迁的事件集包含有:备份事件间隔(1个)和事件(1个或多个);
3、触发变迁的约束数据(0个或多个),其中,触发变迁的约束数据包含有:约束名称(1个)和约束参数列表(0个或多个);
4、变迁触发前的状态要求数据(1个),其中,变迁触发前的状态要求数据对应状态分量(1个或多个),该状态分量也对应有状态名称(1个)和状态值(1个或多个);
5、变迁触发后的状态数据(0个或1个),其中,变迁触发后的状态数据包含有状态分量(1个或多个),状态分量对应有状态名称(1个)和状态值(1个或多个)。
在本申请中,校验逻辑的描述语言可以采用XML语言作为校验脚本文件的承载载体,其架构定义文件(XSD文件)按照校验逻辑的结构定义。符合校验逻辑架构定义的XML文件即可视为一个校验脚本文件。
对于编辑器21,本申请中,为实现校验脚本文件的可视化编辑,针对校验脚本文件中的每一个构成元素,定义可视化编辑样式,利用校验脚本文件的架构特性,实现语法制导的脚本编辑。可选的,本申请中支持的预设编程语言可以为Java编程语言,利用该JAVA支持类,可以实现事件代号与事件名称对查等编辑辅助。
对于管理器25,可设置事件序列的路径,选择该路径下的文件,这些文件内的事件集合并集构成等待校验的事件序列。
可设置校验脚本的路径,选择该路径下的文件,这些文件构成了待检验逻辑的集合,每一个脚本文件构成一个校验逻辑。
路径设置和文件选择可以保存和打开。
执行校验时,管理器调用后台的验证器,判断检验逻辑是否满足,在校验结果窗口给出结果,并在日志窗口给出日志信息。
对于验证器23,验证器为后台程序,接收管理器的调用,将验证结果返回给管理器。
验证器的工作流程为:
(1)将管理器中选择的事件文件打开、合并、清理、排序,构成按时间顺序排序的事件集。
(2)对每一个校验脚本文件,完成校验,流程如下:
1.打开、读入校验脚本文件。
2.对待校验的事件序列文件中的事件集的每一事件,按顺序完成状态变迁触发判断。判断针对脚本中的所有变迁,按顺序进行。变迁触发过程中若存在不符合校验逻辑的情况,将结果返回管理器。每一个变迁触发的判断流程为:
a.判断触发的约束条件是否满足,如果不满足,退出后续判断过程,将结果返回管理器。
b.判断是否为备份事件,如果是,将主份事件触发变迁的时间更新。
c.检查当前的状态是否满足变迁触发的状态要求,如果满足,完成变迁触发后的状态转换;如果不满足,退出后续判断过程,将结果返回管理器。
d.所有事件判断完毕后,检查最终状态是否满足要求,如果不满足,退出后续判断过程,将结果返回管理器。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质用于存储程序,其中,程序在被处理器执行时控制存储介质所在设备执行上述任意一项的事件序列的校验方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的事件序列的校验方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:构建校验脚本文件,其中,校验脚本文件中包含校验逻辑;获取待检验的事件序列文件,其中,事件序列文件中包含有按照时间顺序排列的多个事件;利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果。
可选的,校验脚本文件中包括多个构成元素,多个构成元素包括:状态空间定义,初始状态数据和/或结束状态数据,状态变迁数据,其中,状态空间定义中包含有至少一个状态分量,状态分量对应有状态名称和状态类型,初始状态数据对应于状态空间定义的实例数据,初始状态数据中包含有对应状态名称的名称字段和状态值的数值,结束状态数据对应于所述状态空间定义的实例数据,对每个状态分量,结束状态数据对应状态名称的名称字段和对应状态值的数值,其中,状态变迁数据中包括下述分量::变迁名称、触发变迁的事件集、触发变迁的约束数据、变迁触发前的状态要求数据、变迁触发后的状态数据,触发变迁的事件集包含有:事件名称和备份事件间隔;触发变迁的约束数据包含有:约束名称和约束参数列表。
可选的,上述处理器执行程序时,还可以实现以下步骤:确定与校验逻辑对应的多个构成元素;对每个构成元素进行可视化编辑,得到元素文件,其中,元素文件支持通过预设编程语言实现事件代号与事件名称对应查询;根据元素文件构建校验脚本文件。
可选的,上述处理器执行程序时,还可以实现以下步骤:按顺序判断事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定事件是否符合校验逻辑,得到校验结果。
可选的,上述处理器执行程序时,还可以实现以下步骤:判断事件状态的变迁触发是否满足约束条件,并在变迁触发不满足约束条件的情况下,确定事件状态的变迁触发不符合校验逻辑;在变迁触发满足约束条件的情况下,判断事件是否为备份事件,并在事件为备份事件的情况下,触发变迁;判断主份事件的当前状态是否满足变迁触发的状态要求,并判断备份事件是否满足变迁触发的最终要求;在主份事件的当前状态不满足变迁触发的状态要求的情况下,和/或,在备份事件不满足变迁触发的最终要求的情况下,不触发变迁。
可选的,上述处理器执行程序时,还可以实现以下步骤:在利用校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果之后,根据校验结果,生成校验日志;通过日志窗口展示校验日志。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种事件序列的校验方法,其特征在于,包括:
构建校验脚本文件,其中,所述校验脚本文件中包含校验逻辑;
获取待检验的事件序列文件,其中,所述事件序列文件中包含有按照时间顺序排列的多个事件;
利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果,
所述校验脚本文件中包括多个构成元素,所述多个构成元素包括:状态空间定义,初始状态数据和/或结束状态数据,状态变迁数据,其中,所述状态空间定义中包含有至少一个状态分量,所述状态分量对应有状态名称和状态类型;所述初始状态数据对应于所述状态空间定义的实例数据,对每个状态分量,初始状态数据中包含有对应状态名称的名称字段和状态值;所述结束状态数据对应于所述状态空间定义的实例数据,对每个状态分量,结束状态数据对应有状态名称的名称字段和状态值,其中,所述状态变迁数据中包括下述分量:变迁名称、触发变迁的事件集、触发变迁的约束数据、变迁触发前的状态要求数据、变迁触发后的状态数据,所述触发变迁的事件集包含有:事件名称和备份事件间隔;所述触发变迁的约束数据包含有:约束名称和约束参数列表,
利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果包括:按顺序判断所述事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定所述事件是否符合所述校验逻辑,得到所述校验结果。
2.根据权利要求1所述的方法,其特征在于,构建校验脚本文件包括:
确定与校验逻辑对应的所述多个构成元素;
对每个所述构成元素进行可视化编辑,得到元素文件,其中,所述元素文件支持通过预设编程语言实现事件代号与事件名称对应查询;
根据所述元素文件构建所述校验脚本文件。
3.根据权利要求1所述的方法,其特征在于,按顺序判断所述事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定所述事件是否符合所述校验逻辑包括:
判断事件状态的变迁触发是否满足约束条件,并在所述变迁触发不满足所述约束条件的情况下,确定所述事件状态的变迁触发不符合所述校验逻辑;
在所述变迁触发满足所述约束条件的情况下,判断所述事件是否为备份事件,并在所述事件为备份事件的情况下,触发变迁;
判断主份事件的当前状态是否满足变迁触发的状态要求,并判断所述备份事件是否满足变迁触发的最终要求;
在所述主份事件的当前状态不满足变迁触发的状态要求的情况下,和/或,在所述备份事件不满足变迁触发的最终要求的情况下,不触发变迁。
4.根据权利要求1所述的方法,其特征在于,在利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果之后,所述方法还包括:
根据所述校验结果,生成校验日志;
通过日志窗口展示所述校验日志。
5.一种事件序列的校验系统,其特征在于,包括:
编辑器,用于构建校验脚本文件,其中,所述校验脚本文件中包含校验逻辑,所述校验逻辑通过预设的校验语言表述;
验证器,利用所述校验逻辑对事件序列文件中的每个事件进行校验,得到校验结果,其中,所述事件序列文件中包含有按照时间顺序排列的多个事件
管理器,用于调用所述验证器,并通过预设的日志窗口展示与所述校验结果对应的校验日志,
所述校验脚本文件中包括多个构成元素,所述多个构成元素包括:状态空间定义,初始状态数据和/或结束状态数据,状态变迁数据,其中,所述状态空间定义中包含有至少一个状态分量,所述状态分量对应有状态名称和状态类型;所述初始状态数据对应于所述状态空间定义的实例数据,对每个状态分量,初始状态数据中包含有对应状态名称的名称字段和状态值;所述结束状态数据对应于所述状态空间定义的实例数据,对每个状态分量,结束状态数据对应有状态名称的名称字段和状态值,其中,所述状态变迁数据中包括下述分量:变迁名称、触发变迁的事件集、触发变迁的约束数据、变迁触发前的状态要求数据、变迁触发后的状态数据,所述触发变迁的事件集包含有:事件名称和备份事件间隔;所述触发变迁的约束数据包含有:约束名称和约束参数列表,
验证器在利用所述校验逻辑对所述事件序列文件中的每个事件进行校验,得到校验结果时,包括:按顺序判断所述事件序列中的每一事件状态的变迁触发是否满足预设条件,以确定所述事件是否符合所述校验逻辑,得到所述校验结果。
6.一种存储介质,其特征在于,所述存储介质用于存储程序,其中,所述程序在被处理器执行时控制所述存储介质所在设备执行权利要求1至4中任意一项所述的事件序列的校验方法。
7.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任意一项所述的事件序列的校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307375.5A CN110738384B (zh) | 2019-04-17 | 2019-04-17 | 事件序列的校验方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307375.5A CN110738384B (zh) | 2019-04-17 | 2019-04-17 | 事件序列的校验方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110738384A CN110738384A (zh) | 2020-01-31 |
CN110738384B true CN110738384B (zh) | 2022-09-23 |
Family
ID=69236651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910307375.5A Active CN110738384B (zh) | 2019-04-17 | 2019-04-17 | 事件序列的校验方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110738384B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522264B (zh) * | 2020-04-02 | 2024-01-23 | 青岛海尔科技有限公司 | 设备的控制方法及装置、存储介质、电子装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915287B (zh) * | 2014-03-11 | 2018-07-06 | 富士施乐实业发展(中国)有限公司 | 单元测试方法及系统 |
CN103888314B (zh) * | 2014-03-20 | 2017-06-09 | 西安电子科技大学 | 基于uio序列法验证有限状态机所处状态的方法 |
CN107678973B (zh) * | 2017-10-31 | 2020-06-05 | 北京润科通用技术有限公司 | 一种测试脚本的自动生成方法及系统 |
CN108446143A (zh) * | 2018-02-28 | 2018-08-24 | 万惠投资管理有限公司 | 事件处理方法及装置 |
CN109445937B (zh) * | 2018-10-17 | 2021-01-01 | 山东易通发展集团有限公司 | 一种组件化编程及无缝执行方法 |
CN109299150B (zh) * | 2018-10-24 | 2022-01-28 | 万惠投资管理有限公司 | 一种可配置多数据源适配规则引擎解决方法 |
-
2019
- 2019-04-17 CN CN201910307375.5A patent/CN110738384B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110738384A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589884B2 (en) | Method and system for identifying regression test cases for a software | |
AU2012100128A4 (en) | A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom | |
CN110928772A (zh) | 一种测试方法及装置 | |
Nguyen et al. | Recommending API usages for mobile apps with hidden markov model | |
US8869111B2 (en) | Method and system for generating test cases for a software application | |
CN109189469B (zh) | 基于反射的安卓应用微服务化方法及系统 | |
CN109118353B (zh) | 风控模型的数据处理方法和装置 | |
CN108959068A (zh) | 软件界面测试方法、设备及存储介质 | |
CN109240666B (zh) | 基于调用栈和依赖路径的函数调用代码生成方法及系统 | |
CN103646104A (zh) | 一种强实时故障诊断方法及系统 | |
CN109871963A (zh) | 运行故障还原方法、装置、电子设备及存储介质 | |
CN114003451B (zh) | 一种接口测试方法、装置、系统及介质 | |
CN109634570A (zh) | 前后端集成开发方法、装置、设备及计算机可读存储介质 | |
CN111538659B (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN111259212B (zh) | 一种遥测数据判读方法、装置、设备及存储介质 | |
CN112882930A (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
CN109284331A (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN110738384B (zh) | 事件序列的校验方法及系统 | |
CN113672674A (zh) | 一种自动编排业务流的方法、电子装置和存储介质 | |
WO2021164189A1 (zh) | 应用场景驱动的Android应用微服务自动生成方法 | |
CN111708712A (zh) | 用户行为测试用例的生成方法、流量回放方法及电子设备 | |
CN115576834A (zh) | 支撑故障还原的软件测试复用方法、系统、终端及介质 | |
CN112256978B (zh) | 一种基于数据模型的数据处理方法、装置、介质 | |
KR100369252B1 (ko) | 소프트웨어 테스트 시스템 및 그 방법 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |