一种网络化控制CPS系统的智能化测试场景编排方法与流程

文档序号:18884390发布日期:2019-10-15 20:39阅读:296来源:国知局
一种网络化控制CPS系统的智能化测试场景编排方法与流程

本发明一种网络化控制cps系统的智能化测试场景编排方法,属于测试技术领域。



背景技术:

随着软件测试技术的不断发展,面对存在上千万用户实施并发负载及实时性能监测的复杂系统,一种能够预测系统行为和性能的负载测试工具成为技术人员必须产品,于是诸如loadrunner、webbench和kylinpet类的性能测试软件被广泛应用。该类性能测试软件面向对象大多是整个企业或者网络系统,通过模拟实际用户的操作行为和实行实时性能监测,来帮助企业用户更快更好的查找和发现问题。

在信息物理系统(cps)中,各个子系统通过各种类型的通信网络进行信息传输,一个系统可能由多个规模较小的子系统互联组成,子系统中的物理设备同样需要由某种或多种异构的网络进行互联,这使融合系统的性能测试变得异常复杂。面对众多的测试代码以及对应的需要建立的多种测试场景需要耗费大量的精力。代码间复杂的调用关系,使技术人员面临着又一层次的困境。在硬件、软件与网络相结合的复杂系统中,例如,面临一个无线或有线控制的网控机器人,使用loadrunner进行性能测试过程中,技术人员在对不同的动作组合进行性能测试时,将需要对所有的动作以及协议进行录制,这样不仅效率低,而且录制过程中可能出现混乱的情况,需要进行手动修改。同时,测试场景繁杂多变,测试模型图形之间存在相互联系,且相互制约生成消息序列,并且在测试模型中易出现复杂的消息类型。由测试模型生成测试场景的方法也较为复杂,通常包括建立顺序图模型、提取状态信息、定义十字链表结构、遍历算法以及建立等价有向图等步骤。基于该种复杂的测试场景生成方法,以及在测试场景基础上实施的智能化测试,一种能够实现面向对象的可视化场景编排方法,将节省代码编写时间,也能使生成多个测试场景的流程变得容易。



技术实现要素:

本发明技术解决问题:克服现有技术的不足,提供一种网络化控制cps系统的智能化测试场景编排方法,能够解决现有技术中,实施性能测试需要对所有的测试场景进行生成,以及生成代码混乱需要人工介入手动修改的问题,能够实现面向对象的可视化及智能化测试场景的生成。

本发明技术解决方案:

一种网络化控制cps系统的智能化测试场景编排方法,其具体实现步骤如下所示:

步骤1:选定被测试目标,使用测试软件对被测试目标进行测试,生成第一测试信息;

步骤2:对第一测试信息进行处理,所述处理包括对状态信息进行提取、对状态信息进行分类以及生成初始测试子模块;

步骤3:将初始测试子模块转化为等价有向图,检查状态信息之间逻辑,生成等价有向模型;

步骤4:提出需求准则,对等价有向模型进行复数次编排,生成复数条测试场景,并生成对应于编排场景的编排信息;

步骤5:将所述编排信息应用至所述被测试目标,重新执行,生成第二测试信息;

步骤6:分析第二测试信息,对被测试目标进行评估。

通过以上步骤,能够解决现有技术中,对网络化系统或整个企业实施性能测试需要对所有的测试场景进行生成,以及生成代码混乱需要人工介入手动修改的问题,能够实现面向对象的可视化测试场景的生成,并且能够实现针对用户需求准则的场景设计,使整个过程变得简单。

其中,步骤1中所述的“选定被测试目标,使用测试软件对被测试目标进行测试,生成第一测试信息。”具体实施步骤如下:所述被测试目标包括网络化系统、企业以及其他需测试单元;所述测试软件为与被测试目标进行物理或网络连接,并对被测试目标进行测试分析的商用或开源测试软件,包括例如loadrunner(一种用于测试系统行为和性能的商业软件)、webbench(用于测试web性能的工具)和kylinpet(一种国产商业工具)类的性能测试软件,该类性能测试软件支持一种或复数种协议,具有强大的性能测试功能。当所述测试软件完成测试时,会自动生成测试文件,记为第一测试信息。

