掌桥专利:专业的专利平台
掌桥专利
首页

测试系统和测试方法

文献发布时间:2023-06-19 11:26:00


测试系统和测试方法

技术领域

本发明涉及车辆通信技术领域,尤其是涉及一种测试系统和测试方法。

背景技术

随着汽车ECU(Electronic Control Unit,电子控制单元)的软件复杂度越来越高,由不同方向的工程师合作共同开发,一般由卡法工程师进行软件的开发,由测试工程师进行软件的测试。

然而,由于汽车ECU的软件复杂度越来越高,测试工程师很可能不清楚具体的逻辑,而开发工程师比较清楚上述逻辑。因此,上述方式存在以下问题:测试工程师和开发工程师之间的沟通成本高;有些需求的测试用例开发难度大;测试工程师开发测试用例的时间成本高;最终导致产品开发的周期比较长。测试工程师要完成测试用例的设计需要对需求和功能及其实现有一定的了解,因此对测试工程师的要求也比较高。

发明内容

有鉴于此,本发明的目的在于提供一种测试系统和测试方法,可以由开发工程师进行部分测试用例的设计,降低测试用例的开发难度和时间成本,从而缩减产品的开发周期。

第一方面,本发明实施例提供了一种测试系统,测试系统包括:测试用例模块、测试框架模块和输入输出模块;其中,测试用例模块、测试框架模块和输入输出模块依次通信连接;测试用例模块用于生成测试用例,以使测试用例在测试系统中运行;监控测试系统的运行状态;如果运行状态表征测试系统处于异常状态,将错误信息发送至上位机中;测试框架模块用于提供测试用例模块的类型,为输入输出模块定义接口,调度和管理测试用例模块的测试用例;输入输出模块用于基于测试用例生成输出结果,将输出结果发送至上位机中。

在本发明较佳的实施例中,上述测试用例模块包括:测试用例配置文件、测试用例文件和测试执行文件;测试用例配置文件用于设置测试用例的标识和测试函数;测试用例文件用于定义测试系统的监控方式和输出内容;测试执行文件用于为测试框架模块提供入口函数。

在本发明较佳的实施例中,上述测试框架模块包括:测试框架配置文件、测试框架类型文件和测试框架执行文件;测试框架配置文件用于设置测试用例模块的标识和测试用例模块的入口函数;测试框架类型文件用于提供测试用例模块的类型;测试框架执行文件用于定于测试的行为,测试的行为包含周期执行、触发执行或抑制执行测试用例;还用于调度测试用例模块的入口函数。

在本发明较佳的实施例中,上述输入输出模块,包括:协议层和驱动层;协议层用于格式化测试用例的输出结果和下位机命令;驱动层用于基于下位机命令将输出结果发送至上位机中。

在本发明较佳的实施例中,上述测试用例模块、测试框架模块和输入输出模块均应用于下位机。

在本发明较佳的实施例中,上述测试系统还包括:结果显示模块、命令输出模块和文件代码生成模块;结果显示模块用于显示下位机发送的输出结果;命令输出模块用于向下位机发送上位机命令;文件代码生成模块用于生成下位机的测试用例模块的配置文件和测试用例代码。

在本发明较佳的实施例中,上述结果显示模块、命令输出模块和文件代码生成模块均应用于上位机。

第二方面,本发明实施例还提供一种测试方法,应用于上述的测试系统,方法包括:通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块;通过目标测试用例模块执行目标测试用例;通过输入输出模块得到目标测试用例的输出结果,将目标测试用例的输出结果发送至上位机中。

在本发明较佳的实施例中,上述通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块的步骤,包括:下位机响应第一测试命令,通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块;或者,上位机向输入输出模块发送第一上位机命令,输入输出模块基于第一上位机命令生成第二测试命令;通过测试框架模块响应第二测试命令,确定目标测试用例和目标测试用例对应的目标测试用例模块。

在本发明较佳的实施例中,上述方法还包括:上位机向输入输出模块发送第二上位机命令;输入输出模块基于第二上位机命令生成属性设置命令;通过测试框架模块响应属性设置命令,修改测试用例的类型。

本发明实施例带来了以下有益效果:

本发明实施例提供的一种测试系统和测试方法,可以将部分测试用例的设计从测试工程师转移到开发工程师,从而减少测试工程师的测试工作量,提高工作效率,缩短集成测试的周期。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为本发明实施例提供的一种测试系统的结构示意图;

图2为本发明实施例提供的一种测试用例模块的结构示意图;

图3为本发明实施例提供的一种测试框架模块的结构示意图;

图4为本发明实施例提供的一种输入输出模块的结构示意图;

图5为本发明实施例提供的另一种测试系统的结构示意图;

图6为本发明实施例提供的一种测试方法的流程图;

