CN116955181A - 芯片测试系统、方法、计算机设备及存储介质 - Google Patents
芯片测试系统、方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116955181A CN116955181A CN202310911432.7A CN202310911432A CN116955181A CN 116955181 A CN116955181 A CN 116955181A CN 202310911432 A CN202310911432 A CN 202310911432A CN 116955181 A CN116955181 A CN 116955181A
- Authority
- CN
- China
- Prior art keywords
- test
- module
- instruction
- target
- support component
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 470
- 238000000034 method Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 22
- 239000003795 chemical substances by application Substances 0.000 description 31
- 230000006870 function Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3664—Environments for testing or debugging software
-
- 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
- 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/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及芯片测试技术领域,具体涉及芯片测试系统、方法、计算机设备及存储介质。
背景技术
芯片测试通过测试用例评估和验证产品是否按预期运行的过程,是芯片质量保证的关键步骤。测试用例的执行包括用例代码的执行和被测试代码的执行,用例代码的执行首先进行测试环境或者测试数据准备工作,随后触发被测试代码的执行,最后用例代码进行被测试代码执行结果的判别,以确定软件产品是否按预期运行。
目前,在芯片测试中存在较多的软硬件交互类型代码,而在现有的芯片测试系统中,由于测试用例的代码与硬件寄存器仅存在基于中央处理器(Central ProcessingUnit,CPU)指令集的有限的功能性交互,使芯片测试系统不能根据测试用例部署硬件功能模块的测试数据,从而无法测试软硬件交互类型的测试用例,或者不能准确测试软硬件交互类型的测试用例,影响芯片测试系统的适用性和准确性。
发明内容
有鉴于此,本发明提供了一种芯片测试系统、方法、计算机设备及存储介质,以解决芯片测试系统的适用性差和准确率低的问题。
第一方面,本发明提供了一种芯片测试系统,所述系统包括软件运行平台、测试接口模块和硬件运行平台;所述软件运行平台用于获取测试用例,所述测试用例指示所述软件运行平台在目标硬件功能模块处于目标测试数据后执行被测试代码,所述目标硬件功能模块为多个硬件功能模块中的至少一个;所述测试接口模块连接所述软件运行平台和测试支持组件,所述软件运行平台通过所述测试接口模块向所述测试支持组件发送第一指令,所述第一指令指示所述测试支持组件将所述目标测试数据输入所述目标硬件功能模块;所述硬件运行平台为基于虚拟化方式构建的硬件功能模块的运行平台,所述硬件运行平台包括所述测试支持组件和所述多个硬件功能模块,所述测试支持组件用于根据所述第一指令将所述目标测试数据输入所述目标硬件功能模块,以在所述目标测试数据下验证所述被测试代码是否达到预期要求。
根据本实施例提供的芯片测试系统,需要在目标硬件功能模块处于目标测试数据的情况下执行被测试代码时,在执行被测试代码之前,软件运行平台能够通过测试接口模块向测试支持组件发送第一指令,控制测试支持组件将目标测试数据配置到通过虚拟化方式构建的目标硬件功能模块当中,在目标测试数据下验证被测试代码是否能够达到预期要求。即本实施例提供的芯片测试系统,通过虚拟化方式构建软件运行平台、测试接口模块和硬件运行平台,能够建立软件运行平台和芯片的硬件功能模块之间的交互机制,使软件运行平台能够将测试用例中需要配置到芯片硬件功能模块的测试数据配置到硬件功能模块当中,从而使芯片测试系统可以准确执行软硬件交互类型的测试用例,提高了芯片测试系统的适用性和准确性。
在一种可选的实施方式中,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的执行数据,所述测试支持组件还用于获取所述执行数据,以及通过所述测试接口模块向所述软件运行平台发送所述执行数据,所述执行数据用于验证所述被测试代码是否达到所述预期要求。
根据本实施例提供的芯片测试系统,通过建立软件运行平台和芯片的硬件功能模块之间的交互机制,使软件运行平台还能够获取目标硬件功能模块的执行数据,使芯片测试系统可以综合执行数据和被测试代码的返回值确定被测试代码是否达到预期要求,提高判别结果的准确性。
在一种可选的实施方式中,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的状态信息,所述测试支持组件还用于获取所述状态信息,以及通过所述测试接口模块向所述软件运行平台发送所述状态信息,所述状态信息用于验证所述被测试代码是否达到所述预期要求。
根据本实施例提供的芯片测试系统,通过建立软件运行平台和芯片的硬件功能模块之间的交互机制,使软件运行平台还能够获取目标硬件功能模块的状态信息,使系统可以综合状态信息和被测试代码的返回值确定被测试代码是否达到预期要求,提高判别结果的准确性。
在一种可选的实施方式中,所述第一指令还指示所述测试支持组件获取所述状态信息和所述执行数据,所述测试支持组件还用于获取所述状态信息和所述执行数据,以及通过所述测试接口模块向所述软件运行平台发送所述状态信息和所述执行数据。本实施例可以使芯片测试系统综合被测试代码的返回值、执行数据和状态信息确定被测试代码是否达到预期要求,进一步提升判别结果的准确性。
在一种可选的实施方式中,所述测试接口模块为扩展指令集模块,所述扩展指令集模块包括扩展指令集,所述扩展指令集包括下述中的一项或者多项指令:测试准备指令、测试监控指令、以及测试状态指令,所述测试准备指令指示所述测试支持组件将所述目标测试数据输入所述目标硬件功能模块,所述测试监控指令指示所述测试支持组件获取执行数据,所述测试状态指令指示所述测试支持组件获取所述状态信息。
根据本实施例提供的芯片测试系统,通过配置扩展指令集模块,使软件运行平台可以通过扩展指令集直接控制测试支持组件,将目标测试数据输入目标硬件功能模块,能够更快速的配置硬件功能模块,提高测试效率。
在一种可选的实施方式中,所述测试接口模块为所述硬件运行平台上的虚拟硬件模块,所述软件运行平台通过访问所述虚拟硬件模块的寄存器接口向所述测试支持组件发送第一指令。
根据本发明实施例提供的芯片测试系统,通过配置虚拟硬件模块,使软件运行平台通过原有的CPU指令集访问虚拟硬件模块的寄存器接口,间接地控制测试支持组件将目标测试数据输入目标硬件功能模块,能够提高软件运行平台和硬件运行平台之间的交互机制的稳定性。
在一种可选的实施方式中,所述测试支持组件包括测试代理模块和多个测试辅助模块,每个测试辅助模块对应所述多个硬件功能模块中的一个或者多个硬件功能模块,所述测试代理模块用于接收所述第一指令,并向与所述目标硬件模块对应的测试辅助模块发送所述第一指令,所述测试辅助模块用于接收所述第一指令,并根据所述第一指令将所述目标测试数据输入所述目标硬件功能模块。
根据本实施例提供的芯片测试系统,通过测试代理模块和多个测试辅助模块可以使芯片测试系统同时将不同硬件功能模块对应的测试数据配置到相应的硬件功能模块,提高芯片测试系统的测试效率。
在一种可选的实施方式中,所述软件运行平台还用于获取所述被测试代码的返回值,以及用于根据所述返回值验证在所述目标测试数据下所述被测试代码是否达到所述预期要求。
第二方面,本发明提供了一种芯片测试方法,应用于上述第一方面或其对应的任一实施方式提供的芯片测试系统,该方法包括:获取测试用例,所述测试用例指示软件运行平台在目标硬件功能模块处于目标测试数据后执行被测试代码;根据所述测试用例向测试支持组件发送第一指令,所述第一指令指示所述测试支持组件将所述目标测试数据输入所述目标硬件功能模块;执行所述被测试代码,以在所述目标测试数据下验证所述被测试代码是否达到预期要求。
根据本实施例提供的芯片测试方法,可以在硬件功能模块处于特定的测试数据的情况下验证被测试代码,增加了芯片测试的范围,提高了芯片在流片之前发现问题的概率。
在一种可选的实施方式中,在所述执行所述被测试代码之后,所述方法还包括:获取所述被测试代码的返回值;根据所述返回值验证所述被测试代码是否达到所述预期要求。
在一种可选的实施方式中,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的执行数据,和/或,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的状态信息,所述根据所述返回值验证所述被测试代码是否达到所述预期要求,包括:根据所述返回值、所述执行数据、和/或所述状态信息验证所述被测试代码是否达到所述预期要求。本实施例综合多个因素确定被测试代码是否达到预期要求,能够提高判别结果的准确性。
在一种可选的实施方式中,所述测试支持组件包括测试代理模块和多个测试辅助模块,每个测试辅助模块对应多个硬件功能模块中的一个或者多个硬件功能模块,所述根据所述测试用例向测试支持组件发送第一指令,包括:根据所述测试用例向所述测试代理模块发送所述第一指令;其中,所述方法还包括:所述测试代理模块接收所述第一指令;所述测试代理模块向对应的测试辅助模块发送所述第一指令;所述测试辅助模块接收所述第一指令;所述测试辅助模块根据所述第一指令将所述目标测试数据输入所述目标硬件功能模块;所述测试辅助模块根据所述第一指令获取所述执行数据和/或所述状态信息;所述测试辅助模块向所述测试代理模块发送所述执行数据和/或所述状态信息;所述测试代理模块接收所述执行数据和/或所述状态信息;所述测试代理模块通过测试接口模块向所述软件运行平台发送所述执行数据和/或所述状态信息;所述软件运行平台接收所述执行数据和/或所述状态信息。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第二方面或其对应的任一实施方式的芯片测试方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第二方面或其对应的任一实施方式的芯片测试方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术的芯片测试系统的结构框图;
图2是根据本发明实施例的芯片测试系统的结构框图;
图3是根据本发明实施例的另一芯片测试系统的结构框图;
图4是根据本发明实施例的又一芯片测试系统的结构框图;
图5是根据本发明实施例的芯片测试方法的流程示意图;
图6是根据本发明实施例的另一芯片测试方法的流程示意图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
芯片测试依赖于芯片测试系统。相关技术中,芯片测试系统可以如图1所示。芯片测试系统包括测试用例(Test Case)、用例统计模块。芯片测试系统执行测试用例之后,用例统计模块统计每个测试用例的执行结果,并输出测试报告。测试报告可以用于确定芯片的软件或者硬件的设计是否能够达到预期要求。其中,软件运行平台可以包括多个测试集合(Test Suite),例如,如图1所示Test Suite 1至Test Suite n。n为正整数。每个TestSuite包括多个相关的Test Case,例如,如图1所示的Test Case 1至Test Case n。
目前,在芯片测试中存在较多的软硬件交互类型代码。例如,针对芯片固件的测试。而在上述的芯片测试系统中,由于芯片测试系统与芯片的硬件寄存器仅存在基于CPU指令集的有限的功能性交互,使芯片测试系统不能根据测试用例部署硬件功能模块的测试数据(测试环境参数),导致芯片测试系统无法测试软硬件交互类型的测试用例,影响芯片测试系统的适用性。或者,可能导致芯片测试系统在测试软硬件交互类型的测试用例时的准确性较低。
有鉴于此,本发明实施例提供了一种芯片测试系统,该芯片测试系统能够准确执行软硬件交互类型的测试用例,提高了芯片测试系统的适用性和准确性。
下面结合附图对本发明提供的芯片测试系统的结构进行详细说明。
如图2所示,本发明实施例提供的芯片测试系统200包括软件运行平台210、测试接口模块220和硬件运行平台230。
其中,软件运行平台210用于获取测试用例,测试用例指示软件运行平台210在目标硬件功能模块处于目标测试数据之后执行被测试代码。
示例性的,测试用例可以由工作人员通过本地的人机交互设备进行输入,也可以被携带于通信消息中从远端设备处获取,也可以由软件运行平台210根据目标测试数据和目标硬件模块自动生成,本发明对此不做限定。
可选地,工作人员可以通过键盘、鼠标、控制面板(按钮)、触摸屏等输入设备向软件运行平台210输入测试用例。
可选地,软件运行平台210也可以从远端设备处获取测试用例。其中,远端设备可以生成测试用例或者远端设备内存储测试用例。
例如,软件运行平台210可以与该远端设备通信连接(例如无线连接),软件运行平台210可以接收该远端设备发送的消息,并对该消息进行解析、读取,该消息中携带有该测试用例。
示例性的,该远端设备可以为控制主机或者云服务器。此外,还可以为手机、平板电脑等智能电子产品。
硬件运行平台230为基于虚拟化方式构建的芯片的硬件功能模块的运行平台,硬件运行平台230包括多个硬件功能模块(例如,如图2所示的硬件功能模块231、硬件功能模块232和硬件功能模块233)和测试支持组件234。测试接口模块220连接软件运行平台210和测试支持组件234,软件运行平台210通过测试接口模块220向测试支持组件234发送第一指令。第一指令指示测试支持组件234将目标测试数据输入目标硬件功能模块。测试支持组件234接收到第一指令之后,根据第一指令的指示将目标测试数据输入目标硬件功能模块,使芯片测试系统200在目标测试数据下验证被测试代码是否达到预期要求。
上述目标硬件功能模块为多个硬件功能模块中的至少一个。即目标硬件功能模块可能为多个硬件功能模块中的其中一个,或者目标硬件功能模块可能为多个硬件功能模块中的多个。
例如,如图2所示,硬件运行平台230配置芯片的3个硬件功能模块。目标硬件功能模块可以为3个硬件功能模块中的其中一个,比如,目标硬件功能模块可以为硬件功能模块231或者硬件功能模块232。目标硬件功能模块可以为3个硬件功能模块中的多个,比如,目标硬件功能模块可以为硬件功能模块231和硬件功能模块232,或者,目标硬件功能模块可以为硬件功能模块232和硬件功能模块233。
根据本实施例提供的芯片测试系统200,需要在目标硬件功能模块处于目标测试数据的情况下执行被测试代码时,在执行被测试代码之前,软件运行平台210能够通过测试接口模块220向测试支持组件234发送第一指令,控制测试支持组件234将目标测试数据配置到通过虚拟化方式构建的目标硬件功能模块当中,在目标测试数据下验证被测试代码是否能够达到预期要求。即本实施例提供的芯片测试系统200,通过虚拟化方式构建软件运行平台210、测试接口模块220和硬件运行平台230,能够建立软件运行平台210和芯片的硬件功能模块之间的交互机制,使软件运行平台210能够将测试用例中需要配置到芯片硬件功能模块的测试数据配置到硬件功能模块当中,从而使芯片测试系统200可以准确执行软硬件交互类型的测试用例,提高了芯片测试系统200的适用性和准确性。
进一步地,在执行被测试代码之后,软件运行平台210还用于获取被测试代码的返回值,以及用于根据返回值验证在目标测试数据下被测试代码是否达到预期要求。
示例性的,若执行被测试代码之后得到的返回值和预设值相同,则被测试代码达到预期要求;若执行被测试代码之后得到的返回值和预设值不相同,则被测试代码未能达到预期要求。预设值可以由工作人员根据目标测试数据配置。
在一些可选的实施方式中,第一指令还指示测试支持组件234获取目标硬件功能模块的执行数据。测试支持组件234接收第一指令之后获取执行数据,并通过测试接口模块220向软件运行平台210发送执行数据。示例性的,执行数据可以为在软件运行平台210执行被测试代码过程中目标硬件功能模块所产生的数据。例如,执行数据可以为目标地址访问内的总线访问次数。
根据本实施例提供的芯片测试系统200,通过建立软件运行平台210和芯片的硬件功能模块之间的交互机制,使软件运行平台210还能够获取目标硬件功能模块的执行数据,使芯片测试系统200可以综合执行数据和被测试代码的返回值确定被测试代码是否达到预期要求,提高判别结果的准确性。
在一些可选的实施方式中,第一指令还指示测试支持组件234在软件运行平台210执行被测试代码之后获取所述目标硬件功能模块的状态信息。测试支持组件234接收到第一指令之后,还用于在软件运行平台210执行被测试代码之后获取状态信息,并通过测试接口模块220向软件运行平台210发送状态信息。示例性的,状态信息可以为硬件功能模块处于工作状态、硬件功能模块处于关闭状态、或者硬件功能模块中断等。
根据本实施例提供的芯片测试系统200,通过建立软件运行平台210和芯片的硬件功能模块之间的交互机制,使软件运行平台210还能够获取目标硬件功能模块的状态信息,使系统可以综合状态信息和被测试代码的返回值确定被测试代码是否达到预期要求,提高判别结果的准确性。
在一些可选的实施方式中,第一指令指示测试支持组件234获取目标硬件功能模块的执行数据和状态信息。测试支持组件234接收到第一指令之后,用于获取执行数据和状态信息,并向软件运行平台210发送执行数据和状态信息。本实施例可以使芯片测试系统200综合被测试代码的返回值、执行数据和状态信息确定被测试代码是否达到预期要求,进一步提升判别结果的准确性。
下面对测试接口模块220的实现方式进行说明。
可选地,如图3所示,测试接口模块220可以为扩展指令集模块。扩展指令集模块包括扩展指令集,扩展指令集包括下述中的一项或者多项指令:测试准备指令、测试监控指令和测试状态指令。软件运行平台210根据扩展指令集模块向测试支持组件234发送第一指令。测试准备指令指示测试支持组件234将目标测试数据输入目标硬件功能模块。测试监控指令指示测试支持组件234获取目标硬件功能模块的执行数据。测试状态指令指示测试支持组件234获取目标硬件功能模块的状态信息。
应理解,扩展指令集是对虚拟CPU指令集的扩展。虚拟CPU指令集可以为基于虚拟化方式构建的CPU架构定义中的指令集,CPU默认支持CPU架构定义中的CPU指令,CPU基于CPU指令集控制硬件功能模块。
根据本实施例提供的芯片测试系统200,通过配置扩展指令集模块,使软件运行平台210可以通过扩展指令集直接控制测试支持组件234,将目标测试数据输入目标硬件功能模块,能够更快速的配置硬件功能模块,提高测试效率。
可选地,如图4所示,测试接口模块220可以为硬件运行平台230上的虚拟硬件模块(Virtual Test Channel,VTC)。软件运行平台210通过访问VTC的寄存器接口向测试支持组件234发送第一指令。例如,通过C语言语法中的地址指针读写VTC的寄存器。示例性的,VTC内部设有命令通道和至少一个数据通道,命令通道用于接收并缓存软件运行平台210下发的指令,数据通道用于向测试支持组件234下发指令和接收来自于测试支持组件234的信息。
根据本发明实施例提供的芯片测试系统200,通过配置虚拟硬件模块,使软件运行平台210通过原有的CPU指令集访问虚拟硬件模块的寄存器接口,间接地控制测试支持组件234将目标测试数据输入目标硬件功能模块,能够提高软件运行平台210和硬件运行平台230之间交互的稳定性。
上述两种实现方式可交互使用,本发明不做任何限定。
在一些可选的实施方式中,测试支持组件234包括测试代理(Virtual TestProxy,VTP)模块2341和多个测试辅助(Virtual Test Aux,VTA)模块(如图3和图4中所示的测试辅助模块2342和测试辅助模块2343)。每个测试辅助模块对应多个硬件功能模块中的一个或者多个硬件功能模块。例如,如图3和图4所示,测试辅助模块2342控制硬件功能模块231,测试辅助模块2343控制硬件功能模块232和硬件功能模块233。
测试代理模块2341用于接收第一指令,并向与目标硬件模块对应的测试辅助模块发送第一指令,测试辅助模块用于接收第一指令,并根据第一指令将目标测试数据输入目标硬件功能模块。例如,如图3所示,若目标硬件模块为硬件功能模块232,则测试代理模块2341向测试辅助模块2343发送第一指令。
根据本实施例提供的芯片测试系统200,通过测试代理模块2341和多个测试辅助模块可以使芯片测试系统200同时将不同硬件功能模块对应的测试数据配置到相应的硬件功能模块,提高芯片测试系统200的测试效率。
在一些可选的实施方式中,测试支持组件234可以为测试代理模块2341,直接通过测试代理模块2341控制硬件功能模块。例如,测试代理模块2341向中断控制器发送中断请求。
本发明实施例还提供了一种芯片测试方法,该方法应用于上述实施例中的芯片测试系统200。下面结合附图对本发明提供的芯片测试方法进行说明。
图5是根据本发明实施例的芯片测试方法的流程示意图。如图5所示,该方法包括如下步骤:
步骤S501,获取测试用例。
其中,测试用例指示软件运行平台在目标硬件模块处于目标测试数据之后执行被测试代码。
在一种实现方式中,测试用例可以由工作人员通过人机交互设备(例如键盘、鼠标或者触摸屏等设备)输入软件运行平台。
在另一种实现方式中,可以从远端设备处获取测试用例。其中,远端设备能够根据测试数据或者测试环境生成测试用例,或者远端设备存储测试用例。远端设备可以为服务器、计算机等设备。
步骤S502,根据测试用例向测试支持组件发送第一指令。
其中,第一指令指示测试支持组件将目标测试数据输入目标硬件功能模块。
具体地,测试用例中包括需要配置到目标硬件功能模块的目标测试数据。软件运行平台解析到该目标测试数据之后,生成第一指令并向测试支持组件发送第一指令,控制测试支持组件将该目标测试数据配置到目标硬件功能模块。
步骤S503,执行被测试代码。
具体地,在将目标测试数据配置到目标硬件功能模块之后,软件运行平台执行被测试代码,使芯片测试系统可以在目标硬件功能模块处于目标测试数据的情况下验证被测试代码是否达到预期要求。
示例性的,在执行被测试代码的过程中,软件运行平台可以通过功能接口模块按代码设计的需求与硬件功能模块交互。硬件功能模块执行相应的功能逻辑后,可以将执行数据发送至测试支持组件。
根据本实施例提供的芯片测试方法,可以在硬件功能模块处于特定的测试数据的情况下验证被测试代码,增加了芯片测试的范围,提高了在芯片进行流片之前发现问题的概率。
图6是根据本发明实施例的另一芯片测试方法的流程示意图。如图6所示,该方法包括如下步骤:
步骤S601,获取测试用例。
详细请参见图5所示实施例的步骤S501,在此不再赘述。
步骤S602,根据测试用例向测试支持组件发送第一指令。
详细请参见图5所示实施例的步骤S502,在此不再赘述。
步骤S603,执行被测试代码。
详细请参见图5所示实施例的步骤S503,在此不再赘述。
步骤S604,获取被测试代码的返回值。
步骤S605,根据返回值验证被测试代码是否达到预期要求。
示例性的,若返回值和预设值相同,则可以确定被测试代码能够达到预期要求,此时可以判定测试用例成功。若返回值和预设值不相同,则可以确定被测试代码未能达到预期要求,此时可以判定测试用例失败。
在一种可选的实施方式中,第一指令还指示测试支持组件获取目标硬件功能模块的执行数据,和/或,第一指令还指示测试支持组件获取软件运行平台执行被测试代码之后目标硬件功能模块的状态信息。此时,芯片测试系统可以根据返回值、执行数据、和/或状态信息验证被测试代码是否达到预期要求。
也就是说,若第一指令还指示测试支持组件获取执行数据,则芯片测试系统根据返回值和执行数据验证被测试代码是否达到预期要求;若第一指令还指示测试支持组件获取状态信息,则芯片测试系统根据返回值和状态信息验证被测试代码是否达到预期要求;若第一指令还指示测试支持组件获取执行数据和状态信息,则芯片测试系统根据返回值、执行数据和状态信息验证被测试代码是否达到预期要求。本实施例综合多个因素确定被测试代码是否达到预期要求,能够提高判别结果的准确性。
另外,若测试用例失败,芯片测试系统还可以通过返回值、执行数据和状态信息分析测试用例失败的原因。
示例性的,在测试支持组件包括测试代理模块和多个测试辅助模块的情况下,软件运行平台可以通过下述流程将目标测试数据配置到目标硬件功能模块,以及获取执行数据和/或状态信息。具体地,软件运行平台根据测试用例向测试代理模块发送第一指令。相应地,测试代理模块接收第一指令。测试代理模块接收到第一指令之后,向对应的测试辅助模块发送第一指令。相应地,测试辅助模块接收第一指令。测试辅助模块接收第一指令之后,根据第一指令将目标测试数据输入目标硬件功能模块。
进一步地,若第一指令还指示测试支持组件获取目标硬件功能模块的执行数据,则测试辅助模块还根据第一指令获取执行数据,并向测试代理模块发送执行数据。相应地,测试代理模块接收执行数据。测试代理模块接收到执行数据之后,通过测试接口模块向软件运行平台发送执行数据。相应地,软件运行平台接收执行数据。
若第一指令还指示测试支持组件获取目标硬件功能模块的状态信息,则测试辅助模块还根据第一指令获取状态信息,并向测试代理模块发送状态信息,相应地,测试代理模块接收状态信息。测试代理模块接收到状态信息之后,通过测试接口模块向软件运行平台发送状态信息。相应地,软件运行平台接收状态信息。
若第一指令还指示测试支持组件获取目标硬件功能模块的状态信息和执行数据,则测试辅助模块还根据第一指令获取状态信息和执行数据,并向测试代理模块发送状态信息和执行数据。相应地,测试代理模块接收状态信息和执行数据。测试代理模块接收到状态信息和执行数据之后,通过测试接口模块向软件运行平台发送状态信息和执行数据。相应地,软件运行平台接收状态信息和执行数据。
本实施例中的芯片测试系统是以功能模块的形式来呈现,这里的模块可以指专用集成电路(Application Specific Integrated Circuit,ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图2所示的芯片测试系统200。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器710、存储器720,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器710为例。
处理器710可以是中央处理器,网络处理器或其组合。其中,处理器710还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器720存储有可由至少一个处理器710执行的指令,以使所述至少一个处理器710执行实现上述实施例示出的方法。
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器720可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器720还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置730和输出装置740。处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置730可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置740可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (13)
1.一种芯片测试系统,其特征在于,所述系统包括:软件运行平台、测试接口模块和硬件运行平台;
所述软件运行平台用于获取测试用例,所述测试用例指示所述软件运行平台在目标硬件功能模块处于目标测试数据后执行被测试代码,所述目标硬件功能模块为多个硬件功能模块中的至少一个;
所述测试接口模块连接所述软件运行平台和测试支持组件,所述软件运行平台通过所述测试接口模块向所述测试支持组件发送第一指令,所述第一指令指示所述测试支持组件将所述目标测试数据输入所述目标硬件功能模块;
所述硬件运行平台为基于虚拟化方式构建的硬件功能模块的运行平台,所述硬件运行平台包括所述测试支持组件和所述多个硬件功能模块,所述测试支持组件用于根据所述第一指令将所述目标测试数据输入所述目标硬件功能模块,以在所述目标测试数据下验证所述被测试代码是否达到预期要求。
2.根据权利要求1所述的系统,其特征在于,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的执行数据,所述测试支持组件还用于获取所述执行数据,以及通过所述测试接口模块向所述软件运行平台发送所述执行数据,所述执行数据用于验证所述被测试代码是否达到所述预期要求。
3.根据权利要求1或2所述的系统,其特征在于,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的状态信息,所述测试支持组件还用于获取所述状态信息,以及通过所述测试接口模块向所述软件运行平台发送所述状态信息,所述状态信息用于验证所述被测试代码是否达到所述预期要求。
4.根据权利要求3所述的系统,其特征在于,所述测试接口模块为扩展指令集模块,所述扩展指令集模块包括扩展指令集,所述扩展指令集包括下述中的一项或者多项指令:测试准备指令、测试监控指令、以及测试状态指令,所述测试准备指令指示所述测试支持组件将所述目标测试数据输入所述目标硬件功能模块,所述测试监控指令指示所述测试支持组件获取执行数据,所述测试状态指令指示所述测试支持组件获取所述状态信息。
5.根据权利要求3所述的系统,其特征在于,所述测试接口模块为所述硬件运行平台上的虚拟硬件模块,所述软件运行平台通过访问所述虚拟硬件模块的寄存器接口向所述测试支持组件发送第一指令。
6.根据权利要求1或2所述的系统,其特征在于,所述测试支持组件包括测试代理模块和多个测试辅助模块,每个测试辅助模块对应所述多个硬件功能模块中的一个或者多个硬件功能模块,所述测试代理模块用于接收所述第一指令,并向与所述目标硬件模块对应的测试辅助模块发送所述第一指令,所述测试辅助模块用于接收所述第一指令,并根据所述第一指令将所述目标测试数据输入所述目标硬件功能模块。
7.根据权利要求1或2所述的系统,其特征在于,所述软件运行平台还用于获取所述被测试代码的返回值,以及用于根据所述返回值验证在所述目标测试数据下所述被测试代码是否达到所述预期要求。
8.一种芯片测试方法,其特征在于,应用于权利要求1至7中任一项所述的芯片测试系统,所述方法包括:
获取测试用例,所述测试用例指示软件运行平台在目标硬件功能模块处于目标测试数据后执行被测试代码;
根据所述测试用例向测试支持组件发送第一指令,所述第一指令指示所述测试支持组件将所述目标测试数据输入所述目标硬件功能模块;
执行所述被测试代码,以在所述目标测试数据下验证所述被测试代码是否达到预期要求。
9.根据权利要求8所述的方法,其特征在于,在所述执行所述被测试代码之后,所述方法还包括:
获取所述被测试代码的返回值;
根据所述返回值验证所述被测试代码是否达到所述预期要求。
10.根据权利要求9所述的方法,其特征在于,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的执行数据,和/或,所述第一指令还指示所述测试支持组件获取所述目标硬件功能模块的状态信息,所述根据所述返回值验证所述被测试代码是否达到所述预期要求,包括:
根据所述返回值、所述执行数据、和/或所述状态信息验证所述被测试代码是否达到所述预期要求。
11.根据权利要求10所述的方法,其特征在于,所述测试支持组件包括测试代理模块和多个测试辅助模块,每个测试辅助模块对应多个硬件功能模块中的一个或者多个硬件功能模块,所述根据所述测试用例向测试支持组件发送第一指令,包括:
根据所述测试用例向所述测试代理模块发送所述第一指令;
其中,所述方法还包括:
所述测试代理模块接收所述第一指令;
所述测试代理模块向对应的测试辅助模块发送所述第一指令;
所述测试辅助模块接收所述第一指令;
所述测试辅助模块根据所述第一指令将所述目标测试数据输入所述目标硬件功能模块;
所述测试辅助模块根据所述第一指令获取所述执行数据和/或所述状态信息;
所述测试辅助模块向所述测试代理模块发送所述执行数据和/或所述状态信息;
所述测试代理模块接收所述执行数据和/或所述状态信息;
所述测试代理模块通过测试接口模块向所述软件运行平台发送所述执行数据和/或所述状态信息;
所述软件运行平台接收所述执行数据和/或所述状态信息。
12.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求8至11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求8至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310911432.7A CN116955181A (zh) | 2023-07-24 | 2023-07-24 | 芯片测试系统、方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310911432.7A CN116955181A (zh) | 2023-07-24 | 2023-07-24 | 芯片测试系统、方法、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955181A true CN116955181A (zh) | 2023-10-27 |
Family
ID=88445763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310911432.7A Pending CN116955181A (zh) | 2023-07-24 | 2023-07-24 | 芯片测试系统、方法、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955181A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472673A (zh) * | 2023-12-27 | 2024-01-30 | 睿思芯科(成都)科技有限公司 | 中断控制器的自动测试方法、系统及相关设备 |
-
2023
- 2023-07-24 CN CN202310911432.7A patent/CN116955181A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472673A (zh) * | 2023-12-27 | 2024-01-30 | 睿思芯科(成都)科技有限公司 | 中断控制器的自动测试方法、系统及相关设备 |
CN117472673B (zh) * | 2023-12-27 | 2024-03-26 | 睿思芯科(成都)科技有限公司 | 中断控制器的自动测试方法、系统及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7209034B2 (ja) | エッジコンピューティングテスト方法、装置、機器及び読み取り可能な記憶媒体 | |
CN108959068B (zh) | 软件界面测试方法、设备及存储介质 | |
JP7030177B2 (ja) | テスト方法及び装置 | |
US20130311827A1 (en) | METHOD and APPARATUS for automatic testing of automation software | |
US9122793B2 (en) | Distributed debugging of an application in a distributed computing environment | |
US20120278790A1 (en) | Collaborative Software Debugging In A Distributed System With Real-Time Variable Modification Indicators | |
KR20210110530A (ko) | 딥 러닝에 기반한 연산자 등록 처리 방법, 장치 및 전자 기기 | |
US10044591B2 (en) | Two-way remote communication system for testing a client device program | |
US11063828B2 (en) | Detecting software misconfiguration at a remote machine | |
CN114138644A (zh) | Bmc调试方法及监控方法、系统、装置、设备、介质 | |
CN116955181A (zh) | 芯片测试系统、方法、计算机设备及存储介质 | |
US11954013B2 (en) | Method of testing applet performance, electronic device, and computer-readable medium | |
CN113986270B (zh) | 分布式应用部署方法、装置、存储介质及电子设备 | |
CN106815150B (zh) | 服务端接口测试系统及方法 | |
WO2022100033A1 (zh) | 调试小程序的方法、装置、电子设备和存储介质 | |
CN114416578A (zh) | 测试方法和装置 | |
CN112911283B (zh) | 智能电视测试方法及装置 | |
CN111274520B (zh) | 网页资源审核方法、装置、设备和介质 | |
CN112346947A (zh) | 性能检测方法、装置、电子设备和计算机可读介质 | |
JP2018077697A (ja) | 検証システムおよび検証方法 | |
CN114666258A (zh) | 接口测试方法、装置、电子设备和介质 | |
CN113282476A (zh) | 接口性能测试方法、装置和电子设备 | |
KR20170106029A (ko) | 전자 장치 및 그의 제어 방법 | |
CN112286552B (zh) | 一种任务创建方法、装置、电子设备以及存储介质 | |
US10511501B2 (en) | Analyzing device system and program for the system |
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 |