一种基于接口模型智能挖掘的一体化装备测试诊断方法

文档序号:37641870发布日期:2024-04-18 18:04阅读:10来源:国知局
一种基于接口模型智能挖掘的一体化装备测试诊断方法

本发明属于计算机软件领域,尤其涉及一种基于接口模型智能挖掘的一体化装备测试诊断方法。


背景技术:

1、在工业装备这样的复杂系统中,代码庞杂且难以获取,测试主要采用黑盒方法,自动化的黑盒测试多应用基于模型的技术。这些技术要求先为被测系统建立一个数学模型,然后基于数学模型生成测试用例,或分析测试充分性。

2、如何构造模型是上述基于模型的测试中的一个难点,过去模型主要由人工构建,其对专业人员的依赖强,代价高昂。从历史运行记录中挖掘模型是一个思路,但现有方法都要求事先提供已采集好的会话,这对于大型多任务并行的分布式装备系统是个难点。此外,对于一个新的软件,或者从历史版本演进过来的软件,完整全面的历史运行记录可能不存在,必须寻找新的途径来获得模型。


技术实现思路

1、发明目的:本发明的目的在于提供一种基于接口模型智能挖掘的一体化装备测试诊断方法。可以自动构建装备接口模型来支撑测试诊断,避免了现有方法对模型构建专家的依赖,能够降低测试诊断方案设计和实施的代价。

2、技术方案:本发明的一种基于接口模型智能挖掘的一体化装备测试诊断方法,用于从装备自然语言文档和历史通信报文记录来挖掘其系统接口模型,进而构造测试用例进行测试,以及开展自动故障检测诊断,包括如下步骤:

3、步骤1、从计算机客户端输入描述领域概念的装备构造知识图谱、描述装备组件间工作机理的装备自然语言文档、描述报文格式的装备接口格式文档,采用基于大语言模型的文本来源事件自动机挖掘技术,获得表达部分装备组件之间的工作机制的事件自动机anl;

4、步骤2、从计算机客户端输入装备历史通信报文记录,采用基于关联提取的报文记录来源事件自动机挖掘技术,获得表达部分装备组件之间工作机制的事件自动机atr;

5、步骤3、利用经典自动机合并算法对步骤1的事件自动机anl和步骤2的事件自动机atr进行一体化合成,使合并后的自动机接受anl或atr对应的语言,得到能全面描述装备组件间工作机制的系统接口模型,系统接口模型通过有限自动机表达,初态为会话开始,迁移对应组件间接口报文,状态变迁路径对应合法接口间报文通信序列;

6、步骤4、基于步骤3所得的系统接口模型针对选定的装备组件边界,构造正例与反例报文序列,作为装备的测试用例,通过测试用例对装备进行测试;

7、步骤5、基于步骤3所得的系统接口模型,生成基于自动机的装备故障检测器,检测报文时序异常,并结合装备构造知识图谱,定位故障关联的组件,对装备进行自动故障检测诊断。

8、进一步的,步骤1具体包括如下步骤:

9、步骤1.1、会话抽取,目标是从描述装备组件间工作机理的自然语言文档中抽取表达接口间工作流的段落;

10、步骤1.2、知识注入:目标是对步骤1.1所得的工作流描述段落进行扩增,标注上当前大语言模型未知的外部知识,进而进行推理;

11、步骤1.3、提示训练prompt tuning:目标是对大语言模型进行微调训练,使之能够更好地输出接口报文之间的顺序信息,提示训练用的提示为步骤1.2知识注入后的工作流描述段落和问句,对于提示的回答为数学化的工作流过程描述;

12、步骤1.4、事件时序提取:将待分析装备从步骤1.1获得的工作流描述,投入步骤1.2进行知识注入,然后按步骤1.3的方法构造成提示问句,输入给经过微调训练的大语言模型,获得每个工作流描述段落中所包含的单次会话中接口报文时序关系;

13、步骤1.5、事件自动机构建:从关于接口报文的一组事件时序关系构造出能够描述装备接口整体时序流程的自动机;具体过程先从已知的报文顺序,构造出一个报文接受树pta,该树节点为状态,每个迁移对应一个接口报文,树的每个分支路径代表一个不同的会话,而路径上所有接口报文构成的序列为会话内的接口报文序列;然后对该自动机进行约简,约简通过初始自动机上的状态合并实现;如果两个状态经过相同的报文到达或者两个状态往后的后继状态非常接近,则可考虑将其进行合并;合并规则按启发式方式定义;合并后,状态用同一个状态节点表达,相关迁移也将被重定向;经过合并操作后,得到一个能够描述装备文档所记述的接口报文间事件时序关系的自动机anl。