图7为本发明实施例提供的一种周期执行测试并输出结果的序列图;

图8为本发明实施例提供的一种上位机命令控制执行测试并返回结果的序列图;

图9为本发明实施例提供的一种通过上位机命令进行属性设置的序列图;

图10为本发明实施例提供的一种测试装置的结构示意图;

图11为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

当前汽车ECU软件复杂度越来越高,由不同方向的工程师合作共同开发,基础软件分成不同类别如通信、诊断等,分别由通信工程师、诊断工程师开发,应用软件也分成不同类别如横向控制、纵向控制等,分别由相应的工程师开发。不同工程师负责的模块开发完成后由集成工程师集成然后发布。

其中,通信可以指车载控制器的通信功能,如CAN(Controller Area Network,控制器局域网络)通信、以太网通信。诊断可以指的是车载控制器的故障检测、故障存储以及与诊断通信协议(如UDS ISO 14229)等功能。

在发布之前,需要对产品进行多维度的测试,如对通信、诊断、控制等的测试。当前的软件集成测试,都是由测试工程师进行。测试工程师根据开发工程师提出的需求以及项目的需求制定测试用例,执行测试。

上述方式存在以下问题:测试工程师和开发工程师之间的沟通成本高;有些需求的测试用例开发难度大;测试工程师开发测试用例的时间成本高;最终导致产品开发的周期比较长。测试工程师要完成测试用例的设计需要对需求和功能及其实现有一定的了解,因此对测试工程师的要求也比较高。

举例来说,控制器内部的状态机,对于测试工程师不熟悉内部状态机的逻辑,但开发工程师非常熟悉,如果由测试工程师开发测试用例,需要与开发工程师之间进行较长时间的沟通,开发难度大、时间成本高、导致产品开发的周期比较长。

基于此,本发明实施例提供的一种测试系统和测试方法,可以降低测试难度,缩短测试时间,优化调整开发工程师、集成工程师和测试工程师的工作。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种测试系统进行详细介绍。

实施例一:

本发明实施例提供一种测试系统,参见图1所示的一种测试系统的结构示意图,如图1所示,该测试系统包括:测试用例模块1、测试框架模块2和输入输出模块3;其中,测试用例模块1、测试框架模块2和输入输出模块3依次通信连接;

如图1所示,为了由开发工程师进行部分测试用例的设计,本实施例包括上位机和下位机,上位机和下位机可以为电脑、服务器等可以进行通信的设备。其中,上位机用于测试命令下发,测试结果接收、解析和显示以及下位机配置文件的生成。下位机包括三部分:测试用例模块、测试框架模块、输入输出模块。

测试用例模块用于生成测试用例,以使测试用例在测试系统中运行;监控测试系统的运行状态;如果运行状态表征测试系统处于异常状态,将错误信息发送至上位机中。

本实施例中的测试用例可以集成到控制器软件中,与功能软件一起被控制器执行,会消耗控制器资源。本实施例中各功能的开发工程师可以在测试用例模块中根据自己负责的内容涉及测试用例,通过测试用例监控测试系统稳定运行时的状态,并在测试系统异常时将错误信息反馈给上位机。

另外需要说明的是,本实施例中不一定只有一个测试用例模块,软件的每个功能模块可以对应一个测试用例模块,如图1所示,可以有3个测试用例模块。

测试框架模块用于提供测试用例模块的类型,为输入输出模块定义接口,调度和管理测试用例模块的测试用例。测试框架模块可以为测试用例模块提供基础类型,可以为结果输出模块定义统一的接口,还可以调度和管理各测试用例模块的测试用例,执行输出模块的输出。

输入输出模块用于基于测试用例生成输出结果,将输出结果发送至上位机中。输入输出模块可以生成测试用例对应的输出结果,并将输出结果格式化,同时对该输出结果对应的下位机命令格式化,之后,可以根据格式化后的下位机指令,向上位机发送上述输出结果。

本发明实施例提供的一种测试系统,将部分测试用例的设计从测试工程师转移到开发工程师,可以减少测试工程师的测试工作量,提高工作效率,缩短集成测试的周期;可以降低集成测试的难度,降低对集成测试工程师的要求;可以增加集成测试的覆盖面,提高产品的可靠性。同时由于开发工程师对自己负责模块非常熟悉,开发测试用例难度低,所需时间少,测试用例的设计转移到开发工程师完成并不会耗费开发工程师太多的时间,并且不同功能的测试用例由对应的开发工程师完成,可以并行设计。

实施例二:

本实施例提供了另一种测试系统,该方法在上述实施例的基础上实现;本实施例重点描述测试用例模块、测试框架模块和输入输出模块的具体结构。如图2所示的一种测试用例模块的结构示意图,本实施例中的测试用例模块1包括:测试用例配置文件11、测试用例文件12和测试执行文件13;