其中,步骤2中所述的“对第一测试信息进行处理,所述处理包括对状态信息进行提取、对状态信息进行分类以及生成初始测试子模块。”具体实施步骤如下:将所述测试信息导入到任一种能够实现读取第三方信息,并重新生成信息的商用或开源可视化图形设计软件中进行处理。在处理过程中,所述状态信息包括被测试目标在静止或激发情况下的状态或属性,该种状态信息表现方式可以是代码或文字。在状态信息为代码信息的情况下,提取状态信息的步骤则包括对动作函数代码、对条件函数代码以及循环函数代码进行提取,对状态信息进行分类则包括将所提取的代码信息分为动作信息、条件信息和循环信息,并形成信息集,在网控机器人的性能测试中,信息集则包含动作集、协议集以及约束集;对信息集中重复信息进行删减,对相似信息进行归纳则可生成初始测试子模块。在一种实施方式中,采用loadrunner对集成式动作机器进行测试后,所生成的后缀为.c的文件导入到任意一种可读取文件并进行可视化图形操作,重新生成文件的可视化图形设计软件中,提取机器的动作指令函数、动作间思考时间函数、动作间顺序及循环函数,并对上述函数进行整理归纳,集成初始测试子模块。

其中,步骤3中所述的“将初始测试子模块转化为等价有向图,检查状态信息之间逻辑,生成等价有向模型。”具体实施步骤如下:将初始测试子模块抽象为执行节点,将初始测试子模块间的逻辑关系抽象为连接各节点的弧,采用含有单向箭头的弧线连接执行节点,将分散的子模块在模块间逻辑关系的基础上关联起来,所述初始测试子模块便可以转化为等价有向模型。

其中,步骤4中所述的“提出需求准则,对等价有向模型进行复数次编排,生成复数条测试场景,并生成对应于编排场景的编排信息。”其具体步骤如下:提出需求准则,用于根据用户需求对所生成的有向模型进行更改,以保证所设计出的有向模型符合所需测试需求;进行复数次编排,生成复数条测试场景,用于对初始测试子模块进行最大限度的排列组合,且在需求准则的基础上,设计出符合模块间逻辑的等价有向模型;生成对应于编排场景的编排信息,用于使每个等价有向模型均可以信息的形式被应用与被测试目标,这要求所述可读取并重新生成信息的可视化图形设计软件拥有可视化图形操作功能。在一种实施方式中,需求准则以最大覆盖率准则为主,则应使所设计的有向模型能最大程度的测试被测试目标中的信息参数,在对有向模型进行编排时,可以以拖动按钮的形式改变初始测试子模块的相对位置,以拖动弧线的方式改变初始测试子模块间的逻辑关系。在本次实施方式中,将动作指令函数转化为独立的按钮,将循环、顺序、条件函数转为按钮之间的弧线连接,当要改变动作指令函数本身或动作间的逻辑关系时,只需要在图形设计界面对按钮及弧线进行拖曳,通过多次保存不同的等价有向模型,生成不同的编排信息,以供后续使用。

其中,步骤5中所述的“将所述编排信息应用至所述被测试目标,重新执行,生成第二测试信息。”具体实施步骤如下:将编排信息应用至被测试目标后重新执行,用于将编排设计的对象逻辑图以代码或文字的形式导入到被测试目标中,进行不同于测试目标本身所具备的测试类目;生成第二测试信息,指被测试目标执行编排信息后所生成的测试信息。

