首页> 中国专利> 嵌入式软件单元测试方法、系统、可读介质及电子设备

嵌入式软件单元测试方法、系统、可读介质及电子设备

摘要

本公开涉及一种嵌入式软件单元测试方法、系统、可读介质及电子设备。本公开提供的技术方案,在编译服务器内根据第一编译规则文件实现单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件,自动复制可执行文件到嵌入式软件运行平台内自动生成单元测试结果文件。开发人员提供新可测版本时,不再需要将源码手动编译成源码动态库提供给单元测试人员,只需将添加或修改的源码文件上传至配置管理服务器,提高了开发人员更新可测试版本的速度;单元测试人员只需将添加或修改的单元测试代码文件上传至配置管理服务器,并运行该系统,即可获取单元测试结果文件,提高了单元测试人员的测试效率。

著录项

  • 公开/公告号CN112506793A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 航天信息股份有限公司;

    申请/专利号CN202011506882.0

  • 发明设计人 吕一男;杨云妹;陈晓东;

    申请日2020-12-18

  • 分类号G06F11/36(20060101);G06F21/62(20130101);

  • 代理机构11447 北京英创嘉友知识产权代理事务所(普通合伙);

  • 代理人曾尧

  • 地址 100195 北京市海淀区杏石口路甲18号

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本公开涉及单元测试技术领域,具体地,涉及一种嵌入式软件单元测试方法、系统、可读介质及电子设备。

背景技术

目前嵌入式软件单元测试过程如下:开发人员将源码手动编译成源码动态库,并将该源码动态库提供给单元测试人员;单元测试人员将单元测试框架编译生成单元测试框架静态库,编写第一编译规则文件实现单元测试框架静态库、单元测试代码文件、源码动态库、单元测试框架主函数文件四者的交叉编译并生成可执行文件。

因此,目前的嵌入式软件单元测试方法:开发人员在提供新的可测试版本时需要将添加或修改的源码手动编译成源码动态库,降低了开发人员更新可测试版本的速度;源码以源码动态库的形式提供给单元测试人员,单元测试人员无法在源码中添加调试信息,降低了单元测试人员的测试效率;并且,单元测试人员只能手动执行交叉编译生成可执行文件,手动将可执行文件复制到嵌入式软件运行平台,在嵌入式软件运行平台手动运行可执行文件获得单元测试结果文件,降低了单元测试人员的测试效率。

发明内容

本公开的目的是提供一种无需生成源码动态库且能进行自动单元测试的嵌入式软件单元测试方法、系统、可读介质及电子设备,以提高开发人员提交可测试版本的速度及提高单元测试人员的测试效率。

为了实现上述目的,本公开提供一种嵌入式软件单元测试方法,所述方法包括:

接收源码文件并存储在源码工程文件夹中,接收第一编译规则文件、单元测试框架静态库、单元测试代码文件和单元测试框架主函数文件并存储在单元测试文件夹中;

持续集成平台将所述配置管理服务器内的所述单元测试文件夹和源码工程文件夹自动远程复制入所述持续集成平台内;

所述持续集成平台将所述持续集成平台内的单元测试文件夹和源码工程文件夹自动远程复制到编译服务器内,并控制所述编译服务器根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件;

所述持续集成平台自动远程复制所述可执行文件至所述嵌入式软件运行平台,并控制所述嵌入式软件运行平台自动运行所述可执行文件生成单元测试结果文件。

可选地,所述方法还包括:

所述持续集成平台自动获取所述单元测试结果文件,根据所述单元测试结果文件生成单元测试报告并通过页面展示。

可选地,所述嵌入式软件运行平台为ARM平台,所述方法还包括:

将SSH轻量级工具DropBear移植到所述嵌入式软件运行平台中,以使所述嵌入式软件运行平台支持网络通信;

为ARM开发板配置网络环境,以搭建所述嵌入式软件运行平台。

可选地,所述方法还包括:

为所述编译服务器配置密钥,以实现免密远程访问所述编译服务器;

为所述嵌入式软件运行平台配置密钥,以实现免密远程访问所述嵌入式软件运行平台;

为所述持续集成平台配置密钥,以实现免密远程访问所述持续集成平台。

本公开还提供一种嵌入式软件单元测试系统,包括:配置管理服务器、编译服务器、嵌入式软件运行平台和持续集成平台;

所述配置管理服务器,用于接收源码文件并存储在源码工程文件夹中,接收第一编译规则文件、单元测试框架静态库、单元测试代码文件和单元测试框架主函数文件并存储在单元测试文件夹中

所述持续集成平台,还用于将所述持续集成平台内的单元测试文件夹和源码工程文件夹自动远程复制到编译服务器内;