14、进一步的,步骤1.1具体过程如下:

15、(1.1.1)给定一组从历史项目设计文档中的获取的描述项目背景、领域概念、系统工作流等的段落,按如下模板,构造出一组提示prompt和回答answer组合,输入给大语言模型,进行模型微调训练;

16、提示模板:“请判断以下内容是否属于工作流,回答是或不是,不用具体解释:

17、<paragraph>”

18、回答模板:“是”/“不是”

19、(1.1.2)对给定的待抽取信息的文档进行段落切分,将每一段落按步骤(1.1.1)中的提示样式输入大语言模型,如果模型给出的答案为“是”,则将其作为表达接口间工作流的段落保留,其它段落丢弃。

20、进一步的,步骤1.2具体过程如下:

21、(1.2.1)从装备构造知识图谱获取各个装备组件的主要功能接口,再从描述报文格式的装备接口格式文档中提取出功能接口对应的具体报文,装备构造知识图谱中包含目标装备中各组件的实体信息、组件对应的接口实体,组件实体和接口实体间具有激发和响应的关系,该知识图谱在领域通用知识图谱的基础上进行人工修订获得,反映概念层面上装备所具有的接口;

22、本发明利用装备构造知识图谱中的接口名称、组件实体名称和实体关系与属性信息在装备接口格式文档中提取每一接口相关的具体报文。这些报文是接口在实现层面的映射。具体而言,装备接口格式文档中包含一系列接口报文的字段格式定义和关于接口的自然语言注释,文档以xml、idl等标准形式提供。将从接口格式文档中的字段等标识符名称和注释,提取出一个接口相关的名词描述,以及接口报文整体名称到其字段成员名称之间构成的关系描述。这些描述和关系将和装备构造知识图谱中的接口实体及相关关系、属性进行模糊匹配,相似度高的接口报文作为装备构造知识图谱中接口实体的报文属性。

23、(1.2.2)在提取到装备构造知识图谱中的接口实体及其在具体报文层面的映射后,按如下示例格式对表达接口间工作流的段落进行扩增,在其中标注入大语言模型所不具有的外部知识:

24、“首先客户端[服务的请求者:发送请求报文,接收确认报文]向服务器[服务的提供者:发送确认报文,接收请求报文]发送一段请求报文[tcp段:具有标志位syn和ack,具有序号seq,具有确认号ack],其中:标志位syn[tcp段标志位syn]设置为1,表示请求建立连接;序号seq[tcp段序号seq]初始化为x”;

25、扩增的内容在方括号[]所标记的区域内,扩增过程首先通过实体识别算法找出在给定段落中出现的装备构造知识图谱中的相关实体,然后为实体标注上其在上述图谱中所具有的相关概念和关系、属性信息,以便于大语言模型进行推理。

26、进一步的,步骤1.3具体过程如下:

27、提示:“假设格式<a,x[value],b>表示a向b发送x,其中value表示x所具有的全部属性值,对于以下给定文本t,用上述格式表达文本t中的顺序关系,仅回答格式化的内容:首先客户端[服务的请求者:发送请求报文,接收确认报文]向服务器[服务的提供者:发送确认报文,接收请求报文]发送一段请求报文[tcp段:具有标志位syn和ack,具有序号seq,具有确认号ack],其中:标志位syn[tcp段标志位syn]设置为1,表示请求建立连接;序号seq[tcp段序号seq]初始化为x;然后服务器[服务的提供者]接收到客户端[服务的请求者]发来的请求报文[tcp段]后,返回一段确认报文[tcp段],其中:标志位为syn[tcp段标志位syn]和ack[tcp段标志位ack]设置为1,表示确认客户端[服务的请求者]的序号seq[tcp段序号seq]有效,服务器[服务的提供者]能正常接收客户端[服务的请求者]发送的数据,并同意创建新连接;序号seq[tcp段序号seq]设置为y;确认号ack[tcp段确认号ack]设置为x+1,表示收到客户端[服务的请求者]的序号seq[tcp段序号seq],并将其值加1作为自己确认号ack[tcp段确认号ack]的值”;

28、回答:<客户端,请求报文[tcp段:syn=1,seq=x],服务器>

29、<服务器,确认报文[tcp段:syn=1,ack=1,seq=y,ack=x+1],客户端>

30、将自动构建的提示问题和人工针对问题给出的答案进行组合,输入给大语言模型进行训练,可以使模型获得从工作流描述中推断接口报文顺序的能力。

31、进一步的,步骤2具体过程如下:

32、步骤2.1、纵向会话抽取:目标是将所有接口报文历史记录按时间线索提取为若干会话,装备的功能业务是循环反复提供,一次循环为一个会话,代表系统的一个使用流程,不同会话间存在间隔,会话提取算法首先扫描整个报文历史记录时间线,然后对历史报文按时间进行聚类,能聚在一个类中的算一个会话;

33、步骤2.2、横向会话抽取:装备中会同时运行多路任务,不同任务的接口报文之间互相不产生影响;将不同任务的接口报文进行分离,使得一个会话专注于一个任务;在步骤2.1所得会话的基础上,分析出现在一个会话中的接口报文,如果两个报文出现在一个会话中的概率低于阈值,将其进行分离;如果一个会话s,其中出现了两组报文st1和st2,两者之间出现在一个会话中的概率低,则将s分离为st1和st2对应的两个会话;

34、步骤2.3、基于会话中的接口报文序列,构建其事件自动机atr,具体过程先从各个会话的报文顺序,构造出一个报文接受树ptatr,该树节点为状态,每个迁移对应一个接口报文,树的每个分支路径代表一个不同的会话,而路径上所有接口报文构成的序列为会话内的接口报文序列;然后对该自动机进行约简,约简通过初始自动机上的状态合并实现;如果两个状态经过相同的报文到达或者两个状态往后的后继状态非常接近,则可考虑将其进行合并;合并规则按启发式方式定义;合并后,状态用同一个状态节点表达,相关迁移也将被重定向;经过合并操作后,得到一个能够描述装备历史报文记录所记述的接口报文间事件时序关系的自动机atr。进一步的,步骤4具体过程如下:

35、步骤4.1、正例构造:首先,划定待测系统边界,复杂装备由若干组件构成,被划入测试边界内的组件其接口上的报文由该划定范围内部产生,不由测试用例给出,测试用例由边界外的激励接口报文驱动;下一步,在装备接口模型上进行自动机上的路径生成,每条路径对应一个测试,由一系列接口报文组成的序列构成;然后,用划定的测试边界来过滤接口报文序列,去除内部报文,得到正例测试用例;

36、步骤4.2、反例构造:在正例测试用例的基础上进行变异来得到反例测试用例,变异手段为注入会话内的接口报文、删除接口报文、嫁接测试报文序列三种;所得结果在系统接口模型上进行验证,去掉符合接口模型的报文序列,得到表达异常工作场景的反例测试用例;

37、步骤4.3、报文数据取值填充:依据装备接口格式文档,采用随机生成等手段填充报文数据,进一步具体化报文使测试用例具有可执行性。

38、进一步的,步骤5具体过程如下:

39、步骤5.1、接口报文会话识别:为保证一个会话上检测到的故障不影响后续其它会话中的故障检测、来自其它会话的接口报文不会造成本会话上的时序异常误判,以会话为范围进行故障检测;如果两个接口报文在发生的时间间隔上超过一个上限范围,则认为属于不同会话;如果两个接口报文在系统接口模型中从不归属同一会话,则认为其来自不同会话,互不干扰;

40、步骤5.2、基于系统接口模型的故障检测:在同一会话内,基于系统接口模型进行故障检测,检测过程在模型的自动机上输入接口报文,使模型按接口报文对应的变迁来运行,如果变迁不存在,或者变迁跳转到标注为异常的状态,则认为发现一个故障;

41、步骤5.3、故障定位:在检测到故障后,利用装备构造知识图谱来定位故障相关的组件;装备构造知识图谱中,组件实体具有到接口实体的激发和响应关系,接口实体具有通信报文属性;根据这种关联,从故障报文推断发出报文的组件、报文预计的响应方实体,可为当前会话中的前置接口报文进行关联组件的定位,形成故障的检测和诊断。

42、有益效果:与现有技术相比,本发明具有如下显著优点:

43、(1)本发明依托大语言模型,提出了一种从装备自然语言设计文档中挖掘测试模型,并和来自历史运行记录挖掘的模型相结合,以支撑装备测试和诊断的方法。该方法能够从装备的文档、历史运行记录、报文格式描述等资源,高度自动化地构造出其系统模型,利用模型自动产生测试用例,提高测试效率。同时,基于模型构造故障诊断器,帮助检测和排查装备质量问题。相对那些需要人工构造测试模型的技术,本发明提供了一种可用性更佳的方法。

44、(2)本发明自动化程度高,可以自动构建装备接口模型来支撑测试诊断,避免了现有方法对模型构建专家的依赖,能够降低测试诊断方案设计和实施的代价,提高方法可用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1