其中,步骤6中所述的“分析第二测试信息,对被测试目标进行评估。”具体实施步骤如下:分析第二测试信息,用于将重新生成的测试信息与第一测试信息进行对比,在需求准则为覆盖率准则的情况下,对比第一测试信息与第二测试信息下的覆盖率情况,得出不同的测试场景对测试的效果影响程度,判断被测试目标的具体行为信息以及性能参数。

本发明与现有技术相比的优点在于:通过以上步骤,能够解决现有技术中,对网络化系统或整个企业实施性能测试需要对所有的测试场景进行生成,以及生成代码混乱需要人工介入手动修改的问题,能够实现面向对象的可视化测试场景的生成,并且能够实现针对用户需求准则的场景设计,使整个过程变得简单。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是一种网络化控制cps系统的智能化测试场景编排方法的示意图;

图2是一种网络化控制cps系统的智能化测试场景编排方法的原理图;

图3是一种网络化控制cps系统的智能化测试场景编排方法的示意图;

图4是一种网络化控制cps系统的智能化测试场景编排方法的又一示意图。

具体实施方式

这里将详细的对示例性实施例进行说明,以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式;相反,它们仅是与所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

如图1所示,本发明一种网络化控制cps系统的智能化测试场景编排方法,实施步骤如下:

101、选定被测试目标,使用测试软件对被测试目标进行测试,生成第一测试信息。

其中,所述被测试目标包括网络化系统或企业以及其他需测试单元;所述测试软件为与被测试目标进行物理或网络连接,并对被测试目标进行测试分析的商用或开源测试软件,包括例如loadrunner(一种用于测试系统行为和性能的商业软件)、webbench(用于测试web性能的工具)和kylinpet(一种国产商业工具)类的性能测试软件,该类性能测试软件支持一种或复数种协议,具有强大的性能测试功能。当所述测试软件完成测试时,会自动生成测试文件,记为第一测试信息。在一种实施方式中,采用loadrunner对任一类集成式动作机器进行测试,该机器能服从指令进行前后左右调头等动作,测试完成时,生成后缀为.ws以及.c文件。

102、对第一测试信息进行处理,所述处理包括对状态信息进行提取、对状态信息进行分类以及生成初始测试子模块。

其中,将所述测试信息导入到任一种能够实现读取第三方信息,并重新生成信息的商用或开源可视化图形设计软件中进行处理。如图2所示,在处理过程中,所述状态信息包括被测试目标在静止或激发情况下的状态或属性,该种状态信息表现方式可以是代码或文字。在状态信息为代码信息的情况下,提取状态信息的步骤则包括对动作函数代码、对条件函数代码以及循环函数代码进行提取,对状态信息进行分类则包括将所提取的代码信息分为动作信息、条件信息和循环信息,并形成信息集;如图3所示,利用测试软件对网控机器人进行测试,将测试过程结束后生成的测试文件进行提取,导入本领域技术人员研发的用于编排的软件中,进行顺序图的生成,将关键信息进行提取后生成不同的信息集合包括:动作集合、协议集合和约束集合等,该信息集合构成初始测试子模块,对每个信息集合采用任意一种适合变异的算法对集合进行随机算法、遗传算法和变异算法处理,构成新的信息集合,新的信息集合在约束集合的判断下生成异常场景或正常场景,测试场景的生成模型展示在该编排软件中,用于下一步的测试以及处理。

该信息集包含动作集、协议集和约束集:在动作集有限的情况下,可以采用遗传算法或随机生成等方法生成动作用例,以保证动作集中包含足够多的动作;在协议集中,协议分为固定的协议集合,也分为在协议故障注入情况下,变异组合形成的新的协议;在约束集中,分为对动作的先后顺序的约束以及对动作是否允许进行的约束。对信息集中重复信息进行删减,对相似信息进行归纳则可生成初始测试子模块。在一种实施方式中,采用loadrunner对集成式动作机器进行测试后,所生成的后缀为.c和.ws的文件导入到任意一种可读取文件并进行可视化图形操作,重新生成文件的可视化图形设计软件中,提取机器的动作指令函数、动作间思考时间函数、动作间顺序及循环函数,并对上述函数进行整理归纳,集成初始测试子模块。

