CN112328467A - 一种嵌入式系统程序测试方法及装置 - Google Patents
一种嵌入式系统程序测试方法及装置 Download PDFInfo
- Publication number
- CN112328467A CN112328467A CN202010981938.1A CN202010981938A CN112328467A CN 112328467 A CN112328467 A CN 112328467A CN 202010981938 A CN202010981938 A CN 202010981938A CN 112328467 A CN112328467 A CN 112328467A
- Authority
- CN
- China
- Prior art keywords
- program
- test
- tested
- heartbeat
- file
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本文涉及计算机技术领域,尤其涉一种嵌入式系统程序测试方法及装置。其中方法包括随嵌入式操作系统的启动而启动守护进程,并所述守护进程解析测试配置文件;所述守护进程根据所述测试配置文件获取待测试程序文件,并启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息;所述守护进程触发所述待测试程序文件运行从而进行测试,并根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。可以通过守护进程自动的完成嵌入式系统的程序测试,通过心跳信息可以实时的使得外界的上位机获知嵌入式系统的运行情况。
Description
技术领域
本文涉及计算机技术领域,尤其涉及一种嵌入式系统程序测试方法及装置。
背景技术
嵌入式系统是指用于执行独立功能的专用计算机系统,它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统必须根据应用需求对软件、硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。嵌入式软件是为嵌入式系统服务的,因此要求嵌入式软件要与外部硬件和设备紧密联系。
随着嵌入式计算机技术的迅猛发展,嵌入式系统在各个行业中得到了越来越广泛的应用,目前已经广泛应用于国防、航空航天、医疗等重要行业中,确保它的稳定可靠是极为重要的任务。嵌入式系统的执行程序测试一般是指保证硬件一切正常的情况下验证程序执行的时序是否正确,逻辑和结果是否与设计要求相符,能否满足功能和性能要求等。具体在嵌入式系统的程序测试过程中,将测试程序编译,然后上传到嵌入式系统,在嵌入式系统中执行程序,然后获取程序执行结果的过程。
由于测试的程序会由于每次嵌入式系统的CPU核数及所分配的空间不同,产生不同的执行结果或者具有不同的效率,在现有技术中通常是通过人工方式重复执行编译程序、上传程序、嵌入式系统执行程序、回传结果等步骤,现在亟需一种能够取代人工测试带来的工作效率较低,测试过程繁琐问题的解决方案。
发明内容
为解决现有技术中的问题,本文实施例提供了一种嵌入式系统程序测试方法及装置,用于解决现有技术中嵌入式系统程序测试效率低的问题。
本文实施例提供了一种嵌入式系统程序测试方法,
随嵌入式操作系统的启动而启动守护进程,并所述守护进程解析测试配置文件;
所述守护进程根据所述测试配置文件获取待测试程序文件,并启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息;
所述守护进程触发所述待测试程序文件运行从而进行测试,并根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
本文实施例还提供了一种嵌入式系统程序测试装置,包括,
启动单元,用于在嵌入式操作系统启动时启动守护进程;
解析单元,用于解析测试配置文件;
获取单元,用于根据所述测试配置文件获取待测试程序文件;
心跳定时器,用于间隔预定的时间产生心跳信息;
心跳单元,用于根据所述心跳定时器定时向外界设备输出心跳信息;
测试单元,用于触发所述待测试程序文件运行从而进行测试;
测试结果单元,用于根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
本文实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本文实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述的方法。
利用本文实施例,可以通过守护进程自动的完成嵌入式系统的程序测试,避免人为参与过多而造成的测试过程复杂、时间成本高等问题;通过心跳信息可以实时的使得外界的上位机获知嵌入式系统的运行情况,是否已经宕机,令测试人员可以及时发现测试中的问题;通过指定守护进程的运行核心,可以提高对程序测试的准确性。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本文实施例一种嵌入式系统的结构示意图;
图2所示为本文实施例一种嵌入式系统程序测试方法的流程图;
图3所示为本文实施例一种嵌入式系统程序测试装置的结构示意图;
图4所示为本文实施例一种嵌入式系统程序测试装置的具体结构示意图;
图5所示为本文实施例一种嵌入式系统程序测试方法的具体流程图;
图6所示为本文实施例中嵌入式系统的示意图。
【附图标号说明】
101、多核微处理器;
102、以太网接口;
103、存储单元;
104、通信接口;
105、电源单元;
301、启动单元;
302、解析单元;
303、获取单元;
304、心跳定时器;
305、心跳单元;
306、测试单元;
307、测试结果单元;
3071、测试结果上传模块;
3072、通知模块;
308、核心调整单元;
309、心跳信息接收单元;
601、嵌入式系统;
602、底板。
具体实施方式
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
本文实施例中的嵌入式系统可以例如图1所示的结构,其中包括多核微处理器101,以太网接口102,存储单元103,通信接口104,电源单元105等,对于不同的嵌入式系统可以有不同的结构,本实施例只是示意性说明,并不限制嵌入式系统还包括其他功能单元或者减少一些功能单元,例如可以不包括通信接口104,其中,
多核微处理器101与所述以太网接口102,存储单元103,通信接口104,电源单元105等相连接,用于运行嵌入式操作系统,所述嵌入式操作系统可以基于Windows内核也可以基于Linux内核,在此不做限制,所述待测试程序根据测试需求单独的在CPU的每个内核中进行测试,或者在指定的内核中进行测试。
所述以太网接口102,用于与上位机进行通信,传递控制指令和测试结果等数据,具体的,可以例如包括两个千兆以太网媒体访问控制(Media Access Control,MAC)层硬件控制器、以太网物理层传输芯片,以太网物理层传输芯片与以太网MAC层硬件控制器连接,以太网物理层传输芯片用于将以太网MAC层硬件控制器与网络传输介质连接,由于以太网中的各种设备必须通过物理层器件(Phsical Layer Interface Devices,PHY)才能与网络传输介质相连,因此以太网物理层传输芯片作为物理层器件主要用于将各网关器件连接到物理介质上的关键部件。
存储单元103,用于存储嵌入式操作系统,以及测试程序的配置文件和测试结果;其中,所述存储单元例如可以选择使用闪存或者硬盘等非易失性存储器。
通信接口104,用于与上位机进行通信,或者与其他嵌入式系统进行通信,例如可以采用USB接口单元,所述USB接口单元包括USB活动(USB On The Go,USB OTG)芯片,USBOTG芯片用于连接外部设备。USB OTG芯片作为主设备(USB Host)可以连接U盘、鼠标等USB设备。USB OTG芯片作为从设备(USB device)可以连接其他主机,此时嵌入式系统可以通过该USB接口单元插接USB网卡,实现与上位机或者其他嵌入式系统的通信。
电源单元105,用于通过外接输入的电流对嵌入式系统中的各个功能单元进行供电,例如可以包括电源输入接口电路,从电源输入接口输入的电信号通过直流输出电压检测信号和交流输入电压信号的兼容(Power good,PGOOD)信号按顺序级联,以1.0V、1.8V、1.5V、3.3V的顺序完成上电过程。
以上描述的嵌入式系统只是本文的示意性举例,并不限制本文的程序测试方法运行的环境,本文中的嵌入式系统包括但不限于SylixOS、VxWorks等。
如图2所示为本文实施例一种嵌入式系统程序测试方法的流程图,在本图中描述了嵌入式系统进行自动程序测试的方法流程,在对待测试程序进行测试的过程中,根据测试的需要待测试程序在不同的测试中可能会分别运行于每一个CPU核心或者指定的核心,并反复多次的运行于这些核心,从而来测试程序的稳定,以及程序测试结果是否与预定的结果相同,嵌入式系统是指嵌入式系统的板卡等硬件环境,嵌入式操作系统是指运行于所述嵌入式系统硬件环境上的操作系统,具体包括,
步骤201,随嵌入式操作系统的启动而启动守护进程,并所述守护进程解析测试配置文件。
步骤202,所述守护进程根据所述测试配置文件获取待测试程序文件,并启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息。
步骤203,所述守护进程触发所述待测试程序文件运行从而进行测试,并根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
在上述方法中,在嵌入式系统中内置了与嵌入式操作系统同时启动的守护进程,并通过该守护进程根据测试配置文件自动的配置测试环境,并输出心跳信息,从而能够保证对嵌入式操作系统启动后进行待测试程序的测试过程中的监测功能,外界设备例如包括上位机、测试终端、计算机等,可以根据所述心跳信息来判断是否由于待测试程序出现问题从而导致嵌入式操作系统宕机,并且能够实现在嵌入式系统中自动进行程序测试,减少了人工参与,节省了人力和时间成本。
作为本文实施例的一个方面,所述随嵌入式操作系统的启动而启动守护进程进一步包括,
在启动时查询启动配置文件中是否包括所述守护进程,若包括所述守护进程,则启动所述守护进程。
在本步骤中,所述嵌入式系统上电后,所述嵌入式系统中的嵌入式操作系统随之启动,在其启动的过程中查询启动配置文件中的启动列表,判断是否具有所述守护进行的名称,若包括所述名称,则可以通过启动指令启动该守护进程,其中,所述启动指令例如可以为CTL+守护进程名称+START命令。
作为本文实施例的一个方面,所述随嵌入式操作系统的启动而启动守护进程中进一步包括,
所述守护进程运行于嵌入式系统多核微处理器中指定的核心上。
在本步骤中,通过预先指定守护进程运行于嵌入式系统的多核微处理器的哪个核心,可以避免守护进程输出心跳信息时占用该核心的计算资源,从而导致待测试程序运行不稳定的问题,并且能够避免待测试程序与守护进程运行于同一个核心造成进程之间的干扰,如果出现问题,无法确定到底是由于待测试程序出现的问题还是由于守护进程出现的问题导致测试失败。
作为本文实施例的一个方面,解析测试配置文件进一步包括,所述守护进程接收外界设备传送过来的测试配置文件,根据预先定义的数据格式获取所述测试配置文件中的待测试程序信息、测试结果配置信息。
在本步骤中,外界的上位机将编译好的所述测试配置文件发送给所述守护进程,所述测试配置文件的待测试程序信息包括了待测试程序文件的源位置、文件名称、待测试程序文件的目标位置等;所述测试结果配置信息包括了程序执行结果文件名称、所述程序执行结果文件目标位置等;其中,所述待测试程序文件的源位置是指所述待检测程序文件位于外界的上位机的存储位置,例如基于文件系统的文件路径字符串,或者基于网络的统一资源定位符等;所述待测试程序文件的目标位置是指所述待测试程序文件在所述嵌入式系统中的存储位置;所述程序执行结果文件目标位置是指将程序执行结果文件反馈到外界的上位机存储位置。
所述测试配置文件还可以包括例如,外界的上位机与所述嵌入式系统的通信协议、端口号、文件大小、校验信息、心跳定时器的时间间隔、待测试程序文件的运行参数、待测试程序文件的运行次数、嵌入式操作系统的环境参数等信息。
所述测试配置文件可以为JSON格式或者其他数据格式。
作为本文实施例的一个方面,所述守护进程启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息中进一步包括,
所述守护进程获取所述待测试程序文件中所述待测试程序运行所在的工作核心;
在所述工作核心以外的核心上运行所述心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息。
在本步骤中,所述待测试程序根据测试的需要可能被指定运行于某个核心或者某些核心,称这些核心为工作核心,不同的测试可能需要指定不同的工作核心,从而来测试待测试程序在不同的工作核心上的效率表现、运行稳定性等情况,所述守护进程可以通过分析所述待测试程序文件,从而获得所述待测试程序制定的工作核心,并根据所述嵌入式系统的多核微处理器的信息来调度将产生心跳信息的心跳定时器的进程以及发送心跳信息的进程放置于所述工作核心以外的核心执行,从而可以动态的自动调整与心跳信息相关的进程避开所述待测试程序的进程,从而使得测试过程更加准确。
作为本文实施例的一个方面,所述守护进程启动心跳定时器的时间间隔可以为数秒。
在本步骤中,所述心跳定时器的时间间隔例如可以为3秒、5秒、8秒等时间间隔。
作为本文实施例的一个方面,在所述根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置中进一步包括,
所述守护进程通过文件传输协议(FTP)将所述待测试程序文件的测试结果上传到所述指定位置,并通过传输控制协议(TCP)通知外界设备上传结果。
在本步骤中,守护进程根据所述测试配置文件中配置的执行结果文件目标位置信息将所述待测试程序文件的测试结果上传至外界的上位机的指定位置,当上传完毕后,守护进程通过TCP协议向外界的上位机发送待测试程序文件测试结果完成的通知消息,所述通知消息可以包括指定的字符或者字符串,例如0或1,或者其他形式的字符串。
作为本文实施例的一个方面,所述嵌入式系统程序测试方法中还包括,
所述外界设备在预定的时间中未接收到所述心跳信息,则确定程序测试失败。
本步骤可以运行于步骤202之后的任意一个步骤之中或者之后,例如所述心跳定时器的时间间隔为5秒时,自上一次接收到心跳信息之后的15秒后未能再次接收到该心跳信息,则输出声、光、电等信号,通知测试人员所述待测试程序导致嵌入式操作系统宕机,程序测试失败。其中,待测试程序由于程序本身的问题,或者由于测试配置参数的问题、或者由于与嵌入式系统硬件的匹配问题,都可能导致嵌入式操作系统宕机,从而守护进程也同样无法定时发送心跳信息。
通过本文方法的上述实施例,可以通过守护进程自动的完成嵌入式系统的程序测试,避免人为参与过多而造成的测试过程复杂、时间成本高等问题;并且通过心跳信息可以实时的使得外界的上位机获知嵌入式系统的运行情况,是否已经宕机,令测试人员可以及时发现测试中的问题;通过指定守护进程的运行核心,可以提高对程序测试的准确性;通过将守护进程指定到待测试程序运行的工作核心以外的核心产生心跳定义及向外界设备发送心跳信息,可以自动的配置运行守护进程的核心,从而可以进一步提高程序测试的准确性,并且提高测试的效率。
如图3所示为本文实施例一种嵌入式系统程序测试装置的结构示意图,在本图中描述了嵌入式系统中对待测试程序进行测试的逻辑结构,其中的功能单元可以由多核微处理器实现,或者由运行于嵌入式系统的软件程序实现,具体包括,
启动单元301,用于在嵌入式操作系统启动时启动守护进程;
解析单元302,用于解析测试配置文件;
获取单元303,用于根据所述测试配置文件获取待测试程序文件;
心跳定时器304,用于间隔预定的时间产生心跳信息;
心跳单元305,用于根据所述心跳定时器定时向外界设备输出心跳信息;
测试单元306,用于触发所述待测试程序文件运行从而进行测试;
测试结果单元307,用于根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
上述的各个功能单元形成了上文中的守护进程,还包括了图未示外界的上位机或者测试终端等设备,用于完成对嵌入式系统的程序测试,如图4所示为本文实施例一种嵌入式系统程序测试装置的具体结构示意图,在本图中描述了测试装置的具体结构,其中启动单元301、解析单元302、获取单元303、心跳定时器304、心跳单元305、测试单元306、测试结果单元307、核心调整单元308等构成了上文的守护进程,还包括外界设备中的心跳信息接收单元309,作为本文的实施例的一个方面,所述启动单元301具体用于在启动时查询启动配置文件中是否包括所述守护进程,若包括所述守护进程,则启动所述守护进程。
作为本文的实施例的一个方面,所述启动单元301进一步用于,在嵌入式系统多核微处理器中指定的核心上运行所述守护进程。
作为本文的实施例的一个方面,所述解析单元302具体用于,接收外界设备传送过来的测试配置文件,根据预先定义的数据格式获取所述测试配置文件中的待测试程序信息、测试结果信息。
作为本文的实施例的一个方面,还包括核心调整单元308,用于获取所述待测试程序文件中所述待测试程序运行所在的工作核心;在所述工作核心以外的核心上运行所述心跳定时器304以及心跳单元305。
作为本文的实施例的一个方面,所述测试结果单元307进一步包括,
测试结果上传模块3071,用于通过FTP协议将所述待测试程序文件的测试结果上传到所述指定位置;
通知模块3072,用于通过TCP协议通知外界设备上传结果。
作为本文的实施例的一个方面,该测试装置的外界设备上还包括心跳信息接收单元309,用于接收所述心跳信息,若在预定的时间中未接收到所述心跳信息,则输出程序测试失败信息。
在本实施例中,心跳信息接收单元309可以位于外界的上位机、测试终端、计算机等设备上。
通过本文装置的上述实施例,可以通过守护进程自动的完成嵌入式系统的程序测试,避免人为参与过多而造成的测试过程复杂、时间成本高等问题;并且通过心跳信息可以实时的使得外界上位机获知嵌入式系统的运行情况,是否已经宕机,令测试人员可以及时发现测试中的问题;通过指定守护进程的运行核心,可以提高对程序测试的准确性;通过将守护进程指定到待测试程序运行的工作核心以外的核心产生心跳定义及向外界设备发送心跳信息,可以自动的配置运行守护进程的核心,从而可以进一步提高程序测试的准确性,并且提高测试的效率。
如图5所示为本文实施例一种嵌入式系统程序测试方法的具体流程图,在本图中描述了待测试程序文件进入到嵌入式系统,直到将测试结果上传到外界设备的整个过程,其中所述待测试程序可能被多次的输入到嵌入式系统进行测试,每一次测试可能是对待测试程序进行修改后进行的,具体包括,
步骤501,外界设备与嵌入式系统连接。
在本步骤中,所述嵌入式系统可以如图6所示为本文实施例中嵌入式系统的示意图,其中包括多片嵌入式系统601,插接于提供电源的底板602,在嵌入式系统601图未示的一侧具有以太网接口,用于与外界设备通信。
所述外界设备例如为上位机,通过以太网接口与嵌入式系统连接,并通过TCP协议建立双方的指令通道。
步骤502,嵌入式系统启动时启动守护进程。
在本步骤中,当嵌入式系统上电后,在嵌入式系统中的嵌入式操作系统启动过程中,查询启动配置文件中是否包括守护进程的文件名,如果包括所述守护进程的文件名,则生成启动所述守护进程的启动指令,在基于不同操作系统内核的嵌入式操作系统中启动指令不同,在此不进行限制,根据该启动指令就可以启动所述守护进程;如果启动配置文件中不包括所述守护进程的文件名,则进入正常模式中,例如等待进一步指令、或者启动其他嵌入式系统中存储的其他程序执行某些功能。
其中,还可以在预先指定的嵌入式系统多核微处理器中的核心来启动守护进程,例如所述嵌入式系统多核微处理器中有8个核心,指定在核心1来启动守护进程。
步骤503,外界设备将测试配置文件通过TCP协议发送给嵌入式系统。
在本步骤中,所述外界设备将测试配置文件编译后,形成JSON格式的测试配置文件,其中,所述测试配置文件包括待测试程序信息、测试结果配置信息,所述待测试程序信息包括了待测试程序文件的源位置、文件名称、待测试程序文件的目标位置等;所述测试结果配置信息包括了程序执行结果文件名称、所述程序执行结果文件目标位置等。
步骤504,守护进程解析测试配置文件。
在本步骤中,由于事先约定了测试配置文件的格式,因此守护进程能够根据预定的数据格式解析所述测试配置文件,其中,所述JASON格式数据是一种数据格式,可以被理解为是一段字符串,守护进程按标准格式可以解析出测试配置文件中编译好的待测试程序文件的源位置、文件名称、待测试程序文件的目标位置,待测试程序文件大小等信息。
步骤505,守护进程根据所述测试配置文件中的配置信息,获取待测试程序文件。
在本步骤中,所述守护进程通过解析测试配置文件获得待测试程序文件的源位置以及文件名称,通过FTP协议从所述待测试程序文件的源位置下载所述文件名称的待测试程序文件到所述嵌入式系统的存储单元中。
步骤506,与上述步骤505同时,所述守护进程获取所述待测试程序文件中所述待测试程序的工作核心。
在本步骤中,由于待测试程序会指定该待测试程序的工作核心,也就是根据测试的需要,由测试人员指定待测试程序运行于哪个核心,称该核心为工作核心,所述守护进程获得所述待测试程序的工作核心。
步骤507,所述守护进程在所述工作核心以外的其他核心启动心跳定时器。
在本步骤中,所述守护进程根据上个步骤中获得的待测试程序的工作核心,例如工作核心为2、3、5号核心,则守护进程可以选择核心4启动所述心跳定时器的子进程。其中,所述心跳定时器可以根据设定的时间间隔,例如3秒、5秒,产生一心跳信号,该心跳信号可以是特定的字符、或者字符串。
步骤508,根据所述心跳定时器的时间间隔,在上述工作核心以外的其他核心(特定核心),将产生的心跳信号发送到所述外界设备。
在本步骤中,所述守护进程运行于上述工作核心以外核心的子进程在所述心跳定时器的时间间隔到来之际,将产生的特定字符或者字符串通过TCP协议发送给外界设备。
步骤509,接着上述步骤505,所述守护进程判断是否获得待测试程序文件,当时守护进程获取待测试程序文件失败时,则进入步骤513;否则进入步骤510。
在本步骤中,所述守护进程到指定的待测试程序文件的源位置未下载得到待测试程序文件,则判断本次测试失败。
步骤510,所述守护进程根据所述待测试程序文件触发该待测试程序在所述嵌入式系统中运行。
在本步骤中,所述守护进程通过指令的方式触发所述待测试程序运行,例如通过类似START+待测试程序名称的方式触发所述待测试程序。其中,所述待测试程序运行后会调用所述嵌入式系统以及嵌入式操作系统的计算资源来完成运算,并产生相应的测试结果,存储于嵌入式系统的存储单元中。
步骤511,所述守护进程判断待测试程序文件是否运行失败,当时所述待测试程序运行失败时,则进入步骤513;否则进入步骤512。
在本步骤中,所述待测试程序运行失败,例如待测试程序运行错误、参数错误、或者出现预定义的某些情况时,所述守护进程终止所述心跳定时器以及终止向外界设备发送心跳信息的子进程,释放相应的计算资源以及对上述指定核心的占用,并将运行失败原因通过TCP协议的方式通知外界设备。
当所述待测试程序运行出现问题将导致嵌入式系统宕机,所述守护进程的心跳定时器以及终止向外界设备发送心跳信息的子进程也同样失去反应,停止向外界设备发送心跳信息。当待测试程序运行导致嵌入式系统宕机后,运行于该嵌入式系统上的所有程序都将失去反应,守护进程及其子进程也同样失去反应,将无法再产生心跳信息,也无法向外界设备发送心跳信息。
步骤512,外界设备判断测试结果是否上传到该外界设备,如果没有上传到外界设备,则进入步骤513;否则进入步骤514本次测试完成。
在本步骤中,外界设备接收守护进程通过TCP协议发送的测试结果上传结果,如果接收到上传结果,则本次测试完成;否则通过TCP协议通知守护进程结束心跳定时器,并清理本次测试。
作为本文的另一个实施例,外界设备还可以查询该外界设备的存储单元中是否具有特定名称的测试结果文件,如果存在则本次测试完成;否则通过TCP协议通知守护进程结束心跳定时器,并清理本次测试。
步骤513,终止心跳定时器,并清理本次测试。
在本步骤中,所述终止心跳定时器,并清理本次测试是指,守护进程终止所述心跳定时器以及终止向外界设备发送心跳信息的子进程,释放相应的计算资源以及对上述指定核心的占用,并通过TCP协议向外界设备发送本次测试失败原因。
步骤514,本次测试完成。
步骤515,接着上述步骤508,所述外界设备通过TCP协议接收所述守护进程发送的心跳信息,并判断是否在预定的时间内未接收到该心跳信息,如果在预定的时间内未接收到心跳信息,则进入步骤516;否则重复执行本步骤。
在本步骤中,外界设备根据上一次接收到心跳信息的时间开始,连续预定的时间内都没有接收到心跳信息,并且又未收到测试完成或者测试失败原因等情况下,则确定所述嵌入式系统宕机,例如,心跳定时器的时间间隔为5秒,则连续3个心跳信号,也就是连续15秒,均未接收到心跳信息,则认为嵌入式系统宕机。
步骤516,所述外界设备向测试人员发起声、光、电等提示信息,通知测试人员嵌入式系统宕机。
通过本文方法和装置的上述实施例,可以通过守护进程自动的完成嵌入式系统的程序测试,避免人为参与过多而造成的测试过程复杂、时间成本高等问题;并且通过心跳信息可以实时的使得外界上位机获知嵌入式系统的运行情况,是否已经宕机,令测试人员可以及时发现测试中的问题;通过指定守护进程的运行核心,可以提高对程序测试的准确性;通过将守护进程指定到待测试程序运行的工作核心以外的核心产生心跳定义及向外界设备发送心跳信息,可以自动的配置运行守护进程的核心,从而可以进一步提高程序测试的准确性,并且提高测试的效率。
本文实施例还提供了一种嵌入式系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
随嵌入式操作系统的启动而启动守护进程,并所述守护进程解析测试配置文件。
所述守护进程根据所述测试配置文件获取待测试程序文件,并启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息。
所述守护进程触发所述待测试程序文件运行从而进行测试,并根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
本文实施例提供的计算机设备还可以实现如图2所示实施例的所有方法。
对应于图2、图5中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图2、图5所示实施例的所有方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
Claims (10)
1.一种嵌入式系统程序测试方法,其特征在于,
随嵌入式操作系统的启动而启动守护进程,并所述守护进程解析测试配置文件;
所述守护进程根据所述测试配置文件获取待测试程序文件,并启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息;
所述守护进程触发所述待测试程序文件运行从而进行测试,并根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
2.根据权利要求1所述的方法,其特征在于,所述随嵌入式操作系统的启动而启动守护进程中进一步包括,
所述守护进程运行于嵌入式系统多核微处理器中指定的核心上。
3.根据权利要求2所述的方法,其特征在于,解析测试配置文件进一步包括,所述守护进程接收外界设备传送过来的测试配置文件,根据预先定义的数据格式获取所述测试配置文件中的待测试程序信息、测试结果配置信息。
4.根据权利要求2所述的方法,其特征在于,所述守护进程启动心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息中进一步包括,
所述守护进程获取所述待测试程序文件中所述待测试程序运行所在的工作核心;
在所述工作核心以外的核心上运行所述心跳定时器,根据所述心跳定时器定时向外界设备输出心跳信息。
5.根据权利要求2所述的方法,其特征在于,在所述根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置中进一步包括,
所述守护进程通过文件传输协议将所述待测试程序文件的测试结果上传到所述指定位置,并通过传输控制协议TCP通知外界设备上传结果。
6.根据权利要求2所述的方法,其特征在于,所述嵌入式系统程序测试方法中还包括,
所述外界设备在预定的时间中未接收到所述心跳信息,则确定程序测试失败。
7.一种嵌入式系统程序测试装置,其特征在于包括,
启动单元,用于在嵌入式操作系统启动时启动守护进程;
解析单元,用于解析测试配置文件;
获取单元,用于根据所述测试配置文件获取待测试程序文件;
心跳定时器,用于间隔预定的时间产生心跳信息;
心跳单元,用于根据所述心跳定时器定时向外界设备输出心跳信息;
测试单元,用于触发所述待测试程序文件运行从而进行测试;
测试结果单元,用于根据所述测试配置文件将所述待测试程序文件的测试结果存储到指定位置。
8.根据权利要求7所述的装置,其特征在于,所述启动单元进一步用于,在嵌入式系统多核微处理器中指定的核心上运行所述守护进程。
9.根据权利要求8所述的装置,其特征在于,还包括核心调整单元,用于获取所述待测试程序文件中所述待测试程序运行所在的工作核心;在所述工作核心以外的核心上运行所述心跳定时器以及心跳单元。
10.根据权利要求8所述的装置,其特征在于,所述外界设备还包括心跳信息接收单元,用于接收所述心跳信息,若在预定的时间中未接收到所述心跳信息,则输出程序测试失败信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981938.1A CN112328467B (zh) | 2020-09-17 | 2020-09-17 | 一种嵌入式系统程序测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981938.1A CN112328467B (zh) | 2020-09-17 | 2020-09-17 | 一种嵌入式系统程序测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328467A true CN112328467A (zh) | 2021-02-05 |
CN112328467B CN112328467B (zh) | 2022-06-28 |
Family
ID=74303242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010981938.1A Active CN112328467B (zh) | 2020-09-17 | 2020-09-17 | 一种嵌入式系统程序测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328467B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535554A (zh) * | 2021-07-12 | 2021-10-22 | 青岛中科英泰商用系统股份有限公司 | 一种Android系统设备的自动测试系统及其方法 |
CN114492861A (zh) * | 2021-12-31 | 2022-05-13 | 北京航天测控技术有限公司 | 一种测试数据的采集和解析方法 |
CN115166483A (zh) * | 2022-07-01 | 2022-10-11 | 广州创龙电子科技有限公司 | 邮票孔核心板自动化测试方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6249893B1 (en) * | 1998-10-30 | 2001-06-19 | Advantest Corp. | Method and structure for testing embedded cores based system-on-a-chip |
CN102880535A (zh) * | 2012-07-24 | 2013-01-16 | 北京播思软件技术有限公司 | 一种用于移动设备的无线自动化测试装置及方法 |
CN105718807A (zh) * | 2016-01-26 | 2016-06-29 | 东北大学 | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 |
CN107122306A (zh) * | 2017-05-15 | 2017-09-01 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108874677A (zh) * | 2018-06-27 | 2018-11-23 | 万达百汇科技(深圳)有限公司 | 一种安卓终端及其测试方法和系统 |
CN110188028A (zh) * | 2018-09-03 | 2019-08-30 | 西安奥卡云数据科技有限公司 | 一种计算机系统的测试方法 |
CN110908859A (zh) * | 2019-10-17 | 2020-03-24 | 平安科技(深圳)有限公司 | 应用服务处理方法、装置、终端及存储介质 |
CN111382048A (zh) * | 2018-12-28 | 2020-07-07 | 北京奇虎科技有限公司 | 真机测试平台上移动设备的管理方法和装置 |
-
2020
- 2020-09-17 CN CN202010981938.1A patent/CN112328467B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6249893B1 (en) * | 1998-10-30 | 2001-06-19 | Advantest Corp. | Method and structure for testing embedded cores based system-on-a-chip |
CN102880535A (zh) * | 2012-07-24 | 2013-01-16 | 北京播思软件技术有限公司 | 一种用于移动设备的无线自动化测试装置及方法 |
CN105718807A (zh) * | 2016-01-26 | 2016-06-29 | 东北大学 | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 |
CN107122306A (zh) * | 2017-05-15 | 2017-09-01 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108874677A (zh) * | 2018-06-27 | 2018-11-23 | 万达百汇科技(深圳)有限公司 | 一种安卓终端及其测试方法和系统 |
CN110188028A (zh) * | 2018-09-03 | 2019-08-30 | 西安奥卡云数据科技有限公司 | 一种计算机系统的测试方法 |
CN111382048A (zh) * | 2018-12-28 | 2020-07-07 | 北京奇虎科技有限公司 | 真机测试平台上移动设备的管理方法和装置 |
CN110908859A (zh) * | 2019-10-17 | 2020-03-24 | 平安科技(深圳)有限公司 | 应用服务处理方法、装置、终端及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535554A (zh) * | 2021-07-12 | 2021-10-22 | 青岛中科英泰商用系统股份有限公司 | 一种Android系统设备的自动测试系统及其方法 |
CN113535554B (zh) * | 2021-07-12 | 2024-03-12 | 青岛中科英泰商用系统股份有限公司 | 一种Android系统设备的自动测试系统及其方法 |
CN114492861A (zh) * | 2021-12-31 | 2022-05-13 | 北京航天测控技术有限公司 | 一种测试数据的采集和解析方法 |
CN115166483A (zh) * | 2022-07-01 | 2022-10-11 | 广州创龙电子科技有限公司 | 邮票孔核心板自动化测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112328467B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112328467B (zh) | 一种嵌入式系统程序测试方法及装置 | |
CN110716126A (zh) | 芯片老化测试系统、方法及装置 | |
US9984244B2 (en) | Controller, information processing apparatus, and recording medium | |
CN109254783A (zh) | 一种服务器系统安装方法、装置、设备及可读存储介质 | |
CN111341090B (zh) | 蓝牙遥控器压测方法、控制设备及计算机可读存储介质 | |
CN112231228B (zh) | 一种固件升级测试方法、装置、平台、设备及存储介质 | |
CN115827111B (zh) | 服务器启动项的调整方法和装置、存储介质及电子装置 | |
CN109582324B (zh) | 一种ic烧录方法及板卡 | |
CN108874596B (zh) | 服务器稳定性测试方法和服务器 | |
CN117909148A (zh) | 测试方法及被测试板 | |
CN107870840B (zh) | 基于ipmi的服务器多个测试指令自动执行方法 | |
CN116074228B (zh) | 网卡测试方法、装置、存储介质及电子设备 | |
CN110874293B (zh) | 热插拔测试装置 | |
CN115599191B (zh) | 智能网卡的上电方法及上电装置 | |
CN113495817A (zh) | 功耗测试方法、装置、服务器及存储介质 | |
CN116087752A (zh) | 一种芯片测试方法、系统、装置及介质 | |
CN115934446A (zh) | 一种自检方法、服务器、设备和存储介质 | |
CN115794525A (zh) | 一种bmc压力测试方法、装置、设备及存储介质 | |
CN115437865A (zh) | 一种硬盘异常掉电测试方法、装置、设备及介质 | |
CN118260131B (zh) | 扩展模块运行性能的测试方法及装置 | |
JP4208494B2 (ja) | ネットワークサーバへの負荷テストシステム | |
CN117311769B (zh) | 服务器日志生成方法和装置、存储介质及电子设备 | |
CN109800167B (zh) | 测试方法、测试客户端以及测试系统 | |
CN114328044B (zh) | 一种AIC+box拓扑的测试方法、装置和系统 | |
CN109634906B (zh) | 一种ic通信系统和方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |