CN115934511A - 功能块的测试方法和装置、组态设备、存储介质 - Google Patents
功能块的测试方法和装置、组态设备、存储介质 Download PDFInfo
- Publication number
- CN115934511A CN115934511A CN202211448274.8A CN202211448274A CN115934511A CN 115934511 A CN115934511 A CN 115934511A CN 202211448274 A CN202211448274 A CN 202211448274A CN 115934511 A CN115934511 A CN 115934511A
- Authority
- CN
- China
- Prior art keywords
- test
- target
- function block
- test engine
- engine
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种功能块的测试方法和装置、组态设备、存储介质。其中,该方法包括:在组态装置中运行测试引擎,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;通过所述测试引擎对目标功能块进行测试。通过本申请,能够解决基本功能块的测试操作较为繁琐的技术问题。
Description
技术领域
本申请涉及软件测试技术领域,具体而言,涉及一种功能块的测试方法和装置、组态设备、存储介质。
背景技术
基本功能块是IEC61499(是用于分布式工业过程测量与控制系统功能块的标准)中一种控制器逻辑功能封装的基本单元。基本功能块包括一个执行控制图(ECC,一种状态机),由ECC调度算法来执行,算法由设计者使用结构化文本(ST,IEC61131-3中的一种标准编程语言)之类的语言编写。
在设计者进行基本功能块的设计时,需要进行测试以确保达到设计约束和满足功能需求,传统编程语言(如java、C#)的编程环境或装置等会提供单元测试的方法。
而在基于功能块的图形化组态系统中尚没有类似的能快速进行测试的方法,已有的只是图形化的单步测试等,具体如图1所示,组态装置将功能块测试用例的测试请求数据,通过网络连接下发至测试设备上,由被测设备完成测试后将测试执行数据返回给组态装置,组态装置处理测试数据然后给出测试结果。这样组态装置对功能块测试用例的测试需要依赖于测试设备。
在工控领域中,测试装置中会包含一个运行时(runtime,工控领域中,为了程序的运行效率,一般都是二进制可执行文件形式),前面的测试由其执行。当组态装置上新建一个功能块FB(即Function Block)时,测试装置中的运行时没有该FB的信息,这时候需要将原来的运行时源码和新FB的源码一起重新编译成新的运行时,才能够执行对该FB的测试。当功能块有缺陷时,需要修订,然后又要经历一趟编译过程才能更新运行时中FB的最新信息,再继续测试。整个过程显得繁琐、低效,尤其需要依赖于某个测试设备,当测试设备不在身边或不可用时,组态设计工作可能会受到阻碍甚至停滞。
针对上述基本功能块的测试操作较为繁琐的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例中提供一种功能块的测试方法和装置、组态设备、存储介质,以解决基本功能块的测试操作较为繁琐的技术问题。
为解决上述技术问题,根据本申请实施例的一个方面,提供了一种功能块的测试方法,包括:在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;通过所述测试引擎对目标功能块进行测试。
可选地,在通过所述测试引擎对目标功能块进行测试之前,所述方法还包括:获取为所述目标功能块配置的目标测试用例;通过所述测试引擎对目标功能块进行测试,包括:通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试。
可选地,通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试,包括:在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,并获取所述目标测试用例的期望结果;在所述测试结果与所述期望结果一致的情况下,确定所述目标功能块通过测试;在所述测试结果与所述期望结果不一致的情况下,确定所述目标功能块未通过测试。
可选地,在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,包括:通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,并通过所述测试引擎从所述测试用例获取输入数据;通过所述测试引擎运行所述动态语言代码,以对所述输入数据进行处理,得到所述测试结果。
可选地,通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,包括:获取所述目标功能块所包括的执行控制图ECC和算法;将所述目标功能块所包括的执行控制图ECC和算法转换为目标动态语言的类,将所述目标功能块的输入和输出分别转换为类的属性,将所述目标功能块的事件转化为类的事件序列属性。
可选地,将所述目标功能块所包括的执行控制图ECC转换为目标动态语言的类,包括:根据所述执行控制图ECC中的算法名从所述目标功能块中获取代码;对获取的代码进行语法分析,得到抽象语法树AST;根据所述抽象语法树AST生成动态语言代码;根据所述执行控制图ECC中算法之间的关系,将相应的动态语言代码封装为所述执行控制图ECC的等价状态机代码,得到所述目标动态语言的类。
可选地,在组态装置中运行测试引擎之前,所述方法包括:创建所述测试引擎,并在所述组态装置中安装所述测试引擎。
根据本申请实施例的另一方面,还提供了一种功能块的测试装置,包括:运行单元,用于在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;测试单元,用于通过所述测试引擎对目标功能块进行测试。
可选地,测试单元还用于:在通过所述测试引擎对目标功能块进行测试之前,获取为所述目标功能块配置的目标测试用例;通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试。
可选地,测试单元还用于:在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,并获取所述目标测试用例的期望结果;在所述测试结果与所述期望结果一致的情况下,确定所述目标功能块通过测试;在所述测试结果与所述期望结果不一致的情况下,确定所述目标功能块未通过测试。
可选地,测试单元还用于:通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,并通过所述测试引擎从所述测试用例获取输入数据;通过所述测试引擎运行所述动态语言代码,以对所述输入数据进行处理,得到所述测试结果。
可选地,测试单元还用于:获取所述目标功能块所包括的执行控制图ECC和算法;将所述目标功能块所包括的执行控制图ECC和算法转换为目标动态语言的类,将所述目标功能块的输入和输出分别转换为类的属性,将所述目标功能块的事件转化为类的事件序列属性。
可选地,测试单元还用于:根据所述执行控制图ECC中的算法名从所述目标功能块中获取代码;对获取的代码进行语法分析,得到抽象语法树AST;根据所述抽象语法树AST生成动态语言代码;根据所述执行控制图ECC中算法之间的关系,将相应的动态语言代码封装为所述执行控制图ECC的等价状态机代码,得到所述目标动态语言的类。
可选地,运行单元还用于在组态装置中运行测试引擎之前,创建所述测试引擎,并在所述组态装置中安装所述测试引擎。
根据本申请实施例的另一方面,还提供了一种组态设备,包括上述的功能块的测试装置。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,该存储介质包括存储的程序,程序被处理器执行时实现上述的方法。
根据本申请实施例的另一方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中任一实施例的步骤。
应用本申请的技术方案,在组态装置中运行测试引擎,通过测试引擎对目标功能块进行测试,不需要对目标功能块进行重新编译、且不需要依赖单独的测试设备即可完成测试,可以解决基本功能块的测试操作较为繁琐的技术问题。
附图说明
图1是相关技术中的工控领域中功能块的测试方案的示意图;
图2是根据本申请实施例的一种可选的功能块的测试方法的流程图;
图3是根据本申请实施例的一种可选的测试引擎的示意图;
图4是根据本申请实施例的一种可选的测试用例的示意图;
图5是根据本申请实施例的一种可选的功能块测试的示意图;
图6是根据本申请实施例的一种可选的功能块测试的示意图;
图7是根据本申请实施例的一种可选的功能块测试方案的示意图;
图8是根据本申请实施例的一种可选的功能块的测试装置的示意图;
图9是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本申请实施例中可能采用术语第一、第二、第三等来描述某些技术特征,但这些技术特征不应限于这些术语。这些术语仅用来将这些技术特征区分开。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。
实施例1
采用本申请的技术方案,无需依赖测试设备,在组态装置上能独立执行基本功能块测试,通过解释执行基本功能块的控制逻辑代码,从而可以移除编译过程。根据本申请实施例的一个方面,提供了一种功能块的测试方法的实施例,如图2所示,该方法包括以下步骤:
步骤S1,在组态装置中运行测试引擎,测试引擎用于测试在组态装置中编辑得到的功能块。
可选地,可预先创建测试引擎,在组态装置中以软件、SDK等方式安装测试引擎。
步骤S2,通过测试引擎对目标功能块进行测试。可以预先获取为目标功能块配置的目标测试用例,之后通过测试引擎调用目标测试用例,来对目标功能块进行测试。
可选地,可在测试引擎中调用目标测试用例来对目标功能块进行测试,得到测试结果,例如:通过测试引擎将目标功能块的控制逻辑代码转换为动态语言代码,并通过测试引擎从测试用例获取输入数据,通过测试引擎运行动态语言代码对输入数据进行处理,从而得到测试结果,并获取目标测试用例的期望结果,在测试结果与期望结果一致的情况下,确定目标功能块通过测试,在测试结果与期望结果不一致的情况下,确定目标功能块未通过测试。
在上述实施例中,通过测试引擎将目标功能块的控制逻辑代码转换为动态语言代码,包括:获取目标功能块所包括的执行控制图ECC和算法,将目标功能块所包括的执行控制图ECC和算法转换为目标动态语言的类,将目标功能块的输入和输出分别转换为类的属性,将目标功能块的事件转化为类的事件序列属性。
承接上例,将目标功能块所包括的执行控制图ECC转换为目标动态语言的类,包括:根据执行控制图ECC中的算法名从目标功能块中获取代码;对获取的代码进行语法分析,得到抽象语法树AST;根据抽象语法树AST生成动态语言代码;根据执行控制图ECC中算法之间的关系,将相应的动态语言代码按照在ECC中的顺序和关联关系,封装为执行控制图ECC的等价状态机代码,得到目标动态语言的类。
通过上述步骤,在组态装置中运行测试引擎,通过测试引擎对目标功能块进行测试,不需要对目标功能块进行重新编译、且不需要依赖单独的测试设备即可完成测试,可以解决基本功能块的测试操作较为繁琐的技术问题。
实施例2
在本申请的技术方案中,可在组态装置中构建模拟测试引擎,使得在组态装置上就可以独立完成对功能块的测试,移除了对测试设备的依赖;通过解释执行被测功能块的测试用例,降低了测试工作的代价,可以更快获得测试结果,尽量保证了设计工作的延续性和效率。作为一种可选的实施例,下文结合具体实施方式进一步详述本申请的技术方案(此处需要说明的是,下文中的基本功能块和功能块是等价的概念):
本申请的测试引擎负责测试用例的执行(也是一种runtime,即测试使用的runtime),其构成可参见图3所示,即从功能上可以划分为如下几个部分:
M0测试用例信息访问模块:用于读取测试用例的信息,信息项参见图4,同时根据测试用例中的功能块名,获取功能块的所有信息。
M1测试用例控制逻辑转换模块:用于将基本功能块及其所包含的ECC、算法转换为目标动态语言的类。这里可以选择的目标动态语言有Python,VBS,javascript等等。基本功能块的输入和输出都转换为目标类的属性,基本功能块的事件可以转化为目标类的事件序列属性。ECC转换为目标类的一个方法,该方法中封装一个与ECC等价的状态机。
M2测试用例执行模块:用于执行目标类的实例化工作,并从测试用例中提取输入数据,使用输入数据调用目标类实例的ECC方法。
M3测试用例测试结果判定模块:获取测试用例的期望输出数据,收集ECC执行后的测试数据,二者之间进行比较,如果测试数据和期望的一致,测判定测试通过,反之则不通过。
测试主流程如图5所示:
步骤1,创建功能块。
步骤2,创建功能块测试用例。
步骤3,执行功能块测试用例。
其中步骤3为核心工作步骤,其具体步骤可分解为步骤3.1-步骤3.7:
步骤3.1,测试引擎读取测试用例信息。测试用例的数据描述参见图4,一个完整的功能块的测试用例的数据可包括图4中的数据项。
步骤3.2,测试引擎根据测试用例中关于被测功能块的引用获取该功能块的所有信息。
在步骤3.1和步骤3.2中,可通过模块M0读取功能块测试用例信息及功能块的信息。
步骤3.3,测试引擎将功能块的控制逻辑代码转换为动态语言代码。包括步骤3.3.1至步骤3.3.4。
步骤3.3的这部分工作可由M1完成,将功能块的ST语言代码转换为可动态执行的动态语言代码,ST语言是工控领域规定的一种标准语言,一般是通过转换为C/C++,再编译执行的。通过将其转为动态语言,去除了编译过程。因为是测试,所以相对于实际运行来说,解释执行的效率的损失是可接受的。
控制逻辑转换子过程参见图6,这部分是基本功能块从内存模型转化为可执行的目标动态语言的过程。这里可以假定目标动态语言为Python,但是并不限定于Python。
步骤3.3.1,读取基本功能块的ECC信息。
步骤3.3.2,获取ECC中所有被调用算法的名称。
步骤3.3.3,将基本功能块转换为目标动态语言的类。
目标动态语言类型可能支持类,也可以选择不带类支持的。不带类支持的,则可转为结构等、全局函数等,此时在转换目标中要做相应的类型变化,或者是转换的方式不同。
步骤3.3.4,逐一处理每个算法,转变为目标类的方法。步骤3.3.4包括步骤3.3.4.1至步骤3.3.4.3。
步骤3.3.4.1,根据算法名,从基本功能块获取代码。
步骤3.3.4.2,对代码进行语法分析,获得AST(抽象语法树)。
步骤3.3.4.3,根据AST,输出算法的目标动态语言代码。
步骤3.3.4,将ECC,输出目标类的方法,封装一个等价状态机代码。
在上述方案,还可直接创建基本功能块的算法代码语言的解释器,但是这个工作量会比较大;而且算法代码语言除了ST语言外,还可以是其他语言,若每个都创建一个解释器,代价太大,也无必要;而采用AST转换成统一的目标语言,这样更容易扩展,更好操作。
步骤3.4,测试引擎获取测试用例的输入数据。
步骤3.5,测试引擎使用输入数据执行动态语言代码,得到执行数据。
步骤3.4和步骤3.5是执行测试用例,这里解释执行3.3中的动态语言代码,这部分工作可由M2完成。
步骤3.6,测试引擎从测试用例获取测试用例的期望输出数据。
步骤3.7,测试引擎将执行数据与期望输出数据进行比较,判定测试用例是否通过。
步骤3.6和步骤3.7则是测试用例结果的处理,这部分工作可由M3完成。
系统内数据的流动参见图7,UI部分与用户交互,包括提供启动进入测试的入口(如菜单等),测试结果的显示灯,对于IEC61499和IEC61131-3中规定所必须提供的标准数据、功能块等预先编码成库,作为测试runtime标准库提供。
测试结果功能有可能放在测试UI模块或类似模块,而不是放在测试引擎中,通过通讯方式在二者之间传递测试数据,由测试UI模块做出判定。
本例中测试引擎由组态装置按需启动(启动测试时启动);测试引擎也可以独立运行,通过通信在测试UI模块和引擎之间交换信息和数据。
采用本申请的技术方案,在组态装置上就可以独立完成功能块的测试,移除了组态装置对测试设备的依赖,方便了组态设计工作;另外,通过解释执行功能块的控制逻辑,使得不再需要总是在测试之前就要更新测试runtime中关于被测FB的信息,进一步提高了组态设计工作的效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
根据本申请实施例的另一个方面,还提供了一种用于实施上述功能块的测试方法的功能块的测试装置。图8是根据本申请实施例的一种可选的功能块的测试装置的示意图,如图8所示,该装置可以包括:
运行单元81,用于在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;测试单元83,用于通过所述测试引擎对目标功能块进行测试。
通过上述模块,在组态装置中运行测试引擎,通过测试引擎对目标功能块进行测试,不需要对目标功能块进行重新编译、且不需要依赖单独的测试设备即可完成测试,可以解决基本功能块的测试操作较为繁琐的技术问题。
可选地,测试单元还用于:在通过所述测试引擎对目标功能块进行测试之前,获取为所述目标功能块配置的目标测试用例;通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试。
可选地,测试单元还用于:在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,并获取所述目标测试用例的期望结果;在所述测试结果与所述期望结果一致的情况下,确定所述目标功能块通过测试;在所述测试结果与所述期望结果不一致的情况下,确定所述目标功能块未通过测试。
可选地,测试单元还用于:通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,并通过所述测试引擎从所述测试用例获取输入数据;通过所述测试引擎运行所述动态语言代码,以对所述输入数据进行处理,得到所述测试结果。
可选地,测试单元还用于:获取所述目标功能块所包括的执行控制图ECC和算法;将所述目标功能块所包括的执行控制图ECC和算法转换为目标动态语言的类,将所述目标功能块的输入和输出分别转换为类的属性,将所述目标功能块的事件转化为类的事件序列属性。
可选地,测试单元还用于:根据所述执行控制图ECC中的算法名从所述目标功能块中获取代码;对获取的代码进行语法分析,得到抽象语法树AST;根据所述抽象语法树AST生成动态语言代码;根据所述执行控制图ECC中算法之间的关系,将相应的动态语言代码封装为所述执行控制图ECC的等价状态机代码,得到所述目标动态语言的类。
可选地,运行单元还用于在组态装置中运行测试引擎之前,创建所述测试引擎,并在所述组态装置中安装所述测试引擎。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在相应的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例4
本申请实施例提供了一种组态设备,包括上述的功能块的测试装置,其具体运行方式参见上述方法实施例中的内容。
实施例5
本实施例提供一种电子设备,所述电子设备,包括:处理器201、存储器202、以及传输装置203,如图9所示,该终端还可以包括输入输出设备204;其中:
存储器202可用于存储软件程序以及模块,如本申请实施例中的方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器202内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器202可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器202可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置203用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置203包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置203为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器202用于存储应用程序。
处理器201可以通过传输装置203调用存储器202存储的应用程序,以执行上述实施例中的步骤。
实施例6
本申请实施例提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的对文档中的内容进行编辑的方法。
上述存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、装置总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置,例如电视机、车载大屏等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种功能块的测试方法,其特征在于,所述方法包括:
在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;
通过所述测试引擎对目标功能块进行测试。
2.根据权利要求1所述的方法,其特征在于,
在通过所述测试引擎对目标功能块进行测试之前,所述方法还包括:获取为所述目标功能块配置的目标测试用例;
通过所述测试引擎对目标功能块进行测试,包括:通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试。
3.根据权利要求2所述的方法,其特征在于,通过所述测试引擎调用所述目标测试用例,来对所述目标功能块进行测试,包括:
在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,并获取所述目标测试用例的期望结果;
在所述测试结果与所述期望结果一致的情况下,确定所述目标功能块通过测试;
在所述测试结果与所述期望结果不一致的情况下,确定所述目标功能块未通过测试。
4.根据权利要求3所述的方法,其特征在于,在所述测试引擎中调用所述目标测试用例来对所述目标功能块进行测试,得到测试结果,包括:
通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,并通过所述测试引擎从所述测试用例获取输入数据;
通过所述测试引擎运行所述动态语言代码,以对所述输入数据进行处理,得到所述测试结果。
5.根据权利要求4所述的方法,其特征在于,通过所述测试引擎将所述目标功能块的控制逻辑代码转换为动态语言代码,包括:
获取所述目标功能块所包括的执行控制图ECC和算法;
将所述目标功能块所包括的执行控制图ECC和算法转换为目标动态语言的类,将所述目标功能块的输入和输出分别转换为类的属性,将所述目标功能块的事件转化为类的事件序列属性。
6.根据权利要求5所述的方法,其特征在于,将所述目标功能块所包括的执行控制图ECC转换为目标动态语言的类,包括:
根据所述执行控制图ECC中的算法名从所述目标功能块中获取代码;
对获取的代码进行语法分析,得到抽象语法树AST;
根据所述抽象语法树AST生成动态语言代码;
根据所述执行控制图ECC中算法之间的关系,将相应的动态语言代码封装为所述执行控制图ECC的等价状态机代码,得到所述目标动态语言的类。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,在组态装置中运行测试引擎之前,所述方法包括:
创建所述测试引擎,并在所述组态装置中安装所述测试引擎。
8.一种功能块的测试装置,其特征在于,所述装置包括:
运行单元,用于在组态装置中运行测试引擎,其中,所述测试引擎用于测试在所述组态装置中编辑得到的功能块;
测试单元,用于通过所述测试引擎对目标功能块进行测试。
9.一种组态设备,其特征在于,包括权利要求8中的功能块的测试装置。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211448274.8A CN115934511A (zh) | 2022-11-18 | 2022-11-18 | 功能块的测试方法和装置、组态设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211448274.8A CN115934511A (zh) | 2022-11-18 | 2022-11-18 | 功能块的测试方法和装置、组态设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934511A true CN115934511A (zh) | 2023-04-07 |
Family
ID=86556731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211448274.8A Pending CN115934511A (zh) | 2022-11-18 | 2022-11-18 | 功能块的测试方法和装置、组态设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934511A (zh) |
-
2022
- 2022-11-18 CN CN202211448274.8A patent/CN115934511A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140298318A1 (en) | Computer-executable application packaging method, computer-executable device and storage media performing the same | |
CN106547520B (zh) | 一种代码路径分析方法及装置 | |
CN111736954B (zh) | 多智能合约虚拟机实现方法、多智能合约虚拟机及系统 | |
CN107832059B (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN106648755B (zh) | 一种在安卓art环境中动态加载dex的方法及装置 | |
CN112463123B (zh) | 任务编译方法、装置、网络节点、系统及存储介质 | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN111026439B (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN111240684A (zh) | 一种js代码的裁剪方法、装置、介质和电子设备 | |
CN112463256A (zh) | 确定配置文件的方法、系统、电子设备及存储介质 | |
KR20150061203A (ko) | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
CN110990001A (zh) | Ivr流程执行方法及装置 | |
CN111966357A (zh) | 一种操作系统应用编译方法、装置及电子设备 | |
CN112114896A (zh) | 一种插件框架及业务功能扩展的方法 | |
CN111309332A (zh) | 文件内容按需加载方法、装置及电子设备、存储介质 | |
CN112835587B (zh) | 一种编译集成方法及装置 | |
CN108304164B (zh) | 一种业务逻辑的开发方法及开发系统 | |
CN116166907B (zh) | 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置 | |
CN115618363B (zh) | 漏洞路径的挖掘方法及相关设备 | |
CN103631585A (zh) | 一种用于开发应用程序的方法及系统 | |
CN115934511A (zh) | 功能块的测试方法和装置、组态设备、存储介质 | |
CN106951236B (zh) | 插件的开发方法及装置 | |
CN113778451A (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 |