测试用例配置文件用于设置测试用例的标识和测试函数;测试用例文件用于定义测试系统的监控方式和输出内容;测试执行文件用于为测试框架模块提供入口函数。

本实施例中的每个测试用例模块都有对应的这三类文件,彼此独立不依赖。测试用例模块相互独立:指的是通信功能的测试用例模块,诊断功能的测试用例模块,车辆横向控制功能的测试用例模块等各个功能的测试用例模块相互独立,可以只有一个测试用例模块,也可以有多个测试用例模块,甚至一个都没有。

测试用例配置文件可以设置测试用例的ID号和测试函数;测试用例文件定义监控方式以及自定义输出内容;测试执行文件为测试框架模块提供入口函数,执行每一条测试用例,统一输出各测试用例的测试结果。

具体来说,测试用例配置文件可以为*_Cfg.c或*_Cfg.h,测试用例文件可以为*_TestCase.c或*_TestCase.h,测试执行文件可以为*.c或*.h。测试用例配置文件的代码可以为:

这是一个结构体数组常量,一个测试用例对应一个数组元素,该结构体的第一个成员是测试用例的编号,第二个成员是测试用例的实现函数名。测试用例文件的代码可以为:

这是一个测试用例的具体例子,查询当前CAN Pdu的模式是否正确。测试执行文件的代码可以为:

该函数是提供给测试框架模块的API,通过测试模块配置文件中的结构体数组常量调用每一个测试用例函数API,并统一输出各测试用例的测试结果

参见图3所示的一种测试框架模块的结构示意图,该测试框架模块2包括测试框架配置文件21、测试框架类型文件22和测试框架执行文件23;

测试框架配置文件用于设置测试用例模块的标识和测试用例模块的入口函数;测试框架类型文件用于提供测试用例模块的类型;测试框架执行文件用于定于测试的行为,测试的行为包含周期执行、触发执行或抑制执行测试用例;还用于调度测试用例模块的入口函数。

本实施例中,测试框架配置文件可以为*_Cfg.c或*_Cfg.h,测试框架类型文件可以为*_Types.h,测试框架执行文件可以为*.c或*.h。测试框架配置文件可以设置测试用例模块的ID号和测试用例模块的入口函数。测试框架类型文件可以提供该集成测试系统中用到的类型。测试框架执行文件可以定义测试的行为,包括不限于周期执行,触发执行,抑制执行测试用例;测试框架执行文件还可以调度测试用例模块的入口函数。

具体来说,测试框架配置文件的代码可以为:

这是一个结构体数组常量,一个测试模块对应一个数组元素,该结构体的第一个成员是测试模块的编号,第二个成员是测试模块的入口执行函数名,第三个成员是该测试模块的状态(默认处于不激活的状态)。

测试框架类型文件的代码可以为:

测试框架类型文件中定义了一些基本类型,供整个框架使用,包括测试用例返回结果类型enCTst_ResultType,测试模块状态类型enCTst_ModuleStatusType。

测试框架执行文件的代码可以为:

以上两个函数,第一个执行指定模块的测试用例,第二个执行所有模块的测试用例。

参见图4所示的一种输入输出模块的结构示意图,该输入输出模块3包括:协议层31和驱动层32,其中,协议层也称TP层。协议层用于格式化测试用例的输出结果和下位机命令;驱动层用于基于下位机命令将输出结果发送至上位机中。

协议层可以输出结果以及格式化命令。驱动层可以使用但不限于Uart、Can、TcpIp等通信方式。输出结果以及上位机命令既可以通过TP层格式化,也可以直接使用驱动层,自由输入输出。

本实施例中的测试用例模块、测试框架模块和输入输出模块均应用于下位机。对于上位机中的测试系统,可以参见图5所示的另一种测试系统的结构示意图,该测试系统包括结果显示模块41、命令输出模块42和文件代码生成模块43;其中,结果显示模块用于显示下位机发送的输出结果;命令输出模块用于向下位机发送上位机命令;文件代码生成模块用于生成下位机的测试用例模块的配置文件和测试用例代码。

如图5所示,本实施例中的结果显示模块、命令输出模块和文件代码生成模块均应用于上位机。

结果显示模块具有结果显示功能,可以无协议的输出结果,上位机直接基于ASCII码解析显示;也可以有协议的输出结果,上位机根据下位机定义好的协议解析显示。

命令输出模块具有命令输出功能:可以根据定义的协议,可以给下位机输出命令。

文件代码生成模块可以自动生成测试用例模块的配置文件和测试用例代码。

一般来说,测试工程师用的测试系统一般都是基于测试工具(开源或者商业工具)在电脑端开发测试用例,本实施例提供的一种测试系统,是在控制器内部进行测试用例开发,所使用的测试工具也是本系统内的测试工具,适合开发工程师使用。