所述编译服务器,用于在所述持续集成平台的控制下,根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件;

所述持续集成平台,还用于自动远程复制所述可执行文件至所述嵌入式软件运行平台;

所述嵌入式软件运行平台,还用于在所述持续集成平台的控制下,自动运行所述可执行文件生成单元测试结果文件。

可选地,所述持续集成平台,还用于自动获取所述单元测试结果文件,根据所述单元测试结果文件生成单元测试报告并通过页面展示。

可选地,所述嵌入式软件运行平台为ARM平台,所述系统还包括:

网络通信支持模块,用于将SSH轻量级工具DropBear移植到所述嵌入式软件运行平台中,以使所述嵌入式软件运行平台支持网络通信;

网络环境配置模块,用于为ARM开发板配置网络环境,以搭建所述嵌入式软件运行平台。

可选地,所述系统还包括:

编译服务器密钥配置模块,用于为所述编译服务器配置密钥,以实现免密远程访问所述编译服务器;

嵌入式软件运行平台密钥配置模块,用于为所述嵌入式软件运行平台配置密钥,以实现免密远程访问所述嵌入式软件运行平台;

持续集成平台密钥配置模块,用于为所述持续集成平台配置密钥,以实现免密远程访问所述持续集成平台。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本公开还提供一种电子设备,其特征在于,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法的步骤。

本公开实施例提供的技术方案,在编译服务器内根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件,自动复制所述可执行文件到嵌入式软件运行平台,所述嵌入式软件运行平台自动运行可执行文件生成单元测试结果文件。本公开实施例提供的技术方案,开发人员在提供新的可测试版本时不再需要将源码手动编译成源码动态库提供给单元测试人员,只需将添加或修改的源码文件直接上传至配置管理服务器的源码工程文件夹中即可,提高了开发人员更新可测试版本的速度;单元测试人员只需将添加或修改的单元测试代码文件上传至配置管理服务器,并运行所述嵌入式软件单元测试系统,即可获取单元测试结果文件,提高了单元测试人员的测试效率。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的一种嵌入式软件单元测试方法的流程图。

图2是本公开实施例提供的另一种嵌入式软件单元测试方法的流程图。

图3是本公开实施例提供的一种嵌入式软件单元测试系统的框图。

图4是本公开实施例提供的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

本公开实施例提供一种嵌入式软件单元测试方法。图1示出了所述嵌入式软件单元测试方法的流程图。如图1所示,所述方法包括:

步骤S11,配置管理服务器接收源码文件并存储在源码工程文件夹中,接收第一编译规则文件、单元测试框架静态库、单元测试代码文件和单元测试框架主函数文件并存储在单元测试文件夹中。

可选地,在此步骤之前,所述方法还包括:在编译服务器内根据第二编译规则文件将单元测试框架编译生成单元测试框架静态库。所述第二编译规则文件用于将单元测试框架编译生成单元测试框架静态库。其中,所述第一编译规则文件由build文件、configure.ac文件、Makefile.am文件和automake文件组成,用于实现单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者的交叉编译,以生成可执行文件。开发人员在添加或修改源码文件后,直接将源码文件上传至配置管理服务器的源码工程文件夹中。单元测试人员将单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件上传至配置管理服务器的单元测试文件夹中。单元测试人员在添加或修改的单元测试代码文件后,直接上传至配置管理服务器的单元测试文件夹中。

步骤S12,持续集成平台将所述配置管理服务器内的所述单元测试文件夹和源码工程文件夹自动远程复制入所述持续集成平台内。

具体地:持续集成平台的配置管理服务器插件将配置管理服务器的源码工程文件夹和单元测试文件夹自动复制到所述持续集成平台的项目文件夹中。

步骤S13,所述持续集成平台将所述持续集成平台内的单元测试文件夹和源码工程文件夹自动远程复制到编译服务器内,并控制所述编译服务器根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件。

步骤S14,所述持续集成平台自动远程复制所述可执行文件至所述嵌入式软件运行平台,并控制所述嵌入式软件运行平台自动运行所述可执行文件生成单元测试结果文件。

可以在所述持续集成平台创建项目,设置定时任务,在每天的固定时段,执行自动化脚本,通过执行该自动化脚本实现步骤S12、步骤S13和步骤S14,即:持续集成平台通过执行该自动化脚本实现将所述单元测试文件夹和源码工程文件夹自动远程复制到持续集成平台,再从持续集成平台自动远程复制到编译服务器内,并控制所述编译服务器根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件,以及自动远程复制所述可执行文件至所述嵌入式软件运行平台,并控制所述嵌入式软件运行平台自动运行所述可执行文件生成单元测试结果文件。

