用于嵌入式系统测试的系统、方法、设备以及介质技术方案

技术编号:31585214 阅读:101 留言:0更新日期:2021-12-25 11:30
本公开提供了一种测试系统,包括:测试控制模块,用于:提供编码后的固件代码,所述编码后的固件代码包括在测试期间与嵌入式系统中发生的一个或多个事件相对应的编码信息;以及生成系统测试日志,所述系统测试日志包括在所述测试期间与所述测试系统中发生的一个或多个事件相对应的第一时间信息;以及日志处理模块,用于:接收所述系统测试日志;接收来自所述嵌入式系统的固件日志,所述固件日志包括与所述嵌入式系统中发生的所述一个或多个事件相对应的第二时间信息以及所述编码信息;将所述编码信息转换为相应的字符信息;以及基于所述第一时间信息、所述第二时间信息以及所述字符信息,生成日志报告。生成日志报告。生成日志报告。

【技术实现步骤摘要】
用于嵌入式系统测试的系统、方法、设备以及介质


[0001]概括地说,本公开涉及嵌入式系统测试,具体地说,本公开涉及标准化的嵌入式系统测试框架。

技术介绍

[0002]嵌入式系统是一种服务于特定应用的专用计算机系统,其具有定制化的软硬件模块。由于使用场景的限制,嵌入式系统一般对功能、性能、可靠性、成本、尺寸、功耗等指标有严格的要求。因此,受限于嵌入式系统有限的计算和存储资源,如何高效地对嵌入式系统进行测试一直是行业难点和痛点。

技术实现思路

[0003]按照本公开的一方面,提供一种测试系统,其包括:测试控制模块,用于:提供编码后的固件代码,所述编码后的固件代码包括在测试期间与嵌入式系统中发生的一个或多个事件相对应的编码信息;以及生成系统测试日志,所述系统测试日志包括在所述测试期间与所述测试系统中发生的一个或多个事件相对应的第一时间信息;以及日志处理模块,用于:接收所述系统测试日志;接收来自所述嵌入式系统的固件日志,所述固件日志包括与所述嵌入式系统中发生的所述一个或多个事件相对应的第二时间信息以及所述编码信息;将所述编码信息转换为相应的字符信息;以及基于所述第一时间信息、所述第二时间信息以及所述字符信息,生成日志报告。
[0004]按照本公开的又一方面,提供一种测试方法,其包括:提供编码后的固件代码,所述编码后的固件代码包括在测试期间与嵌入式系统中发生的一个或多个事件相对应的编码信息;生成系统测试日志,所述系统测试日志包括在所述测试期间与测试系统中发生的一个或多个事件相对应的第一时间信息;接收来自所述嵌入式系统的固件日志,所述固件日志包括与所述嵌入式系统中发生的所述一个或多个事件相对应的第二时间信息以及所述编码信息;将所述编码信息转换为相应的字符信息;以及基于所述第一时间信息、所述第二时间信息以及所述字符信息,生成日志报告。
[0005]按照本公开的还一方面,提供一种测试设备,其包括:存储指令的存储器;以及耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据本公开所述的方法。
[0006]按照本公开的再一方面,提供一种具有指令的计算机可读介质,所述指令在被处理器执行时,使所述处理器执行根据本公开所述的方法。
[0007]本公开的技术方案能够实现一种标准化的嵌入式系统测试方法和框架。根据本公开的技术方案,在对嵌入式系统进行测试时,既能节省嵌入式系统的存储器空间,又能主动分析测试用例和固件代码的关联性,从而自动推断测试代码的命中率和固件代码的代码覆盖率,提高了嵌入式系统测试的效率。
附图说明
[0008]以下附图仅是根据本公开的各实施例的出于说明目的的示例,并且不旨在限制本公开的范围。
[0009]图1示出了根据本公开一实施例的用于嵌入式系统的固件代码。
[0010]图2示出了根据本公开一实施例的嵌入式系统测试框架。
[0011]图3示出了根据本公开一实施例的嵌入式系统测试方法的流程图。
[0012]图4示出了根据本公开一实施例的用于进行嵌入式系统测试的设备。
具体实施方式
[0013]下面结合附图对本公开实施例提供的方法和系统进行详细说明。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0014]在测试嵌入式系统时,可以采用C语言测试框架。由于C语言测试框架往往需要较大的存储器运行空间,对于一些存储器资源受限的嵌入式系统而言,该方法较难实现。另一种对嵌入式系统进行测试的方法是采用软硬件仿真平台,该仿真平台一般包括仿真器和模拟器,可以对嵌入式系统的组件进行模拟仿真,从而离线测试嵌入式系统。但是,软硬件仿真平台本身需要持续投入时间和金钱来进行搭建,同时也不可避免地存在漏洞,需要额外的维护成本,许多企业难以承担相应的成本。在实际工作中还可以采用开发测试用例和人工分析嵌入式系统的日志的方法来进行测试。这种方法需要大量占用嵌入式系统的固件代码空间并且会降低系统性能,同时,对日志的人工分析需要开发工程师和测试工程师的密切协作,工作量较大并且标准难以统一。
[0015]图1示出了根据本公开一实施例的用于嵌入式系统的固件代码100。嵌入式系统基于固件代码100进行操作,例如,一些嵌入式存储解决方案(例如UFS,eMMC)可以运行固件代码100。固件代码100包括由嵌入式系统运行的实时操作系统和应用程序的代码,用于实现嵌入式系统的设计功能。固件代码100可以以文件的形式存储在嵌入式系统之外,并且在需要对嵌入式系统的固件进行初始化或更新时传输至嵌入式系统的非易失性存储器中。
[0016]固件代码100包含多个代码块110a,110b,

