功能块的测试方法和装置、组态设备、存储介质与流程

文档序号:33753030发布日期:2023-04-18 13:44阅读:49来源:国知局
功能块的测试方法和装置、组态设备、存储介质与流程

本技术涉及软件测试,具体而言,涉及一种功能块的测试方法和装置、组态设备、存储介质。


背景技术:

1、基本功能块是iec61499(是用于分布式工业过程测量与控制系统功能块的标准)中一种控制器逻辑功能封装的基本单元。基本功能块包括一个执行控制图(ecc,一种状态机),由ecc调度算法来执行,算法由设计者使用结构化文本(st,iec61131-3中的一种标准编程语言)之类的语言编写。

2、在设计者进行基本功能块的设计时,需要进行测试以确保达到设计约束和满足功能需求,传统编程语言(如java、c#)的编程环境或装置等会提供单元测试的方法。

3、而在基于功能块的图形化组态系统中尚没有类似的能快速进行测试的方法,已有的只是图形化的单步测试等,具体如图1所示,组态装置将功能块测试用例的测试请求数据,通过网络连接下发至测试设备上,由被测设备完成测试后将测试执行数据返回给组态装置,组态装置处理测试数据然后给出测试结果。这样组态装置对功能块测试用例的测试需要依赖于测试设备。

4、在工控领域中,测试装置中会包含一个运行时(runtime,工控领域中,为了程序的运行效率,一般都是二进制可执行文件形式),前面的测试由其执行。当组态装置上新建一个功能块fb(即function block)时,测试装置中的运行时没有该fb的信息,这时候需要将原来的运行时源码和新fb的源码一起重新编译成新的运行时,才能够执行对该fb的测试。当功能块有缺陷时,需要修订,然后又要经历一趟编译过程才能更新运行时中fb的最新信息,再继续测试。整个过程显得繁琐、低效,尤其需要依赖于某个测试设备,当测试设备不在身边或不可用时,组态设计工作可能会受到阻碍甚至停滞。

5、针对上述基本功能块的测试操作较为繁琐的技术问题,目前尚未提出有效的解决方案。


技术实现思路

1、本技术实施例中提供一种功能块的测试方法和装置、组态设备、存储介质,以解决基本功能块的测试操作较为繁琐的技术问题。

2、为解决上述技术问题,根据本技术实施例的一个方面,提供了一种功能块的测试方法,包括:在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;通过所述测试引擎对目标功能块进行测试。

3、可选地,在通过所述测试引擎对目标功能块进行测试之前,所述方法还包括:获取为所述目标功能块配置的目标测试用例;通过所述测试引擎对目标功能块进行测试,包括:通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试。

4、可选地,通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试,包括:在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,并获取所述目标测试用例的期望结果;在所述测试结果与所述期望结果一致的情况下,确定所述目标功能块通过测试;在所述测试结果与所述期望结果不一致的情况下,确定所述目标功能块未通过测试。

5、可选地,在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,包括:通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,并通过所述测试引擎从所述测试用例获取输入数据;通过所述测试引擎运行所述动态语言代码,以对所述输入数据进行处理,得到所述测试结果。

6、可选地,通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,包括:获取所述目标功能块所包括的执行控制图ecc和算法;将所述目标功能块所包括的执行控制图ecc和算法转换为目标动态语言的类,将所述目标功能块的输入和输出分别转换为类的属性,将所述目标功能块的事件转化为类的事件序列属性。

7、可选地,将所述目标功能块所包括的执行控制图ecc转换为目标动态语言的类,包括:根据所述执行控制图ecc中的算法名从所述目标功能块中获取代码;对获取的代码进行语法分析,得到抽象语法树ast;根据所述抽象语法树ast生成动态语言代码;根据所述执行控制图ecc中算法之间的关系,将相应的动态语言代码封装为所述执行控制图ecc的等价状态机代码,得到所述目标动态语言的类。

8、可选地,在组态装置中运行测试引擎之前,所述方法包括:创建所述测试引擎,并在所述组态装置中安装所述测试引擎。

9、根据本技术实施例的另一方面,还提供了一种功能块的测试装置,包括:运行单元,用于在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;测试单元,用于通过所述测试引擎对目标功能块进行测试。

10、可选地,测试单元还用于:在通过所述测试引擎对目标功能块进行测试之前,获取为所述目标功能块配置的目标测试用例;通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试。

11、可选地,测试单元还用于:在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,并获取所述目标测试用例的期望结果;在所述测试结果与所述期望结果一致的情况下,确定所述目标功能块通过测试;在所述测试结果与所述期望结果不一致的情况下,确定所述目标功能块未通过测试。

12、可选地,测试单元还用于:通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,并通过所述测试引擎从所述测试用例获取输入数据;通过所述测试引擎运行所述动态语言代码,以对所述输入数据进行处理,得到所述测试结果。

13、可选地,测试单元还用于:获取所述目标功能块所包括的执行控制图ecc和算法;将所述目标功能块所包括的执行控制图ecc和算法转换为目标动态语言的类,将所述目标功能块的输入和输出分别转换为类的属性,将所述目标功能块的事件转化为类的事件序列属性。

14、可选地,测试单元还用于:根据所述执行控制图ecc中的算法名从所述目标功能块中获取代码;对获取的代码进行语法分析,得到抽象语法树ast;根据所述抽象语法树ast生成动态语言代码;根据所述执行控制图ecc中算法之间的关系,将相应的动态语言代码封装为所述执行控制图ecc的等价状态机代码,得到所述目标动态语言的类。

15、可选地,运行单元还用于在组态装置中运行测试引擎之前,创建所述测试引擎,并在所述组态装置中安装所述测试引擎。

16、根据本技术实施例的另一方面,还提供了一种组态设备,包括上述的功能块的测试装置。

17、根据本技术实施例的另一方面,还提供了一种计算机可读存储介质,该存储介质包括存储的程序,程序被处理器执行时实现上述的方法。

18、根据本技术实施例的另一方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。

19、根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中任一实施例的步骤。

20、应用本技术的技术方案,在组态装置中运行测试引擎,通过测试引擎对目标功能块进行测试,不需要对目标功能块进行重新编译、且不需要依赖单独的测试设备即可完成测试,可以解决基本功能块的测试操作较为繁琐的技术问题。

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