本公开实施例提供的技术方案,在编译服务器内根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件,自动复制所述可执行文件到嵌入式软件运行平台,所述嵌入式软件运行平台自动运行可执行文件生成单元测试结果文件。本公开实施例提供的技术方案,开发人员在提供新的可测试版本时不再需要将源码手动编译成源码动态库提供给单元测试人员,只需将添加或修改的源码文件直接上传至配置管理服务器的源码工程文件夹中即可,提高了开发人员更新可测试版本的速度;单元测试人员只需将添加或修改的单元测试代码文件上传至配置管理服务器,并运行所述嵌入式软件单元测试系统,即可获取单元测试结果文件,提高了单元测试人员的测试效率。

可选地,如图2所示,所述方法还包括:

步骤S15,所述持续集成平台自动获取所述单元测试结果文件,根据所述单元测试结果文件生成单元测试报告并通过页面展示。

可以在所述持续集成平台内设置单元测试结果文件插件,实现自动读取所述单元测试结果文件,并根据所述单元测试结果文件生成单元测试报告并通过页面展示。所述持续集成平台运行自动化脚本调用所述单元测试结果文件插件,实现自动读取所述单元测试结果文件,并根据所述单元测试结果文件生成单元测试报告并通过页面展示。

可选地,所述嵌入式软件运行平台为ARM平台,所述方法还包括:

将SSH轻量级工具DropBear移植到所述嵌入式软件运行平台中,以使所述嵌入式软件运行平台支持网络通信。

SSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。。Dropbear是一个相对较小的SSH服务器和客户端。由于ARM平台只支持串口通信,所以在此需要将SSH轻量级工具DropBear移植到所述嵌入式软件运行平台中,以使所述嵌入式软件运行平台支持网络通信。

为ARM开发板配置网络环境,以搭建所述嵌入式软件运行平台。

可选地,所述方法还包括:

为所述编译服务器配置密钥,以实现免密远程访问所述编译服务器。

其中,实现免密远程访问所述编译服务器主要包括:实现将存储在配置管理服务器内的单元测试文件夹和源码工程文件夹远程复制到编译服务器内,以及将在所述编译服务器内生成的可执行文件远程复制到嵌入式软件运行平台。上述过程可以通过持续集成平台运行自动化脚本实现。为所述嵌入式软件运行平台配置密钥,以实现免密远程访问所述嵌入式软件运行平台。

其中,实现免密远程访问所述嵌入式软件运行平台主要包括:实现将编译服务器内生成的可执行文件远程复制到所述嵌入式软件运行平台,以及将所述嵌入式软件运行平台生成的单元测试结果文件远程复制到持续集成平台。上述过程可以通过持续集成平台运行自动化脚本实现。

为所述持续集成平台配置密钥,以实现免密远程访问所述持续集成平台。

其中,实现免密远程访问所述持续集成平台主要包括:将所述嵌入式软件运行平台生成的单元测试结果文件远程复制到持续集成平台。上述过程可以通过持续集成平台运行自动化脚本实现。

基于上述发明构思,本公开实施例还提供一种嵌入式软件单元测试系统10。如图3所示,所述嵌入式软件单元测试系统10包括:配置管理服务器11、编译服务器12、嵌入式软件运行平台13和持续集成平台14。

所述配置管理服务器11,用于接收源码文件并存储在源码工程文件夹中,接收第一编译规则文件、单元测试框架静态库、单元测试代码文件和单元测试框架主函数文件并存储在单元测试文件夹中。

可选地,所述系统还包括:单元测试框架静态库生成模块。所述单元测试框架静态库生成模块,用于在编译服务器12内根据第二编译规则文件将单元测试框架编译生成单元测试框架静态库。所述第二编译规则文件用于将单元测试框架编译生成单元测试框架静态库。其中,所述第一编译规则文件由build文件、configure.ac文件、Makefile.am文件和automake文件组成,用于实现单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者的交叉编译,以生成可执行文件。开发人员在添加或修改源码文件后,直接将源码文件上传至配置管理服务器的源码工程文件夹中。单元测试人员将单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件上传至配置管理服务器的单元测试文件夹中。单元测试人员在添加或修改的单元测试代码文件后,直接上传至配置管理服务器的单元测试文件夹中。

所述持续集成平台14,用于将所述配置管理服务器内的所述单元测试文件夹和源码工程文件夹自动远程复制入所述持续集成平台内。

具体地:持续集成平台的配置管理服务器插件将配置管理服务器的源码工程文件夹和单元测试文件夹自动复制到所述持续集成平台的项目文件夹中。

所述持续集成平台14,用于将所述持续集成平台14内的单元测试文件夹和源码工程文件夹自动远程复制到编译服务器12内。