,110n。在一个实施例中,为了进行测试,可以对固件代码100进行“插桩”,即在一个或多个代码块110a,110b,

,110n中插入测试桩函数120a,

,120n。测试桩函数是用于在测试过程中进行信息采集的代码段,测试桩函数能够在保证被测代码原有逻辑完整性的基础上,随着被测代码一起被执行,同时输出被测代码运行的特征数据。测试桩函数120a,

,120n中可以包含字符信息,例如用于记录日志的字符串。字符信息可以被用于标识测试桩函数120a,

,120n。在一个实施例中,当嵌入式系统运行到某个测试桩函数时,可以根据该测试桩函数的指示,在固件日志中输出相应的字符信息,以供测试人员或测试设备进行分析。通过对这些数据的分析,可以获得固件代码100运行的控制流和数据流信息,进而得到例如固件代码100的代码覆盖率等动态信息。
[0017]应当理解的是,固件代码100中的每个代码块110a,110b,

,110n可以包括一个或多个测试桩函数120a,

,120n,或者不包括测试桩函数。
[0018]图2示出了根据本公开一实施例的嵌入式系统测试框架,其中,测试系统200是用于对嵌入式系统280进行测试的系统。测试系统200可以是单机系统,其可以具有x86、RISC或者ARM等计算机架构,并且可以运行Windows、Unix、Linux、Android等操作系统。测试系统200通过例如串口或者USB接口与嵌入式系统280进行通信,以发送测试控制命令并且接收测试响应等数据。
[0019]在一个实施例中,测试系统200可以包括字典模块210、编码模块220、测试控制模块230、解码模块250、日志处理模块260以及测试分析模块270。这些模块虽然在图中被示出为集成于测试系统200中,但是测试系统200可以仅包括部分模块,或者一个或多个模块也可以位于与测试系统200通信地连接的其他设备或云端,在这种情况下,用于对嵌入式系统280进行测试的系统可以具有分布式的架构。在一些情况下,该分布式的架构能够提供本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种测试系统,包括:测试控制模块,用于:提供编码后的固件代码,所述编码后的固件代码包括在测试期间与嵌入式系统中发生的一个或多个事件相对应的编码信息;以及生成系统测试日志,所述系统测试日志包括在所述测试期间与所述测试系统中发生的一个或多个事件相对应的第一时间信息;以及日志处理模块,用于:接收所述系统测试日志;接收来自所述嵌入式系统的固件日志,所述固件日志包括与所述嵌入式系统中发生的所述一个或多个事件相对应的第二时间信息以及所述编码信息;将所述编码信息转换为相应的字符信息;以及基于所述第一时间信息、所述第二时间信息以及所述字符信息,生成日志报告。2.一种测试方法,包括:提供编码后的固件代码,所述编码后的固件代码包括在测试期间与嵌入式系统中发生的一个或多个事件相对应的编码信息;生成系统测试日志,所述系统测试日志包括在所述测试期间与测试系统中发生的一个或多个事件相对应的第一时间信息;接收来自所述嵌入式系统的固件日志,所述固件日志包括与所述嵌入式系统中发生的所述一个或多个事件相对应的第二时间信息以及所述编码信息;将所述编码信息转换为相应的字符信息;以及基于所述第一时间信息、所述第二时间信息以及所述字符信息,生成日志报告。3.根据权利要求2所述的方法,包括:对包含所述字符信息的未编码的固件代码进行编码,以生成所述编码后的固件代码;以及将所述编码后的固件代码传输到所述嵌入式系统中。4.根据权利要求3所述的方法,包括:将所述字符信息转换为所述编码信息并且将所述编码信息与其相应的字符信息相关联地存储。5.根据权利要求4所述的方法,...

【专利技术属性】
技术研发人员:刘东坡王雷陆文艳
申请(专利权)人:长江存储科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1