CN114510421A - 一种测试方法、装置、芯片及模组设备 - Google Patents

一种测试方法、装置、芯片及模组设备 Download PDF

Info

Publication number
CN114510421A
CN114510421A CN202210109157.2A CN202210109157A CN114510421A CN 114510421 A CN114510421 A CN 114510421A CN 202210109157 A CN202210109157 A CN 202210109157A CN 114510421 A CN114510421 A CN 114510421A
Authority
CN
China
Prior art keywords
code
test
module
attribute
processing mode
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.)
Pending
Application number
CN202210109157.2A
Other languages
English (en)
Inventor
李宁
王鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisoc Chongqing Technology Co Ltd
Original Assignee
Unisoc Chongqing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Unisoc Chongqing Technology Co Ltd filed Critical Unisoc Chongqing Technology Co Ltd
Priority to CN202210109157.2A priority Critical patent/CN114510421A/zh
Publication of CN114510421A publication Critical patent/CN114510421A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种测试方法、装置、芯片及模组设备,该方法包括:获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式;基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果;输出测试结果。采用本申请所描述的方法,有利于提高开发人员的工作效率。

Description

一种测试方法、装置、芯片及模组设备
技术领域
本发明涉及通信领域,尤其涉及一种测试方法、装置、芯片及模组设备。
背景技术
测试人员在开发通信***软件的多个测试例时,每个测试例都需要编写不同的测试例配置文件,或者针对某些固定的测试步骤编写通用的代码。大量重复性的工作使得开发人员的工作量较大,工作效率较低。
发明内容
本申请提供一种测试方法、装置、芯片及模组设备,有利于提高开发人员的工作效率。
第一方面,本申请提供一种测试方法,该方法包括:获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式;基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果;输出测试结果。
在一种可能的实现方式中,获取测试文件对应的元素信息和属性信息,具体实现方式为:确定测试文件中的元素和属性;对元素和属性进行预处理,得到元素信息和属性信息,元素信息的数据格式和属性信息的数据格式均为预设格式。
在一种可能的实现方式中,基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果,具体实现方式可以为:基于元素信息和元素的处理方式、属性信息和属性的处理方式,调用外部接口模拟模块和/或硬件模拟模块测试被测代码,得到测试结果;外部接口模拟模块用于在第一被测代码在调用第二被测代码时反馈第二被测代码对应的预设输出值,第一被测代码和第二被测代码为组成同一***代码的不同模块的代码,硬件模拟模块用于提供被测代码测试时所需的硬件环境。
在一种可能实现方式中,该方法还包括:基于测试结果和预设的期望结果进行对比,确定比对结果;输出比对结果。
在一种可能的实现方式中,该方法还包括:调用代码覆盖模块监控第一被测代码中各个代码执行情况;输出被测代码的覆盖率报告,覆盖率报告用于指示第一被测代码中的各个代码是否被执行。
在一种可能的实现方式中,测试文件的格式为XML文件格式。
在一种可能的实现方式中,基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,具体实现方式为:基于测试代码、元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,测试代码用于提供第一被测代码测试时所需的多个线程优先级机制。
在一种可能的实现方式中,第一被测代码对应有控制代码,控制代码用于确定第一被测代码所需的消息数据和消息数据对应的交互顺序,测试文件中包括消息数据和消息数据对应的交互顺序;基于元素和元素的处理方式、属性和属性的处理方式测试第一被测代码,具体实现方式为:基于元素信息和元素的处理方式、属性信息和属性的处理方式、消息数据和消息数据对应的交互顺序测试第一被测代码,消息数据为第一被测代码模拟的通信***中传输的数据。
第二方面,本申请提供一种测试装置,该测试装置包括:获取单元,用于获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式;测试单元,用于基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果;输出单元,用于输出测试结果。
第三方面,本申请提供一种芯片,包括处理器和通信接口,处理器被配置用于使芯片执行如第一方面所描述的方法及其任意一种可能的实现方式。
第四方面,本申请提供一种模组设备,模组设备包括通信模组、电源模组、存储模组以及芯片,其中:电源模组用于为模组设备提供电能;存储模组用于存储数据和指令;通信模组用于进行模组设备内部通信,或者用于模组设备与外部设备进行通信;芯片用于执行如第一方面所描述的方法及其任意一种可能的实现方式。
第五方面,本申请提供一种测试装置,该测试装置包括存储器和处理器,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,使测试装置执行如第一方面所描述的方法及其任意一种可能的实现方式,
第六方面,本申请提供一种计算机可读存储介质,其特征在于,计算机存储介质中存储有计算机可读指令,当计算机可读指令在测试装置上运行时,使得测试装置执行如第一方面所描述的方法及其任意一种可能的实现方式。
第七方面,本申请提供一种计算机程序或计算机程序产品,包括代码或指令,当代码或指令在计算机上运行时,使得计算机执行如第一方面或其任一种可能的实现方式中的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供测试例配置文件和测试例脚本文件的示意图;
图2是本申请实施例提供的一种测试方法的流程示意图;
图3a是本申请实施例提供的基带通信***软件结构的示意图;
图3b是本申请实施例提供的测试协议栈软件的示意图;
图4是本申请实施例提供的一种测试平台的***框架示意图
图5是本申请实施例提供的一种测试装置的结构示意图;
图6是本申请实施例提供的一种测试装置的结构示意图;
图7是本申请实施例提供的一种模组设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“该”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包括一个或多个所列出项目的任何或所有可能组合。
需要说明的是,本申请的说明书和权利要求书中及上述附图中的属于“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述以外的顺序实施。此外,术语“包括”及其任何变形,意图在于覆盖不排他的包括,例如,包括了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地理解本申请实施例,下面首先对本申请实施例涉及的背景进行介绍。
软件测试是指使用人工或者自动的手段来运行或测定某个软件产品***的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。
通信***软件测试可以用于模拟测试通信***,例如,模拟两个设备基于预设的通信协议进行数据交互,从而测试预设的通信协议是否可以提高数据之间的传输效率等。通信***软件测试涉及到测试平台开发和测试例构建两个方面。一般来说,测试平台的好坏会对测试效果有较大的影响,好的测试平台能够降低测试例构建的复杂度和灵活度。
测试例一般由两种类型的文件组成:测试例配置文件和测试例脚本文件。测试例配置文件中配置测试例执行过程中需要使用到的各类消息。测试例脚本文件根据测试例设计需求对各条消息进行处理(例如,接收、发送、比较)。由于每个测试例设计的过程都可能存在不一样的需求,如图1所示,测试例开发人员在开发每个测试例时都要开发与其对应的测试例配置文件和测试例脚本文件,由于每个测试例都需要编写不同的测试例配置文件,或者针对某些固定的测试步骤编写通用的代码,开发人员的工作量较大。
为了能够降低开发人员的工作量,本发明实施例提出了一种测试方法。该方法包括:获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式;基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果;输出测试结果。基于该方法,重复或者通用测试步骤可以通过元素和属性去定义对应的处理方式,开发人员仅需在测试文件中配置好所需的元素和属性,电子设备会基于配置好的元素和属性测试第一被测代码,从而降低开发人员的工作量。
该方法可以应用在电子设备中,该电子设备具备数据处理功能,能够对获取到的数据进行处理。该电子设备可以是手机(mobile phone)、个人计算机(Personal Computer,PC)、工业控制(industrial control)中的无线终端、车载终端设备、无人驾驶(selfdriving)中的无线终端、智能电网(smart grid)中的无线终端、可穿戴终端设备等等。本申请的实施例对应用场景不做限定。终端有时也可以称为终端设备、用户设备(userequipment,UE)、接入终端设备、车载终端、工业控制终端、UE单元、UE站、移动站、移动台、远方站、远程终端设备、移动设备、UE终端设备、终端设备、无线通信设备、UE代理或UE装置等。电子设备还可以是服务器,具体的,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例中,用于实现电子设备的功能的装置可以是电子设备,也可以是能够支持电子设备实现该功能的装置,例如芯片***或可实现电子设备功能的组合器件、部件,该装置可以被安装在电子设备中。
为了能够提高软件测试开发人员的工作效率,本申请提供了一种测试方法、装置、芯片及模组设备。下面进一步对本申请实施例提供的测试方法、装置、芯片及模组设备进行详细描述。
图2是本申请实施例提供的一种测试方法的流程示意图。如图2所示,该测试方法包括如下步骤201~步骤203。图2所示的方法执行主体可以为电子设备。或者,图2所示的方法执行主体可以为电子设备中的芯片。图2以电子设备为方法的执行主体为例进行说明。
201、电子设备获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式。
本申请实施例中,测试文件可以包括一个或者多个测试例配置文件,即在本申请所提出的方法可以一次性处理多个测试例。每个测试配置文件中包括了一个或者多个元素,以及一个或者多个属性。
其中,元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。元素可包括其他元素、文本或者两者的混合物。元素也可以拥有一个或者多个属性,属性用于提供关于元素的额外(附加)信息。
可选地,该测试文件的格式可以为可扩展标记语言(Extensible MarkupLanguage,XML)格式。
以下列XML格式的文档代码为例:
Figure BDA0003494509560000061
在上述文档代码中包括<bookstore>元素、<book>元素和<title>元素。其中,在该文档代码中,只有<book>元素还包括属性(category="CHILDREN"),其它元素均不包括属性。
需要说明的是,开发人员针对固定的测试步骤编写通用的代码,每个测试例对应的配置文件中都会包含这些通用的代码,非常冗余。基于本申请实施例所描述的方法,元素和属性分别对应的处理方式可以是在通信软件测试中重复或者通用测试步骤,开发人员配置元素和属性只需要输入简单的符号标签,无需输入一大段代码。在测试文件中配置好所需的元素和属性后,电子设备会基于配置好的元素和属性测试第一被测代码,从而降低开发人员的工作量,提高测试效率。
在一种可能的实现方式中,步骤201的具体实现方式可以如下:电子设备确定测试文件中的元素和属性;电子设备对元素和属性进行预处理,得到元素信息和属性信息,元素信息的数据格式和属性信息的数据格式均为预设格式。其中,预处理指将测试文件中的元素和属性对应的数据格式转化为预设格式,预设格式的数据能够更适配于电子设备的处理的方式,从而可以提高测试效率。
202、电子设备基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果。
在一种可能的实现方式中,步骤202的具体实现方式可以如下:电子设备基于元素信息和元素的处理方式、属性信息和属性的处理方式,调用外部接口模拟模块和/或硬件模拟模块测试被测代码,得到测试结果;外部接口模拟模块用于在第一被测代码在调用第二被测代码时反馈第二被测代码对应的预设输出值,第一被测代码和第二被测代码为组成同一***代码的不同模块的代码,硬件模拟模块用于提供被测代码测试时所需的硬件环境。
需要说明的是,在多小组对一***代码进行并行开发的过程中,各个小组的开发进度各不相同,如果要进行完整的模块集成测试,就需要等所有小组的开发都完成后,才能进行测试,这种做法会导致整个***的测试完成时间推迟,延长研发的进度。
示例性的,假设第一小组的第一被测代码撰写完成,但是第二小组的第二被测代码还未撰写完成。由于第一被测代码运行,需要调用第二被测代码得到相应输出值,因此无法测试第一被测代码。但若采用外部接口模拟模块第二被测代码反馈的输出值,可以在第二被测代码未撰写完成的情况下,测试第一被测代码。基于该方法,可以有效提高开发人员的工作效率。
又示例性的,如图3a所示,通信***软件通常由多个子***构成,以手机终端基带通信***软件为例,假设第一被测代码为协议软件代码,第二被测代码为物理层软件的代码,物理层软件代码会受上层协议软件的调度控制,测试物理层软件代码需要协议栈软件代码开发完成后才能进行测试。同时测试协议栈软件代码,也需要物理层软件反馈必要的信息,以保证后续的代码流程能够正确执行。如图3b所示,若选择采用编写模拟物理层软件代码去测试协议层软件代码,该模拟物理层软件代码在一定程度上对开发人员提出了更高的要求,也增加了开发人员的工作量,同时这些编写的模拟代码本身又可能引入一些缺陷,和真实的软件开发的代码存在重叠。采用本申请所提出的方法,通过外部接口模拟模块反馈的输出值,能够使被测代码与所有外部接口进行解耦,可以在协议栈软件开发完成之前测试物理层软件代码,或者在物理层软件开发完成之前测试协议栈软件代码,有效提高开发人员的工作效率。
还需要说明的是,在通信***开发过程中,常常需要通过硬件设备实现被测代码中的部分操作。但通常情况下,硬件设备造价昂贵,开发人员不具备采用硬件设备进行测试的条件。而硬件模拟模块可以提供被测代码测试时所需的硬件环境。通常情况下,需要模拟的硬件行为包括:硬件运行一段时间后产生中断的行为、硬件运行后输出结果的行为和配置硬件输入参数的行为。基于该实现方式,可以帮助测试人员降低成本开销。
在一种可能的实现方式中,步骤202的具体实现方式可以如下:电子设备基于测试代码、元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,测试代码用于提供第一被测代码测试时所需的多个线程优先级机制。
需要说明的是,通信***软件是通常是在视窗(Windows)环境下进行测试,但由于Windows环境下所提供的线程优先级是有限的,在多任务通信***中,Windows环境下所提供的线程优先级无法真实模拟所有任务的真实优先级,这将会影响测试效果。示例性的,假设第一被测代码包括N个任务,N个任务对应N个优先级,第一被测代码运行时需要按照各个任务的优先级顺序进行,若测试平台只能提供M个优先级机制,M小于N,则无法模拟第一被测代码的实际应用效果,测试结果将受到一定的影响。而基于本申请所提出的方法,在测试第一被测代码时,调用测试代码进行测试,该测试代码所能提供的线程优先级大于第一被测代码所需的多个线程的优先级,基于该方法,可以提高测试的准确性。可选地,该测试代码可以为迷你实时操作(free realtimeoperatingsystem,FreeRTOS)***所提供的基于Windows的模拟代码。
在一种可能的实现方式中,步骤202的具体实现方式可以为:电子设备基于元素信息和元素的处理方式、属性信息和属性的处理方式、消息数据和消息数据对应的交互顺序测试第一被测代码。第一被测代码对应有控制代码,控制代码用于确定第一被测代码所需的消息数据和消息数据对应的交互顺序,测试文件中包括消息数据和消息数据对应的交互顺序,消息数据为第一被测代码模拟的通信***中传输的数据。
需要说明的是,通信***软件测试可以用于模拟测试通信***,例如,模拟两个设备基于预设的通信协议进行数据交互,从而测试预设的通信协议是否可以提高数据之间的传输效率等。其中,消息数据为两个设备之间传输的数据,消息数据对应的交互顺序为该消息数据传输的先后次序。示例性的,第一被测代码模拟了设备A和设备B基于预设的通信协议进行数据交互,例如设备A向设备B发送消息数据1;设备B收到消息数据1后,将会向设备A发送的消息数据2;设备A接收到消息数据2后,再向设备B发送消息数据3。消息数据对应的交互顺序可以帮助设备A和设备B确定什么时候发送消息数据。第一被测代码在运行的过程中,需要基于控制代码确定消息数据,和消息数据传输的先后次序,然而由于各个小组的开发进度各不相同,可能存在控制代码还未撰写完成的情况。因此,可以预先将消息数据,以及设定的消息数据对应的交互顺序存储在测试文件中,第一被测代码在运行的过程中无需通过控制代码确定消息数据,而是可以直接使用测试文件中的消息数据进行模拟,并确定消息数据对应的交互顺序。基于该方法,可以提高测试效率。
203、电子设备输出测试结果。
在一种可能的实现方式中,该方法还包括:电子设备基于测试结果和预设的期望结果进行对比,确定比对结果;电子设备输出比对结果。基于该实现方式,开发人员可以直观地确定本次测试的测试结果是否是预期的测试结果,从而确定是否需要调整被测代码或者再次进行测试,提高测试效率。
在一种可能的实现方式中,该方法还包括:电子设备调用代码覆盖模块监控第一被测代码中各个代码执行情况;电子设备输出被测代码的覆盖率报告,覆盖率报告用于指示第一被测代码中的各个代码是否被执行。示例性的,第一被测代码包括1000行代码,其中前100行代码是主干,第200行代码到第599行代码是第一个分支,第600行代码到第1000行代码是第二分支,当前的测试文件中包括的测试例使第一被测代码只执行了主干上的代码和第一个分支所对应的代码,即前599行代码,后续第600行代码到第1000行代码未执行,通过覆盖率报告可以直观体现出代码的执行情况,从而确定是否需要增加测试例再重新测试第一被测代码。基于该实现方式,有利于提高测试效率。
基于上述所描述的方法,本申请还提出了一个测试平台的***框架,电子设备可基于该测试平台的***框架实现本申请所提出的方法,如图4所示,该测试平台包括两个进程,一个是测试发送端进程,一个是测试接收端进程。通过划分两个进程的方式,可以使得测试平台的结构更加清晰,被测代码中不会过多的耦合测试代码,提高了代码的可维护性。
其中,测试发送端进程中包括:适配(Adapter)模块、测试例控制(CaseCtrl)模块、通用处理(Element Handle)模块、XML接口模块、追踪模块。测试接收端进程包括:代码集成(Code Integration)模块、外部接口模拟模块、硬件模拟模块、适配(Adapter)模块、追踪(Trace)模块、Windows实时操作***(RTOS-Win)模块。两个进程的适配模块通过测试框架(Test Framework)模块相连,除此以外,该平台还可以包括代码覆盖率(Code Coverage)模块。
其中,测试发送端进程是测试代码功能模块的集合,测试接收端进程是被测代码功能模块的集合。上述各个模块的具体功能如下:
测试例控制模块用于解析测试文件。该模块负责读取测试文件,调用XML接口模块确定测试文件中的元素和属性,并调用通用处理模块确定其对应的处理方式。基于该测试例控制模块,用户不需要再根据每个测试例设计的场景单独开发各个测试例对应的测试脚本文件,而是可以根据测试例场景的需求,在测试文件中对各个元素定义不同的属性即可,进而大幅度降低用户的开发工作量。
XML接口模块中包括XML文件中各类元素和属性,为测试例控制模块提供访问XML文件中各类元素和属性的方法。其中该XML可以通过引用各种开源XML文件来实现,例如tinyXML文件。
通用处理模块用于确定元素和属性对应的处理方式。其中,通用处理模块中预存有各个元素和属性对应的处理方式。
适配模块用于将元素和属性转化为元素信息和属性信息,元素信息和属性信息的格式为预设格式,预设格式的数据能够更适配于电子设备的处理的方式,从而可以提高测试效率。也即是说,该适配模块为该测试平台提供支撑功能。可选的,该适配模块还可以为测试平台提供底层的实时操作***的接口适配等功能。
测试框架模块为两个进程提供通信机制,使测试发送端进程和测试接收端进程能够进行数据传输。
代码集成模块中包括被测代码。
外部接口模拟模块用于模拟被测代码测试时反馈外部接口代码对应的预设输出值,第。如果在构建测试平台工程时外部接口模块已经准备就绪,则不需要该模块,可以直接集成外部接口的真实代码;否则,为了能够进行独立测试和开发,不受外部***开发进度的影响,需要构建该模块来模拟外部接口的行为,用户只需要简单模拟外部接口函数的输出即可,不需要模拟其内部的具体实现。该输出可以是在桩函数中固定的值,也可以通过消息灵活可配置。
硬件模拟模块用于提供被测代码测试时所需的硬件环境。对于通信***软件,常常需要对硬件进行操作,而在windows环境下,只能通过模拟的方式来实现硬件的行为。一般的,需要模拟的硬件行为包括:硬件运行一段时间后产生中断的行为、硬件运行后输出结果的行为和配置硬件输入参数的行为。
代码覆盖模块用于监控测试接收端进程中被测代码的执行情况,输出覆盖率报告,覆盖率报告指示被测代码中的各个代码是否被执行。
追踪模块用于为整个***提供跟踪信息打印和保存的功能,为用户提供代码缺陷调试手段。
Windows实时操作***模块用于在Windows环境下模拟嵌入式实时操作***的任务调度机制,包括任务调度,中断控制,定时器维护等功能,可以通过引用各种开源的实时操作***模拟模块来实现,例如FreeRTOS提供的Windows模拟框架。
测试发送端进程和测试接收端进程可以通过集成开发环境(integrateddevelopment environment,IDE)分别生成两个独立的可执行文件(测试接收端可执行文件和测试发送端可执行文件),用户可以通过这两个可执行文件使用该测试平台。除此以外,还可以通过可视化模块管理该测试平台的可视化界面,从而为用户提供更为直观的操作方式。
需要说明的是,在实际的应用场景中,测试平台可以包括更多或者更少的模块,用户可以按照实际的需求来配置对应的模块,本申请对此不作限制。
基于上述所描述的测试平台,下面通过一个完整的例子介绍该测试平台测试被测代码的执行过程。
步骤1:电子设备通过测试例控制模块调用XML接口模块解析测试文件,确定测试文件中的元素和属性,再调用通用处理模块确定元素对应的处理方式,和属性对应的处理方式。
步骤2:电子设备通过适配模块对元素和属性进行预处理,得到元素信息和属性信息,元素信息的数据格式和属性信息的数据格式均为预设格式。
步骤3:电子设备通过测试框架模块将元素信息和属性信息从测试发送端进程传输到测试接收端进程的适配模块。
步骤4:电子设备根据元素信息和属性信息对代码集成模块中的被测代码进行测试,在测试的过程中会调用外部接口模拟模块和硬件模块来模拟测试环境,同时电子设备调用代码覆盖模块监控被测代码的执行情况。
步骤5:在测试结束后,电子设备将测试结果传输回测试发送端进程,根据测试文件中预存的预设结果进行比对,输出比对结果,以及通过代码覆盖率模块输出代码覆盖率报告。
请参见图5,图5是本发明实施例提供的一种测试装置的结构示意图,该测试装置可以为电子设备或具有电子设备功能的装置(例如芯片)。具体的,如图5所示,测试装置500,可以包括:
获取单元501,用于获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式;测试单元502,用于基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果;输出单元503,用于输出测试结果。
在一种可能的实现方式中,获取单元501用于测试文件对应的元素信息和属性信息时,具体用于:确定测试文件中的元素和属性;对元素和属性进行预处理,得到元素信息和属性信息,元素信息的数据格式和属性信息的数据格式均为预设格式。
在一种可能的实现方式中,测试单元502基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果时,具体用于:基于元素信息和元素的处理方式、属性信息和属性的处理方式,调用外部接口模拟模块和/或硬件模拟模块测试被测代码,得到测试结果;外部接口模拟模块用于在第一被测代码在调用第二被测代码时反馈第二被测代码对应的预设输出值,第一被测代码和第二被测代码为组成同一***代码的不同模块的代码,硬件模拟模块用于提供被测代码测试时所需的硬件环境。
在一种可能的实现方式中,该测试装置还包括对比单元504,该对比单元504用于基于测试结果和预设的期望结果进行对比,确定比对结果;输出单元503,还用于输出比对结果。
在一种可能的实现方式中,该测试装置还包括监控单元505,该监控单元505用于调用代码覆盖模块监控第一被测代码中各个代码执行情况;该输出单元503,还用于输出被测代码的覆盖率报告,覆盖率报告用于指示第一被测代码中的各个代码是否被执行。
在一种可能的实现方式中,测试文件的格式为XML文件格式。
在一种可能的实现方式中,测试单元502基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码时,具体用于:基于测试代码、元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,测试代码用于提供第一被测代码测试时所需的多个线程优先级机制。
在一种可能的实现方式中,第一被测代码对应有控制代码,控制代码用于确定第一被测代码所需的消息数据和消息数据对应的交互顺序,测试文件中包括消息数据和消息数据对应的交互顺序,消息数据为第一被测代码模拟的通信***中传输的数据。测试单元502基于元素和元素的处理方式、属性和属性的处理方式测试第一被测代码时,具体用于:基于元素信息和元素的处理方式、属性信息和属性的处理方式、消息数据和消息数据对应的交互顺序测试第一被测代码。
本申请实施例还提供了一种芯片,该芯片可以执行前述方法实施例中电子设备的相关步骤。该芯片,包括处理器和通信接口,该处理器被配置用于使芯片执行如下操作:获取测试文件中对应的元素信息和属性信息,元素信息对应有元素的处理方式,属性信息对应有属性的处理方式;基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果;输出测试结果。
在一种可能的实现方式中,该处理器被配置用于使芯片测试文件对应的元素信息和属性信息时,执行如下操作:确定测试文件中的元素和属性;对元素和属性进行预处理,得到元素信息和属性信息,元素信息的数据格式和属性信息的数据格式均为预设格式。
在一种可能的实现方式中,该处理器被配置用于使芯片测试文件对应的元素信息和属性信息时,执行如下操作:基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,得到测试结果时,具体用于:基于元素信息和元素的处理方式、属性信息和属性的处理方式,调用外部接口模拟模块和/或硬件模拟模块测试被测代码,得到测试结果;外部接口模拟模块用于在第一被测代码在调用第二被测代码时反馈第二被测代码对应的预设输出值,第一被测代码和第二被测代码为组成同一***代码的不同模块的代码,硬件模拟模块用于提供被测代码测试时所需的硬件环境。
在一种可能的实现方式中,该处理器被配置用于使芯片执行如下操作:基于测试结果和预设的期望结果进行对比,确定比对结果;输出比对结果。
在一种可能的实现方式中,该处理器被配置用于使芯片执行如下操作:调用代码覆盖模块监控第一被测代码中各个代码执行情况;输出被测代码的覆盖率报告,覆盖率报告用于指示第一被测代码中的各个代码是否被执行。
在一种可能的实现方式中,测试文件的格式为XML文件格式。
在一种可能的实现方式中,该处理器被配置用于使芯片测试文件对应的元素信息和属性信息时,执行如下操作:基于元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码时,具体用于:基于测试代码、元素信息和元素的处理方式、属性信息和属性的处理方式测试第一被测代码,测试代码用于提供第一被测代码测试时所需的多个线程优先级机制。
在一种可能的实现方式中,第一被测代码对应有控制代码,控制代码用于确定第一被测代码所需的消息数据和消息数据对应的交互顺序,测试文件中包括消息数据和消息数据对应的交互顺序,消息数据为第一被测代码模拟的通信***中传输的数据;该处理器被配置用于使芯片测试文件对应的元素信息和属性信息时,执行如下操作:基于元素和元素的处理方式、属性和属性的处理方式测试第一被测代码时,具体用于:基于元素信息和元素的处理方式、属性信息和属性的处理方式、消息数据和消息数据对应的交互顺序测试第一被测代码。
在一种可能的实现方式中,上述芯片包括至少一个处理器、至少一个第一存储器和至少一个第二存储器;其中,前述至少一个第一存储器和前述至少一个处理器通过线路互联,前述第一存储器中存储有指令;前述至少一个第二存储器和前述至少一个处理器通过线路互联,前述第二存储器中存储前述方法实施例中需要存储的数据。
对于应用于或集成于芯片的各个装置、产品,其包括的各个模块可以都采用电路等硬件的方式实现,或者,至少部分模块可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块可以采用电路等硬件方式实现。
请参阅图6,图6是本发明实施例提供的一种测试装置的结构示意图。该直接通信装置600可以包括存储器601、处理器602。可选的,还包括通信接口603。存储器601、处理器602和通信接口603通过一条或多条通信总线连接。其中,通信接口603受处理器602的控制用于收发信息。
存储器601可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器601的一部分还可以包括非易失性随机存取存储器。
通信接口603用于接收或发送数据。
处理器602可以是中央处理单元(central processing unit,CPU),该处理器602还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,可选的,该处理器602也可以是任何常规的处理器等。其中:
存储器601,用于存储程序指令。
处理器602,用于调用存储器601中存储的程序指令。
处理器602调用存储器601中存储的程序指令,使该直接通信装置600执行上述方法实施例中电子设备所执行的方法。
如图7所示,图7是本申请实施例提供的一种模组设备的结构示意图。该模组设备700可以执行前述方法实施例中电子设备的相关步骤,该模组设备700包括:通信模组701、电源模组702、存储模组703以及芯片704。
其中,电源模组702用于为模组设备提供电能;存储模组703用于存储数据和指令;通信模组701用于进行模组设备内部通信,或者用于模组设备与外部设备进行通信;芯片704用于执行上述方法实施例中电子设备所执行的方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在处理器上运行时,上述方法实施例的方法流程得以实现。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,上述方法实施例的方法流程得以实现。
关于上述实施例中描述的各个装置、产品包括的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置、产品其包括的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包括的各个模块/单元可以都采用电路等硬件的方式实现,不同模块/单元可以位于芯片模组的同一件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包括的模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些操作可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请提供的各实施例的描述可以相互参照,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。为描述的方便和简洁,例如关于本申请实施例提供的各装置、设备的功能以及执行的操作可以参照本申请方法实施例的相关描述,各方法实施例之间、各装置实施例之间也可以互相参考、结合或引用。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (13)

1.一种测试方法,其特征在于,所述方法包括:
获取测试文件中对应的元素信息和属性信息,所述元素信息对应有元素的处理方式,所述属性信息对应有属性的处理方式;
基于所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式测试第一被测代码,得到测试结果;
输出所述测试结果。
2.根据权利要求1所述的方法,其特征在于,所述获取测试文件对应的元素信息和属性信息,包括:
确定所述测试文件中的元素和属性;
对所述元素和所述属性进行预处理,得到所述元素信息和所述属性信息,所述元素信息的数据格式和所述属性信息的数据格式均为预设格式。
3.根据权利要求1或2所述的方法,其特征在于,基于所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式测试第一被测代码,得到测试结果,包括:
基于所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式,调用外部接口模拟模块和/或硬件模拟模块测试被测代码,得到测试结果;
所述外部接口模拟模块用于在所述第一被测代码在调用第二被测代码时反馈所述第二被测代码对应的预设输出值,所述第一被测代码和所述第二被测代码为组成同一***代码的不同模块的代码,所述硬件模拟模块用于提供所述被测代码测试时所需的硬件环境。
4.根据权利要求1~3中任意一项所述的方法,其特征在于,所述方法还包括:
基于所述测试结果和预设的期望结果进行对比,确定比对结果;
输出所述比对结果。
5.根据权利要求1~4中任意一项所述的方法,其特征在于,所述方法还包括:
调用代码覆盖模块监控所述第一被测代码中各个代码执行情况;
输出所述被测代码的覆盖率报告,所述覆盖率报告用于指示所述第一被测代码中的各个代码是否被执行。
6.根据权利要求1~5中任意一项所述的方法,其特征在于,所述测试文件的格式为XML文件格式。
7.根据权利要求1~6中任意一项所述的方法,其特征在于,基于所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式测试第一被测代码,包括:
基于测试代码、所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式测试第一被测代码,所述测试代码用于提供所述第一被测代码测试时所需的多个线程优先级机制。
8.根据权利要求1~7中任意一项所述的方法,其特征在于,所述第一被测代码对应有控制代码,所述控制代码用于确定所述第一被测代码所需的消息数据和所述消息数据对应的交互顺序,所述测试文件中包括所述消息数据和所述消息数据对应的交互顺序,所述消息数据为所述第一被测代码模拟的通信***中传输的数据;
基于所述元素和所述元素的处理方式、所述属性和所述属性的处理方式测试第一被测代码,包括:
基于所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式、所述消息数据和所述消息数据对应的交互顺序测试第一被测代码。
9.一种测试装置,其特征在于,所述测试装置包括:
获取单元,用于获取测试文件中对应的元素信息和属性信息,所述元素信息对应有元素的处理方式,所述属性信息对应有属性的处理方式;
测试单元,用于基于所述元素信息和所述元素的处理方式、所述属性信息和所述属性的处理方式测试第一被测代码,得到测试结果;
输出单元,用于输出所述测试结果。
10.一种芯片,其特征在于,包括处理器和通信接口,所述处理器被配置用于使所述芯片执行如权利要求1~8中任一项所述的方法。
11.一种模组设备,其特征在于,所述模组设备包括通信模组、电源模组、存储模组以及芯片,其中:
所述电源模组用于为所述模组设备提供电能;
所述存储模组用于存储数据和指令;
所述通信模组用于进行模组设备内部通信,或者用于所述模组设备与外部设备进行通信;
所述芯片用于执行如权利要求1~8中任一项所述的方法。
12.一种测试装置,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,使所述测试装置执行如权利要求1~8中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有计算机可读指令,当所述计算机可读指令在测试装置上运行时,使得所述测试装置执行权利要求1~8中任一项所述的方法。
CN202210109157.2A 2022-01-28 2022-01-28 一种测试方法、装置、芯片及模组设备 Pending CN114510421A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210109157.2A CN114510421A (zh) 2022-01-28 2022-01-28 一种测试方法、装置、芯片及模组设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210109157.2A CN114510421A (zh) 2022-01-28 2022-01-28 一种测试方法、装置、芯片及模组设备

