基于DSP的嵌入式软件测试方法与系统与流程

文档序号:22083365发布日期:2020-09-01 19:44阅读:254来源:国知局
基于DSP的嵌入式软件测试方法与系统与流程

本发明属于软件测试技术领域,尤其涉及一种基于dsp的嵌入式软件测试方法、系统以及实现该方法的计算机可读存储介质。



背景技术:

嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以此满足系统对功能、成本、体积和功耗等要求。

嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。

通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对日益复杂的嵌入式软件进行快速有效的测试愈加显得重要。

嵌入式软件测试要根据软件的功能要求确定测试项目,主要包括:测试软件的快速反应能力,确保软件在不受系统内部状态影响的情况下也能够快速应对事件;测试软件异步并发事件处理能力和容错能力,确保嵌入式软件在死机或出错的情况下也可以恢复到运行前的状态。

申请号为cn201911206258.6的中国发明专利申请提出一种基于资源共享的分布式嵌入式软件测试系统,所述嵌入式软件测试系统包括:多个节点,其中每个节点内具有对所述嵌入式软件进行仿真验证的仿真模块,所述节点对系统输入行为和输出行为的访问通过资源管理模块提供的输入和输出的映射实现,以实现多个节点构建能够资源共享的网络,以及资源管理模块,用于节点内应用对远程资源使用时进行调度,其中,所述远程资源包括远程共享内存和远程程序调用。本申请提供的基于资源共享的分布式嵌入式软件测试系统不仅能够满足嵌入式软件运行平台规模的扩展,也能够在分布式架构下实现软件运行平台内部资源的共享。

申请号为cn201910599425.1的中国发明专利申请提出一种一种适用于嵌入式系统的单元测试框架,用于解决当前嵌入式领域应用程序标准化测试的问题。所述单元测试框架包括标准测试接口模块、测试用例导出模块、测试命令解析模块、测试单元执行模块、日志模块和测试结果处理模块。其中测试用例导出模块将测试用例程序抽象为测试初始化模块、测试清理模块和测试用例程序入口模块,并利用链接器特性将测试用例程序导出到程序镜像中指定的代码段。所述单元测试框架使用标准c语言编写,实现了通用测试接口,降低了测试用例程序编写难度,提高了代码复用度,缩短了开发周期,适用于所有的嵌入式操作系统,并可以移植到没有使用嵌入式系统的裸机系统中使用。

然而,上述技术方案都是针对特定的单一嵌入式软件进行,其测试数量以及测试数据流量都比较小;然而,虽然一般来说嵌入式软件的开发规模小,但是嵌入式软件的开发难度却相对较大,需要开发板级初始化程序、应用程序、驱动程序、测试程序等多样化的程序,这些程序涉及到低层软件开发,需采用不同的开发技术手段,在桌面机上完成开发,并在目标机上运行程序。在这种情况下,增加了嵌入式软件测试的难度,需要对不同的程序进行测试。如果测试用例数量不够或者测试资源不足,则会极大的降低测试效率,并且无法保证测试的准确和全面性。



技术实现要素:

为解决上述技术问题,本发明提出一种基于dsp的嵌入式软件测试方法与系统。测试系统包括数据计算中心、多个边缘计算节点、移动终端请求测试链以及移动终端请求测试链创建子系统。数据计算中心中的测试性能数据分析引擎基于边缘计算节点反馈的所述测试性能数据计算边缘计算节点的测试性能值以及总体测试性能值;基于测试性能值,所述数据计算中心将所述软件测试请求的第二部分分配给所述多个边缘计算节点;基于所述总体测试性能值,所述数据计算中心将所述软件测试请求的第三部分发送至所述所述移动终端请求测试链。本发明的技术方案能够基于数据服务提供商(dataserviceprovider)高效的实现嵌入式软件的分阶段集成化测试并且确保测试全面性。

具体来说,本申请的技术方案整体上概括如下:

在本发明的第一个方面,提供一种基于dsp(dataserviceprovider)的嵌入式软件测试系统,所述嵌入式软件测试系统包括数据计算中心;

作为本发明的第一个优点,所述测试系统包括移动终端请求测试链;

作为本发明的再一个优点,所述测试系统包括多个边缘计算节点。

作为体现上述优点的具体的关键技术手段,所述移动终端请求测试链包括多个用户测试节点,每个用户测试节点对应一个用户终端设备;

所述数据计算中心用于接收嵌入式软件测试请求,并将所述软件测试请求的第一部分发送至所述多个边缘计算节点;

所述多个边缘计算节点接收所述软件测试请求进行软件测试,并反馈测试性能数据给所述数据计算中心;