实施例三:

本实施例中的测试用例模块、测试框架模块、输入输出模块组合成一套软件系统,需要集成工程师将它们集成到具体的嵌入式系统。在不影响原功能模块的情况下,开发工程师设计原功能模块的测试用例。测试用例涉及到的范围包括但不限于功能模块内部的状态,变量的值,功能服务运行的次数、执行的顺序等。

参见图6所示的一种测试方法的流程图,如图6所示,该测试方法包括以下步骤:

步骤S602,通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块。

本实施例中可以周期执行测试并输出结果,也可以上位机命令控制执行测试并返回结果,上述步骤可以通过两种方式执行:

方式1:下位机响应第一测试命令,通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块。

方式1即周期执行测试并输出结果的情况,参见图7所示的一种周期执行测试并输出结果的序列图,由图7可知,调度器可以先向测试框架模块发送第一测试命令,确定目标测试用例和目标测试用例对应的目标测试用例模块,之后由目标测试用例模块执行目标测试用例。

方式2:上位机向输入输出模块发送第一上位机命令,输入输出模块基于第一上位机命令生成第二测试命令;通过测试框架模块响应第二测试命令,确定目标测试用例和目标测试用例对应的目标测试用例模块。

方式2即上位机命令控制执行测试并返回结果的情况,参见图8所示的一种上位机命令控制执行测试并返回结果的序列图,由图8可知,上位机向输入输出模块发送第一上位机命令,输入输出模块向测试框架模块发送第二测试命令,测试框架模块响应第二测试命令,确定目标测试用例和目标测试用例对应的目标测试用例模块。

步骤S604,通过目标测试用例模块执行目标测试用例。

在确定执行目标测试用例的目标测试用例模块之后,可以由目标测试用例模块执行该目标测试用例。

步骤S606,通过输入输出模块得到目标测试用例的输出结果,将目标测试用例的输出结果发送至上位机中。

目标测试用例的输出结果通过输入输出模块得到,输入输出模块得到可以将目标测试用例的输出结果发送至上位机中。

除此以外,上述方法还包括:上位机向输入输出模块发送第二上位机命令;输入输出模块基于第二上位机命令生成属性设置命令;通过测试框架模块响应属性设置命令,修改测试用例的类型。

参见图9所示的一种通过上位机命令进行属性设置的序列图,调度器可以向输入输出模块发送第二上位机命令,输入输出模块生成属性设置命令之后,测试框架模块响应属性设置命令,修改测试用例的类型。

本发明实施例提供的一种测试系统和测试方法具有以下优势:可扩展性:每个测试用例模块的测试用例数目不限制,可以根据需求自由扩展。通信方式适用性广:可以选择不同的通信方式,例如CAN、以太网、Uart等。功能模块适用性广:不限制功能模块的内容,测试用例可根据功能模块的不同进行具体设计。减少系统集成测试工程师的工作量,提高工作效率,缩短集成测试的周期;增加集成测试的覆盖面,提高产品的可靠性;降低集成测试的难度,降低对集成测试工程师的要求。

实施例四:

对应于上述方法实施例,本发明实施例提供了一种测试装置,如图10所示的一种测试装置的结构示意图,该测试装置包括:

目标测试用例确定模块1001,用于通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块;

目标测试用例执行模块1002,用于通过目标测试用例模块执行目标测试用例;

目标测试用例结果模块1003,用于通过输入输出模块得到目标测试用例的输出结果,将目标测试用例的输出结果发送至上位机中。

上述目标测试用例确定模块,用于下位机响应第一测试命令,通过测试框架模块确定目标测试用例和目标测试用例对应的目标测试用例模块;或者,上位机向输入输出模块发送第一上位机命令,输入输出模块基于第一上位机命令生成第二测试命令;通过测试框架模块响应第二测试命令,确定目标测试用例和目标测试用例对应的目标测试用例模块。

上述测试装置还包括属性设置模块,用于上位机向输入输出模块发送第二上位机命令;输入输出模块基于第二上位机命令生成属性设置命令;通过测试框架模块响应属性设置命令,修改测试用例的类型。

实施例五:

本发明实施例还提供了一种电子设备,用于运行上述测试方法;参见图11所示的一种电子设备的结构示意图,该电子设备包括存储器100和处理器101,其中,存储器100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器101执行,以实现上述测试方法。

进一步地,图11所示的电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。

其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述测试方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的测试系统和测试方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和/或装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 电驱动总成测试系统和电驱动总成测试系统的测试方法
  • 藤壶幼虫的养殖装置、养殖方法、防污测试系统、养殖-防污测试系统及防污测试方法
技术分类

06120112923334