103、将初始测试子模块转化为等价有向图,检查状态信息之间逻辑,生成等价有向模型。

其中,将初始测试子模块抽象为执行节点,将初始测试子模块间的逻辑关系抽象为连接各节点的弧,采用含有单向箭头的弧线连接执行节点,将分散的子模块在模块间逻辑关系的基础上关联起来,所述初始测试子模块便可以转化为等价有向模型。在一种具体的实施方式中,可以采用扩展的十字链表进行有向图存储,执行节点包括两个链域,分别指向以该顶点为弧头、弧尾的第一个弧节点,执行节点还包括相关域,用于存储对象相关的信息,如对象的名称、节点的被访问情况和对象的接收和发送对象。

104、提出需求准则,对等价有向模型进行复数次编排,生成复数条测试场景,并生成对应于编排场景的编排信息。

提出需求准则,用于根据用户需求对所生成的有向模型进行更改,以保证所设计出的有向模型符合所需测试需求;进行复数次编排,生成复数条测试场景,用于对初始测试子模块进行最大限度的排列组合,且在需求准则的基础上,设计出符合模块间逻辑的等价有向模型;生成对应于编排场景的编排信息,用于使每个等价有向模型均可以信息的形式被应用与被测试目标,这要求所述可读取并重新生成信息的可视化图形设计软件拥有可视化图形操作功能。在一种实施方式中,需求以最大覆盖率为主,则应使所设计的有向模型能最大程度的测试将被测试目标中的信息参数,在对有向模型进行编排时,可以以拖动按钮的形式改变初始测试子模块的相对位置,以拖动弧线的方式改变初始测试子模块间的逻辑关系。在本发明实施方式中,如图4所示,将动作指令函数转化为独立的按钮,将循环、顺序、条件函数转为为按钮之间的弧线连接,当要改变动作指令函数本身或动作间的逻辑关系时,只需要在图形设计界面对按钮及弧线进行拖曳,该编排动作不限于在单独的序列中通过调换任意一个或多个通过动作,使之生成新的动作,以及在多个序列中,基于单个序列中的编排方式的基础进行不同序列间的动作单元调换。同时,序列中每个动作的参数信息和等待时间信息可以根据技术人员的需求进行更改。多次保存不同的等价有向模型,生成不同的编排信息,以供后续使用。

105、将所述编排信息应用至所述被测试目标,重新执行,生成第二测试信息。

将编排信息应用至被测试目标后重新执行,用于将编排设计的对象逻辑图以代码或文字的形式导入到被测试目标中,进行不同于测试目标本身所具备的测试类目;生成第二测试信息,指被测试目标执行编排信息后所生成的测试信息。在一种实施方式中,将可视化图形设计软件生成的编排信息重新导入到集成式动作机器中,生成后缀为.ws和.c的测试文件。

106、分析第二测试信息,对被测试目标进行评估。

分析第二测试信息,用于将重新生成的测试信息与第一测试信息进行对比,在需求准则为覆盖率准则的情况下,对比第一测试信息与第二测试信息间的覆盖率情况,得出不同的测试场景对测试的效果影响程度,判断被测试目标的具体行为信息以及性能参数。在一种实施方式中,利用loadrunner对网控集成式动作机器进行性能测试的过程中,对于不同的测试场景,不同的动作编排使动作机器的运行产生参差不齐的效果,从而也说明利用不同的测试场景对于同一测试目标的测试是必要的。

通过以上步骤,能够解决现有技术中,对网络化系统或整个企业实施性能测试需要对所有的测试场景进行生成,以及生成代码混乱需要人工介入手动修改的问题,能够实现面向对象的可视化测试场景的生成,并且能够实现针对用户需求准则的场景设计,使整个过程变得简单。

以上所述仅为本发明较佳的实施例,并不用以限制本发明,凡是在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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