所述编译服务器12,用于在所述持续集成平台14的控制下,根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件。

所述持续集成平台14,还用于自动远程复制所述可执行文件至所述嵌入式软件运行平台13。

所述嵌入式软件运行平台13,还用于在所述持续集成平台14的控制下,自动运行所述可执行文件生成单元测试结果文件。

可以在所述持续集成平台14创建项目,设置定时任务,在每天的固定时段,执行自动化脚本,通过执行该自动化脚本实现:持续集成平台14通过执行该自动化脚本将所述单元测试文件夹和源码工程文件夹自动远程复制到持续集成平台14,再从持续集成平台14自动远程复制到编译服务器12内,并控制所述编译服务器12根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件,以及自动远程复制所述可执行文件至所述嵌入式软件运行平台13,并控制所述嵌入式软件运行平台13自动运行所述可执行文件生成单元测试结果文件。

本公开实施例提供的技术方案,在编译服务器12内根据所述第一编译规则文件实现所述单元测试框架静态库、单元测试代码文件、源码工程和单元测试框架主函数文件四者自动交叉编译生成可执行文件,自动复制所述可执行文件到嵌入式软件运行平台13,所述嵌入式软件运行平台13自动运行可执行文件生成单元测试结果文件。本公开实施例提供的技术方案,开发人员在提供新的可测试版本时不再需要将源码手动编译成源码动态库提供给单元测试人员,只需将添加或修改的源码文件直接上传至配置管理服务器11的源码工程文件夹中即可,提高了开发人员更新可测试版本的速度;单元测试人员只需将添加或修改的单元测试代码文件上传至配置管理服务器11,并运行所述嵌入式软件单元测试系统10,即可获取单元测试结果文件,提高了单元测试人员的测试效率。

可选地,所述持续集成平台14,还用于自动获取所述单元测试结果文件,根据所述单元测试结果文件生成单元测试报告并通过页面展示。

可以在所述持续集成平台14内设置单元测试结果文件插件,实现自动读取所述单元测试结果文件,并根据所述单元测试结果文件生成单元测试报告并通过页面展示。所述持续集成平台14运行自动化脚本调用所述单元测试结果文件插件,实现自动读取所述单元测试结果文件,并根据所述单元测试结果文件生成单元测试报告并通过页面展示。

可选地,所述嵌入式软件运行平台13为ARM平台,所述系统还包括:

网络通信支持模块,用于将SSH轻量级工具DropBear移植到所述嵌入式软件运行平台13中,以使所述嵌入式软件运行平台13支持网络通信。

SSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。。Dropbear是一个相对较小的SSH服务器和客户端。由于ARM平台只支持串口通信,所以在此需要将SSH轻量级工具DropBear移植到所述嵌入式软件运行平台13中,以使所述嵌入式软件运行平台13支持网络通信。

网络环境配置模块,用于为ARM开发板配置网络环境,以搭建所述嵌入式软件运行平台13。

可选地,所述系统还包括:

编译服务器12密钥配置模块,用于为所述编译服务器12配置密钥,以实现免密远程访问所述编译服务器12。

其中,实现免密远程访问所述编译服务器12主要包括:实现将存储在配置管理服务器11内的单元测试文件夹和源码工程文件夹远程复制到编译服务器12内,以及将在所述编译服务器12内生成的可执行文件远程复制到嵌入式软件运行平台13。上述过程可以通过持续集成平台运行自动化脚本实现。

嵌入式软件运行平台13密钥配置模块,用于为所述嵌入式软件运行平台13配置密钥,以实现免密远程访问所述嵌入式软件运行平台13。

其中,实现免密远程访问所述嵌入式软件运行平台13主要包括:实现将编译服务器12内生成的可执行文件远程复制到所述嵌入式软件运行平台13,以及将所述嵌入式软件运行平台13生成的单元测试结果文件远程复制到持续集成平台14。上述过程可以通过持续集成平台运行自动化脚本实现。

持续集成平台14密钥配置模块,用于为所述持续集成平台14配置密钥,以实现免密远程访问所述持续集成平台14。

其中,实现免密远程访问所述持续集成平台14主要包括:将所述嵌入式软件运行平台13生成的单元测试结果文件远程复制到持续集成平台14。上述过程可以通过持续集成平台运行自动化脚本实现。

基于上述发明构思,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述嵌入式软件单元测试方法的步骤。

基于上述发明构思,本公开实施例还提供一种电子设备。图4是根据一示例性实施例示出的一种电子设备700的框图。如图4所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的嵌入式软件单元测试方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的嵌入式软件单元测试方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的嵌入式软件单元测试方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的嵌入式软件单元测试方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号