作为本发明的再一个优点,所述数据计算中心包括测试性能数据分析引擎,所述测试性能数据分析引擎基于所述边缘计算节点反馈的所述测试性能数据计算每一个所述边缘计算节点的测试性能值以及总体测试性能值;

基于所述每一个所述边缘计算节点的测试性能值,所述数据计算中心将所述软件测试请求的第二部分分配给所述多个边缘计算节点;

基于所述总体测试性能值,所述数据计算中心将所述软件测试请求的第三部分发送至所述所述移动终端请求测试链。

更具体的,所述测试系统还包括移动终端请求测试链创建子系统;所述基于所述总体测试性能值,所述数据计算中心将所述软件测试请求的第三部分发送至所述所述移动终端请求测试链,具体包括:

若所述总体测试性能值低于第一预定标准阈值,则所述移动终端请求测试链创建子系统在所述dsp(dataserviceprovider)网络中发布移动终端请求测试链创建合约,所述创建合约包括所述嵌入式软件测试请求的测试要求、移动终端请求测试链包含的用户测试节点数量范围;

将响应上述创建合约的用户终端设备作为用户测试节点加入到所述移动终端请求测试链中。

在本发明的第二个方面,提出一种嵌入式软件测试方法,所述方法基于数据服务提供商(dsp:dataserviceprovider)实现。

在本发明中,通过用户的社交网络连接的具备空余计算能力的用户终端设备(包括数据请求端)共同构成了数据服务提供商(dsp:dataserviceprovider)。数据服务提供商可以通过调用用户终端设备来数据请求用户(daterequestusers,简称dru)辅助已有的边缘计算服务。

在本发明中,所述方法包括如下步骤s700~s709:

s700:接收数据请求用户提交的嵌入式软件测试请求;

s701:对所述测试请求进行解析,得到测试请求的多个子部分;

s702:将所述多个子部分的未处理的第一部分发送给多个边缘计算节点;

s703:接收所述多个边缘计算反馈的软件测试性能数据,确定出每一个所述边缘计算节点的测试性能值以及总体测试性能值;

s704:基于所述边缘计算节点的测试性能值以及总体测试性能值,将所述测试请求的多个子部分中的未处理的第二部分再次分配给所述多个边缘计算节点;

s705:判断所述测试请求是否还包括其他未处理的子部分,如果是,则进入下一步,否则,退出;

s706:基于所述测试性能值以及总体测试性能值,确定出移动终端请求测试链包含的用户测试节点的节点数;

s707:基于所述确定出的移动终端请求测试链包含的用户测试节点的节点数,发布移动终端请求测试链创建合约;

s708:将所述测试请求的多个子部分中的未处理的第三部分发送至所述所述移动终端请求测试链;

s709:判断所述测试请求是否还包括其他未处理的子部分,如果是,则返回步骤s702,否则,退出。

上述嵌入式软件测试方法可以通过所述的基于dsp的嵌入式软件测试系统实现。

本发明的上述方法可以通过计算机形式的程序代码自动化编程实现,因此,本发明还提供一种计算机可读存储介质,其上存储有计算机可执行程序指令,利用软件测试系统中的处理器和存储器执行所述可执行程序指令,用于实现所述的嵌入式软件测试方法。

本发明的进一步优点将结合说明书附图在具体实施例部分进一步详细体现。

附图说明

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

图1是本发明一个实施例的基于dsp的嵌入式软件测试系统的模块架构图;

图2是图1所述系统进行软件测试的流程步骤原理图;

图3-图4是利用所述系统或者方法执行软件测试时详细计算流程图。

具体实施方式

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

参照图1是本发明一个实施例的基于dsp的嵌入式软件测试系统的模块架构图。

图1中所述测试系统包括数据计算中心、多个边缘计算节点、以及移动终端请求测试链;所述数据计算中心包括测试性能数据分析引擎。

所述移动终端请求测试链包括多个用户测试节点,每个用户测试节点对应一个用户终端设备;

所述数据计算中心用于接收嵌入式软件测试请求,并将所述软件测试请求的第一部分发送至所述多个边缘计算节点;

所述多个边缘计算节点接收所述软件测试请求进行软件测试,并反馈测试性能数据给所述数据计算中心。

所述测试性能数据分析引擎基于所述边缘计算节点反馈的所述测试性能数据计算每一个所述边缘计算节点的测试性能值以及总体测试性能值;

基于所述每一个所述边缘计算节点的测试性能值,所述数据计算中心将所述软件测试请求的第二部分分配给所述多个边缘计算节点;

基于所述总体测试性能值,所述数据计算中心将所述软件测试请求的第三部分发送至所述所述移动终端请求测试链。

在图1中,所述测试系统还包括移动终端请求测试链创建子系统;

所述基于所述总体测试性能值,所述数据计算中心将所述软件测试请求的第三部分发送至所述所述移动终端请求测试链,具体包括:

若所述总体测试性能值低于第一预定标准阈值,则所述移动终端请求测试链创建子系统在所述dsp(dataserviceprovider)网络中发布移动终端请求测试链创建合约,所述创建合约包括所述嵌入式软件测试请求的测试要求、移动终端请求测试链包含的用户测试节点数量范围;

将响应上述创建合约的用户终端设备作为用户测试节点加入到所述移动终端请求测试链中。

图2是利用图1所述系统进行软件测试的流程步骤原理图,主要包括如下步骤:

s700:接收数据请求用户提交的嵌入式软件测试请求;

s701:对所述测试请求进行解析,得到测试请求的多个子部分;

s702:将所述多个子部分的未处理的第一部分发送给多个边缘计算节点;

s703:接收所述多个边缘计算反馈的软件测试性能数据,确定出每一个所述边缘计算节点的测试性能值以及总体测试性能值;

s704:基于所述边缘计算节点的测试性能值以及总体测试性能值,将所述测试请求的多个子部分中的未处理的第二部分再次分配给所述多个边缘计算节点;

s705:判断所述测试请求是否还包括其他未处理的子部分,如果是,则进入下一步,否则,退出;

s706:基于所述测试性能值以及总体测试性能值,确定出移动终端请求测试链包含的用户测试节点的节点数;

s707:基于所述确定出的移动终端请求测试链包含的用户测试节点的节点数,发布移动终端请求测试链创建合约;

s708:将所述测试请求的多个子部分中的未处理的第三部分发送至所述所述移动终端请求测试链;

s709:判断所述测试请求是否还包括其他未处理的子部分,如果是,则返回步骤s702,否则,退出。

在图1-2基础上,参见图3-4。

第i个边缘计算节点的测试性能值按照如下方式计算:

其中,di为第i个边缘计算节点本次接收软件测试请求后与所述数据计算中心之间通信的数据流大小;ti为第i个边缘计算节点本次接收软件测试请求后与所述数据计算中心之间数据通信持续时间;li为第i个边缘计算节点本身的系统迟延参数,所述系统迟延参数对于每一个边缘计算节点来说为常数,不同的边缘计算节点所述系统迟延参数不同。

所述总体性能值按照如下方式计算:

其中n为所述边缘计算节点的数量。

在对所述软件测试请求的第二部分进行处理时,第i个边缘计算节点接收软件测试请求后与所述数据计算中心之间通信的数据流大小限定为d′i:

其中n为所述边缘计算节点的数量。

所述基于所述总体测试性能值,所述数据计算中心将所述软件测试请求的第三部分发送至所述移动终端请求测试链,具体包括:

所述数据计算中心将所述软件测试请求的第三部分发送至所述移动终端请求测试链中的b个测试节点,b值按照如下公式确定:

其中表示向上取整。

在本发明中,限定软件测试有7个基本阶段,即单元或模块测试、集成测试、外部功能测试、回归测试、系统测试、验收测试、安装测试。

嵌入式软件测试在4个阶段上进行,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。

因此,作为优选,所述测试请求包括态静态测试和动态测试;

所述静态测试和动态测试均包含多个组成部分。

例如,静态测试可以包括模块测试、集成测试、系统测试,动态测试可以包括回归测试、系统测试、验收测试、安装测试。

或者,静态测试是指在不运行程序的前提下,对源代码的一些静态指标进行分析,借以发现程序中不足之处的过程。静态测试通常可以分为3个阶段:代码评审阶段、质量评审阶段以及设计评审阶段。代码评审阶段的主要内容是查找代码中不符合编写规则的部分,发现代码的潜在缺陷,减少错误出现的概率,提高软件稳定性;质量评审阶段的主要内容是对代码的复杂度和函数调用关系进行分析,了解整个软件系统的复杂度情况和结构化程度,实现对软件项目的质量跟踪与控制;设计评审阶段的主要内容则是分析代码提供的接口以及数据变量的使用情况,旨在发现代码的潜在错误,进一步降低出错的可能性。

动态测试是指被测代码在相对真实的环境下运行,观察并分析程序运行时体现出的功能、逻辑、行为和结构等情况,以发现其中的错误现象,从而达到检测的目的。动态测试主要包括黑盒测试和白盒测试2种方法。

本发明的技术方案利用通过用户的社交网络连接的具备空余计算能力的用户终端设备(包括数据请求端)共同构成的数据服务提供商(dsp:dataserviceprovider)进行嵌入式软件测试服务,由于数据服务提供商可以通过调用用户终端设备来数据请求用户(daterequestusers,简称dru)辅助已有的边缘计算服务,因此,能够高效的实现嵌入式软件的分阶段集成化测试并且确保测试全面性。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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