Publications (1)

Publication Number Publication Date
CN114510421A true CN114510421A (zh) 2022-05-17

Family

ID=81551671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210109157.2A Pending CN114510421A (zh) 2022-01-28 2022-01-28 一种测试方法、装置、芯片及模组设备

Country Status (1)

Country Link
CN (1) CN114510421A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037787A (zh) * 2022-06-09 2022-09-09 上海禾骋科技有限公司 一种测试汽车网络通信的方法、***和装置
CN116719684A (zh) * 2023-08-11 2023-09-08 中诚华隆计算机技术有限公司 一种3d封装的芯片测试***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037787A (zh) * 2022-06-09 2022-09-09 上海禾骋科技有限公司 一种测试汽车网络通信的方法、***和装置
CN116719684A (zh) * 2023-08-11 2023-09-08 中诚华隆计算机技术有限公司 一种3d封装的芯片测试***
CN116719684B (zh) * 2023-08-11 2023-10-20 中诚华隆计算机技术有限公司 一种3d封装的芯片测试***

Similar Documents

Publication Publication Date Title
CN105335293B (zh) 一种基于接口并行的自动化测试***和方法
CN112270149B (zh) 验证平台自动化集成方法、***及电子设备和存储介质
CN114510421A (zh) 一种测试方法、装置、芯片及模组设备
CN107608901B (zh) 基于Jmeter的测试方法及装置、存储介质、电子设备
CN105302722B (zh) Cts自动测试方法及装置
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN111694550B (zh) 一种页面显示控制方法、装置及***
CN113204495A (zh) 基于b/s架构的自动化测试方法、装置、存储介质及设备
US20130254750A1 (en) Method of debugging software and corresponding computer program product
CN116501315A (zh) 基于DevOps域的低代码软件开发***、方法及设备
CN114064503A (zh) 一种ui自动化测试方法、装置、电子设备及存储介质
CN107590062B (zh) 一种多客户端交互的测试方法和装置
CN117235527A (zh) 端到端容器化的大数据模型构建方法、装置、设备及介质
CN109739754B (zh) 基于微信开发的应用程序自动化测试方法及***
CN115934559A (zh) 表单智能测试***的测试方法
CN114546850A (zh) 一种埋点的自动化测试方法、***、装置及存储介质
CN113961864A (zh) ***巡检方法、装置、存储介质及电子设备
CN111949510B (zh) 测试处理方法、装置、电子设备及可读存储介质
CN112380118A (zh) 单元测试方法、装置、介质及电子设备
CN111881025A (zh) 一种自动化测试任务调度方法、装置及***
CN115729218B (zh) 一种多种换挡方式的模型测试方法、装置、设备和介质
US12032477B2 (en) Method and apparatus for generating and applying deep learning model based on deep learning framework
CN112035335B (zh) 自动化测试的方法、装置、设备、介质
US20230185702A1 (en) Method and Apparatus for Generating and Applying Deep Learning Model based on Deep Learning Framework
CN116166545A (zh) 测试环境创建方法、测试环境创建装置、介质及电子设备

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