[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN112015633B - 测试激励多平台复用方法、装置、设备及存储介质 - Google Patents

测试激励多平台复用方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112015633B
CN112015633B CN201910465583.8A CN201910465583A CN112015633B CN 112015633 B CN112015633 B CN 112015633B CN 201910465583 A CN201910465583 A CN 201910465583A CN 112015633 B CN112015633 B CN 112015633B
Authority
CN
China
Prior art keywords
test
universal
tested
macro
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.)
Active
Application number
CN201910465583.8A
Other languages
English (en)
Other versions
CN112015633A (zh
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.)
Beijing Wuxin Technology Co ltd
Original Assignee
Beijing Wuxin 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 Beijing Wuxin Technology Co ltd filed Critical Beijing Wuxin Technology Co ltd
Priority to CN201910465583.8A priority Critical patent/CN112015633B/zh
Publication of CN112015633A publication Critical patent/CN112015633A/zh
Application granted granted Critical
Publication of CN112015633B publication Critical patent/CN112015633B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • 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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明实施例公开了一种测试激励多平台复用方法、装置、设备及存储介质。所述方法包括:获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;通用测试激励文件用于描述各被测对象之间的相同测试激励,宏定义文件用于描述各被测对象之间的不同测试激励;采用通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象;综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励。本发明实施例的技术方案,实现了同一测试激励,在不同测试对象之间的复用,减少编码量和编码时间,提高编码效率。

Description

测试激励多平台复用方法、装置、设备及存储介质
技术领域
本发明实施例涉及测试技术领域,尤其涉及一种测试激励多平台复用方法、装置、设备及存储介质。
背景技术
随着测试技术的不断发展,诸如专用集成电路等被测对象的复杂程度越来越高,用于测试被测对象的测试激励也相应地越来越多,导致测试任务比较繁重。
现有技术中,对于多个测试激励类似的被测对象,各被测对象需要在对应的测试激励下分别进行测试,这就需要工作人员针对每个被测对象编写一个测试激励,通过将测试激励驱动到不同的被测对象,实现对被测对象的测试验证。但是,使用上述技术对被测对象进行测试验证,不仅不便于测试激励的维护,而且大大增加了编码时间,降低了测试效率。
发明内容
本发明提供一种测试激励多平台复用方法、装置、设备及存储介质,以实现在不同测试激励中复用同一个通用测试激励文件,减少编码时间,提高测试效率。
第一方面,本发明实施例提供了一种测试激励多平台复用方法,包括:
获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;所述通用测试激励文件用于描述各被测对象之间的相同测试激励,所述宏定义文件用于描述各被测对象之间的不同测试激励;
采用所述通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象;所述综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励。
可选的,所述采用所述通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象,包括:
将所述通用测试激励文件和宏定义文件加载至对应的各被测对象的编译环境中;
在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码;
执行所述目标代码,生成综合测试激励,并在所述综合测试激励下测试各被测对象,得到各被测对象的测试结果;
将各被测对象的测试结果与对应的预期测试结果进行比较,得到测试结论。
可选的,所述宏定义文件,包括:定义测试激励的通用宏名,以及扩展自所述通用宏名的、定义被测对象的测试激励的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的测试激励的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的测试激励的字符串,对所述通用测试激励文件中的测试激励的通用宏名进行替换,生成目标代码。
可选的,所述宏定义文件,包括:定义描述序列的通用宏名,以及扩展自所述通用宏名的、定义被测对象的描述序列的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的描述序列的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的描述序列的字符串,对所述通用测试激励文件中的描述序列的通用宏名进行替换,生成目标代码;
其中,所述描述序列由预设数量的基本激励单元按照设定顺序排列获得,用于描述各被测对象之间的不同测试流程。
可选的,所述宏定义文件,包括:定义时间间隙的通用宏名,以及扩展自所述通用宏名的、定义被测对象的时间间隙的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的时间间隙的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的时间间隙的字符串,对所述通用测试激励文件中的时间间隙的通用宏名进行替换,生成目标代码;
其中,所述时间间隙的字符串用于建立与对应的被测对象适配的、发送激励的时间间隙。
可选的,所述宏定义文件,包括:定义初始化流程的通用宏名,以及扩展自所述通用宏名的、定义被测对象的初始化流程的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的初始化流程的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的初始化流程的字符串,对所述通用测试激励文件中的初始化流程的通用宏名进行替换,生成目标代码;
其中,所述初始化流程用于初始化被测对象的配置流程。
可选的,所述宏定义文件,包括:定义被测对象特性的通用宏名,以及扩展自所述通用宏名的、定义被测对象的特性的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的被测对象特性的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的特性的字符串,对所述通用测试激励文件中的被测对象特性的通用宏名进行替换,生成目标代码;
其中,所述被测对象特性包括访问深度和/或访问宽度。
第二方面,本发明实施例还提供了一种测试激励多平台复用装置,包括:
获取模块,用于获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;所述通用测试激励文件用于描述各被测对象之间的相同测试激励,所述宏定义文件用于描述各被测对象之间的不同测试激励;
测试模块,用于采用所述通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象;所述综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的测试激励多平台复用方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的测试激励多平台复用方法。
本发明实施例中,通用测试激励文件用于描述各被测对象之间的相同测试激励,并采用通用测试激励文件驱动各被测对象,从而实现在不同测试对象之间复用同一个通用测试激励文件,即实现了测试激励的复用;宏定义文件用于描述各被测对象之间的不同测试激励,采用通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象,而无需为各被测对象均编写一套完整的测试激励,采用顶层激励描述相同,底层驱动不同的方式,实现了同一测试激励,在不同测试对象之间的复用,减少编码量和编码时间,提高编码效率,几乎不存在重复性描述,便于测试激励的维护;而且,不同的测试激励通过宏定义的方式抽象化描述,整合了多方面类似的抽象的激励描述,使测试激励描述更加简洁方便,且便于人机交互,进一步提高编码效率,有利于高效地完成测试工作。
附图说明
图1是本发明实施例一中的测试激励多平台复用方法的流程图;
图2a是本发明实施例二中的现有的测试激励发送示意图;
图2b是本发明实施例二中的测试激励发送示意图;
图3是本发明实施例三中的测试激励多平台复用装置的结构示意图;
图4是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的测试激励多平台复用方法的流程图,本实施例可适用于对测试激励相似的多个被测对象进行测试的情况,相似的测试激励包括多个被测对象之间相同的测试激励和不同的测试激励。该方法可以由测试激励多平台复用装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在提供测试服务的设备中。如图1所示,该方法包括:
步骤110、获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;通用测试激励文件用于描述各被测对象之间的相同测试激励,宏定义文件用于描述各被测对象之间的不同测试激励。
本实施例中,被测对象又称为在试设备(Design Under Test,DUT),可以在基于通用验证方法学(Universal Verification Methodology,UVM)的验证平台上进行测试验证。本实施例中的多个被测对象的特性类似以及驱动接口类似。示例性地,特性类似指多个被测对象均具有一定的访问深度和/或访问宽度,但访问深度和/或访问宽度的数值不同。驱动接口类似指多个被测对象能够被相同主流程的类似测试激励所驱动。
由于多个被测对象具有类似特性和类似驱动接口,需要测试相同主流程的测试激励,但是测试激励并非完全相同,而是既具有相同的部分又具有不同的部分,姑且认为多个被测对象的测试激励是相似的。示例性地,相同的测试激励包括:相同的主流程,以及子流程和/或参数;不同的测试激励包括:子流程和/或参数。
本实施例中,预先将各被测对象之间的相同测试激励的描述写入通用测试激励文件中;并预先将各被测对象之间的不同测试激励的描述分别写入宏定义文件中。其中,通用测试激励文件是指对一个被测对象进行测试任务的描述,其内容可以包括测试目标、测试场景、输入数据、测试步骤、预期测试结果等,用以测试该被测对象是否满足某个设定需求。宏定义文件采用宏定义的方式对不同的测试激励进行抽象描述,从而用宏代替各被测对象之间的不同参数或者不同子流程。而且,宏定义文件集合了多方面不同的测试激励的抽象描述,例如特性不同和时间间隔不同,从而将多方面类似的抽象的激励描述整合到一个文件中,便于维护。
进一步的,若多个被测对象的测试激励中包括至少两种类型的测试激励,其中,属于同一类型的测试激励可以认为是相似的,则本实施例可以根据测试激励是否具有相同的主流程,预先对多个被测对象进行相似性划分,将测试激励具有相同主流程的被测对象当作相似的被测对象,分到同一个相似对象集合,针对同一个集合内相似的被测对象,编写一个与多个相似被测对象对应的通用测试激励文件,以及多个与各相似被测对象分别对应的宏定义文件,用于对各相似被测对象进行测试。本实施例中,针对各被测对象,获取与被测对象所属的相似对象集合对应的通用测试激励文件以及与被测对象对应的宏定义文件。可见,各相似的被测对象获取同一通用测试激励文件,以及不同的宏定义文件。
步骤120、采用通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象;综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励。
获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件之后,将通用测试激励文件驱动到各被测对象的接口,将宏定义文件驱动到对应被测对象的接口,进而驱动对应的各被测对象在验证平台上采用两个文件进行测试。在测试过程中需要执行通用测试文件中的主流程,并调用宏定义文件中对不同子流程和/或参数的宏定义,得到完整的综合测试激励,进而在综合测试激励下测试各被测对象。
在一具体实施方式中,首先将通用测试激励文件和宏定义文件加载至对应的各被测对象的编译环境中;在编译环境中,编译通用测试激励文件和宏定义文件,生成目标代码。具体地,在通用测试激励文件中,通过宏名(即宏定义)来表示各被测对象不同的测试激励,为了方便描述和区分,将各被测对象的相同宏名称为通用宏名;宏定义文件包括通用宏名和扩展自通用宏名的字符串,通过扩展自通用宏名的字符串来表示不同的测试激励。基于此,在编译环境中,当编译到通用测试激励文件中的通用宏名时,调用宏定义文件中扩展自通用宏名的字符串,对通用测试激励文件中的通用宏名进行替换,生成目标代码。
接着,执行所述目标代码,生成综合测试激励;在所述综合测试激励下测试各被测对象,得到各被测对象的测试结果;将各被测对象的测试结果与对应的预期测试结果进行比较,得到测试结论。其中,预期测试结果存储在通用测试激励文件中,用于描述被测对象所希望达到的输出或指标,例如,系统响应时间为2ms。
本发明实施例中,通用测试激励文件用于描述各被测对象之间的相同测试激励,并采用通用测试激励文件驱动各被测对象,从而实现在不同测试对象之间复用同一个通用测试激励文件,即实现了测试激励的复用;宏定义文件用于描述各被测对象之间的不同测试激励,采用通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象,而无需为各被测对象均编写一套完整的测试激励,采用顶层激励描述相同,底层驱动不同的方式,实现了同一测试激励,在不同测试对象之间的复用,减少编码量和编码时间,提高编码效率,几乎不存在重复性描述,便于测试激励的维护;而且,不同的测试激励通过宏定义的方式抽象化描述,整合了多方面类似的抽象的激励描述,使测试激励描述更加简洁方便,且便于人机交互,进一步提高编码效率,有利于高效地完成测试工作。
实施例二
本实施例在上述实施例的基础上,详细描述宏定义文件的描述,以及在不同描述下,通过编译通用测试激励文件和宏定义文件,生成目标代码的过程。宏定义文件包括下述描述中的至少一条,下面分情况对每条描述,以及相应的目标代码生成过程进行详细描述。
第一种情况:宏定义文件包括:定义测试激励的通用宏名,以及扩展自所述通用宏名的、定义被测对象的测试激励的字符串。相应地,在编译环境中,当编译到所述通用测试激励文件中的测试激励的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的测试激励的字符串,对所述通用测试激励文件中的测试激励的通用宏名进行替换,生成目标代码。
在此情况中,定义测试激励的通用宏名可认为是测试激励的名称。然而,各被测对象的测试激励并不相同,测试激励的名称应予以区分,因此,采用扩展自通用宏名的、定义被测对象的测试激励的字符串,作为被测对象的测试激励的名称,也可以进一步作为宏定义文件的标识。通过将通用测试激励文件中的通用宏名替换为各被测对象对应的字符串,从而生成目标代码,实现不同宏定义文件的调用。
第二种情况:宏定义文件包括:定义描述序列的通用宏名,以及扩展自通用宏名的、定义被测对象的描述序列的字符串;其中,描述序列由预设数量的基本激励单元按照设定顺序排列获得,用于描述各被测对象之间的不同测试流程。相应地,在编译环境中,当编译到所述通用测试激励文件中的描述序列的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的描述序列的字符串,对所述通用测试激励文件中的描述序列的通用宏名进行替换,生成目标代码。
在此情况中,基本激励单元可以是一个操作步骤,而描述序列是由多个操作步骤按照设定的顺序排列得到的一个操作过程,由于每个被测对象所适用的测试流程不尽相同,因此,各被测对象的宏定义文件中所定义的描述序列的宏具有相同的宏名,即通用宏名;通过扩展自通用宏名的、定义被测对象的描述序列的字符串来具体描述各测试激励之间不同的测试流程,从而在执行目标代码,以对各被测对象进行测试时,通过调用不同宏定义文件中的描述序列的宏实现不同的测试流程。
第三种情况:宏定义文件包括:定义时间间隙的通用宏名,以及扩展自通用宏名的、定义被测对象的时间间隙的字符串;其中,时间间隙的字符串用于建立与对应的被测对象适配的、发送激励的时间间隙。相应地,在编译环境中,当编译到所述通用测试激励文件中的时间间隙的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的时间间隙的字符串,对所述通用测试激励文件中的时间间隙的通用宏名进行替换,生成目标代码。
在此情况中,对各被测对象进行测试时,需要将通用激励文件分成多个数据包发送给被测对象,时间间隙是指发送相邻数据包的时间间隔。由于不同被测对象对时间间隙的要求不同,因此,各被测对象的宏定义文件中所定义的时间间隙的宏具有相同的宏名,即通用宏名,通过扩展自通用宏名的、定义被测对象的时间间隙的字符串来描述各不同的发送相邻数据包的时间间隔,从而在执行目标代码,以对各被测对象进行测试时,通过调用不同宏定义文件中的时间间隙的字符串,设置不同的发送相邻数据包的时间间隔。
第四种情况:宏定义文件包括:定义初始化流程的通用宏名,以及扩展自所述通用宏名的、定义被测对象的初始化流程的字符串,其中,所述初始化流程用于初始化被测对象的配置流程。相应地,在编译环境中,当编译到所述通用测试激励文件中的初始化流程的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的初始化流程的字符串,对所述通用测试激励文件中的初始化流程的通用宏名进行替换,生成目标代码;
在此情况中,由于不同被测对象的初始化配置流程不同,因此,各被测对象对应的宏定义文件中所定义的初始化流程的宏具有相同的宏名,即通用宏名;通过扩展自通用宏名的、定义被测对象的初始化流程的字符串来描述各不同被测对象的初始化配置流程,从而在执行目标代码,以对各被测对象进行测试时,通过调用不同宏定义文件中的初始化流程的字符串,实现不同的初始化配置流程。
第五种情况:宏定义文件包括:定义被测对象特性的通用宏名,以及扩展自所述通用宏名的、定义被测对象的特性的字符串,其中,所述被测对象特性包括访问深度和/或访问宽度。相应地,在编译环境中,当编译到所述通用测试激励文件中的被测对象特性的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的特性的字符串,对所述通用测试激励文件中的被测对象特性的通用宏名进行替换,生成目标代码;
在此情况中,示例性的,假设被测对象为存储器,存储器可以进行行维度的访问或者列维度的访问,则访问宽度和访问深度可以认为是存储器的可被访问的行数和列数。由于不同被测对象的特性不同,因此,各被测对象对应的宏定义文件中所定义的被测对象特性的宏具有相同的宏名,即通用宏名;通过扩展自通用宏名的、定义被测对象的被测对象特性的字符串来描述各不同被测对象的特性,从而在执行目标代码,以对各被测对象进行测试时,通过调用不同宏定义文件中的被测对象特性的字符串设置不同的特性。
下面,以一具体应用场景详细说明宏定义文件的具体描述和测试过程。
示例性的,假设有两个被测对象,分别为第一被测对象(Object1)和第二被测对象(Object2),这两个被测对象的指令配置流程以及逻辑查找流程类似,因此,可以从两个被测对象的指令配置激励以及逻辑查找激励中抽象出相同的主流程,并编写对应的通用测试激励文件;再分别根据两个被测对象之间不同的配置激励和逻辑查找激励编写各自的宏定义文件。例如,被测对象Object1的宏定义文件如下所示:
Object1_def.sv:
被测对象Object2的宏定义文件如下所示:
Object2_def.sv:
上述两个宏定义文件中,OBJECT_BASE_TEST表示测试激励的通用宏名,被测对象Object1和Object2各自的测试激励都扩展自TCAM_BASE_TEST,分别为字符串:Object1_base_test和Object2_base_test,以保证该通用测试激励可以在不同验证场景中被驱动。OBJECT_DIFF_FLOW表示描述序列的通用宏名,描述被测对象Object1和Object2的不同测试流程,在通用测试激励中对流程中不同的部分使用宏定义名称相同的描述序列,可以保证测试流程中不同的描述可以在同一通用测试激励中使用。OBJECT_CFG_2_SEND_TIME表示相同的序列(sequence)或者项(item)驱动的时间间隙的通用宏名,其中,一个序列是一个完整的信息流,项是序列中最小组成单位的集合,由于被测对象Object1和Object2对发送激励(即序列或项)的时间间隙的要求是不同的,因此在通用测试激励中使用宏定义名称相同的时间间隙的宏进行不同时间间隙的建立,以适配不同的被测对象;OBJECT_INIT_FLOW表示初始化流程的通用宏名,OBJECT_WIDTH表示被测对象的访问宽度的通用宏名,OBJECT_DEEP表示被测对象的访问深度的通用宏名。
测试设备获取被测对象Object1和Object2对应的通用测试激励文件,被测对象Object1对应的宏定义文件Object1_def.sv,以及被测对象Object2对应的宏定义文件Object2_def.sv,用通用测试激励文件和宏定义文件代替现有技术中各被测对象对应的测试激励文件。
接着,测试设备将通用测试激励文件和宏定义文件Object1_def.sv加载至被测对象Object1的编译环境中,以及将通用测试激励文件和宏定义文件Object2_def.sv加载至被测对象Object2的编译环境中,以对通用测试激励文件和宏定义文件进行编译,生成目标代码。
如图2a所示,现有技术中针对被测对象Object1和Object2,相似的测试激励要在两个测试激励中分别定义以及编写,增加了编码时间,并且一旦进行了参数或者子流程的修改,对于测试激励也不好维护,增加了代码维护的工作量。针对上述问题,如图2b所示,本发明实施例根据两个被测对象之间相同的测试激励,编写通用测试激励文件,并针对被测对象Object1和Object2分别编写宏定义文件Object1_def.sv和Object2_def.sv,这两个宏定义文件中分别使用相同的宏名对通用测试激励中不同的子流程以及参数进行了定义,使其可以在同一通用测试激励文件中运行,从而方便了代码的维护,减少了编码时间,提高了测试效率。
然后,执行目标代码,生成综合测试激励;并在综合测试激励下测试上述两个被测对象。
可选的,测试设备在综合测试激励下按照设定的测试步骤测试各被测对象,并纪录各被测对象在测试过程中产生的测试数据,通过对测试数据进行分析得到测试结果。将各被测对象的测试结果与对应的预期测试结果进行比较,得到测试结论。其中,测试结论是对测试任务的执行情况以及测试结果进行总结,其可以包括:对测试风险的控制措施和成效、测试目标是否完成、测试是否通过、是否存在遗留问题以及是否可以进入下一阶段的测试等内容。
可选的,测试设备将各被测对象的测试结果与对应的预期测试结果进行比较,若测试结果与对应的预期测试结果一致,则该测试目标完成,若所有测试目标都完成,则被测对象通过测试;若测试结果与对应的预期测试结果不一致,则该测试目标没有完成,被测对象未通过测试。
本实施例中,从定义测试激励、描述序列、时间间隔、初始化流程和被测对象特性多个方面,对测试激励的不同之处进行描述,涵盖面广泛,可应用于多种被测对象的应用场景中;通过定义通用宏名和字符串,并编译通用测试激励文件和宏定义文件,生成目标代码,进而通过执行目标代码实现上述多方面区别的测试激励。
实施例三
图3是本发明实施例三中的测试激励多平台复用装置的结构示意图。本实施例可适用于对测试激励相似的多个被测对象进行测试的情况,相似的测试激励包括多个被测对象之间相同的测试激励和不同的测试激励。如图3所示,该测试激励多平台复用装置应用于提供测试服务的设备,包括:
获取模块310,用于获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;通用测试激励文件用于描述各被测对象之间的相同测试激励,宏定义文件用于描述各被测对象之间的不同测试激励;
测试模块320,用于采用通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象;综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励。
本发明实施例中,通用测试激励文件用于描述各被测对象之间的相同测试激励,并采用通用测试激励文件驱动各被测对象,从而实现在不同测试对象之间复用同一个通用测试激励文件,即实现了测试激励的复用;宏定义文件用于描述各被测对象之间的不同测试激励,采用通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象,而无需为各被测对象均编写一套完整的测试激励,采用顶层激励描述相同,底层驱动不同的方式,实现了同一测试激励,在不同测试对象之间的复用,减少编码量和编码时间,提高编码效率,几乎不存在重复性描述,便于测试激励的维护;而且,不同的测试激励通过宏定义的方式抽象化描述,整合了多方面类似的抽象的激励描述,使测试激励描述更加简洁方便,且便于人机交互,进一步提高编码效率,有利于高效地完成测试工作。
进一步的,测试模块320还包括:加载单元,用于将所述通用测试激励文件和宏定义文件加载至对应的各被测对象的编译环境中;编译单元,用于在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码;测试单元,用于执行所述目标代码,生成综合测试激励,并在所述综合测试激励下测试各被测对象,得到各被测对象的测试结果;比较单元,用于将各被测对象的测试结果与对应的预期测试结果进行比较,得到测试结论。
进一步的,宏定义文件,包括:定义测试激励的通用宏名,以及扩展自通用宏名的、定义被测对象的测试激励的字符串;
相应地,编译单元可以具体用于:在编译环境中,当编译到所述通用测试激励文件中的测试激励的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的测试激励的字符串,对所述通用测试激励文件中的测试激励的通用宏名进行替换,生成目标代码。
进一步的,宏定义文件,包括:定义描述序列的通用宏名,以及扩展自通用宏名的、定义被测对象的描述序列的字符串;
相应地,编译单元还可以用于:在编译环境中,当编译到所述通用测试激励文件中的描述序列的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的描述序列的字符串,对所述通用测试激励文件中的描述序列的通用宏名进行替换,生成目标代码;其中,描述序列由预设数量的基本激励单元按照设定顺序排列获得,用于描述各被测对象的不同测试流程。
进一步的,宏定义文件,包括:定义时间间隙的通用宏名,以及扩展自通用宏名的、定义被测对象的时间间隙的字符串;
相应地,编译单元还可以用于:在编译环境中,当编译到所述通用测试激励文件中的时间间隙的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的时间间隙的字符串,对所述通用测试激励文件中的时间间隙的通用宏名进行替换,生成目标代码;其中,时间间隙的字符串用于建立与对应的被测对象适配的、发送激励的时间间隙。
进一步的,宏定义文件,包括:定义初始化流程的通用宏名,以及扩展自通用宏名的、定义被测对象的初始化流程的字符串;
相应地,编译单元还可以用于:在编译环境中,当编译到所述通用测试激励文件中的初始化流程的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的初始化流程的字符串,对所述通用测试激励文件中的初始化流程的通用宏名进行替换,生成目标代码;其中,初始化流程用于初始化被测对象的配置流程。
进一步的,宏定义文件,包括:定义被测对象特性的通用宏名,以及扩展自通用宏名的、定义被测对象的特性的字符串;
相应地,编译单元还可以用于:在编译环境中,当编译到所述通用测试激励文件中的被测对象特性的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的特性的字符串,对所述通用测试激励文件中的被测对象特性的通用宏名进行替换,生成目标代码;其中,所述被测对象特性包括访问深度和/或访问宽度。
本发明实施例所提供的测试激励多平台复用装置可执行本发明任意实施例所提供的应用于提供测试服务的设备的测试激励多平台复用方法,具备执行方法相应的功能模块和有益效果。
实施例四
参照图4,图4是本发明实施例四提供的一种测试设备的结构示意图,如图4所示,该测试设备包括处理器410、存储器420、输入装置430和输出装置440;测试设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;测试设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的测试激励多平台复用方法对应的程序指令/模块(例如,测试激励多平台复用装置中的获取模块310和测试模块320)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行测试设备的各种功能应用以及数据处理,即实现上述的测试激励多平台复用方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至测试设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与测试设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现一种测试激励多平台复用方法,一种测试激励多平台复用方法包括:
获取多个被测对象对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;所述通用测试激励文件用于描述各被测对象之间的相同测试激励,所述宏定义文件用于描述各被测对象之间的不同测试激励;
采用所述通用测试激励文件和宏定义文件,分别驱动对应的各被测对象,以在综合测试激励下测试各被测对象;所述综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机指令可执行不限于如上的方法操作,还可以执行本发明任意实施例所提供的测试激励多平台复用方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述测试激励多平台复用装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种测试激励多平台复用方法,其特征在于,包括:
判断多个被测对象的测试激励中是否包括至少两种类型的测试激励;
若是,根据所述测试激励是否具有相同的主流程,预先对所述多个被测对象进行相似性划分;
将所述测试激励具有相同主流程的被测对象当作相似的被测对象,划分到同一个相似对象集合;
获取所述多个被测对象所属的相似对象集合对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;所述通用测试激励文件用于描述各被测对象之间的相同测试激励,所述宏定义文件用于描述各被测对象之间的不同测试激励;所述各被测对象的特性类似以及驱动接口类似;
将所述通用测试激励文件和宏定义文件加载至对应的各被测对象的编译环境中;
在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码;
执行所述目标代码,生成综合测试激励,并在所述综合测试激励下测试各被测对象,得到各被测对象的测试结果;其中,所述综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励;
将各被测对象的测试结果与对应的预期测试结果进行比较,得到测试结论。
2.根据权利要求1所述的方法,其特征在于,所述宏定义文件,包括:定义测试激励的通用宏名,以及扩展自所述通用宏名的、定义被测对象的测试激励的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的测试激励的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的测试激励的字符串,对所述通用测试激励文件中的测试激励的通用宏名进行替换,生成目标代码。
3.根据权利要求1所述的方法,其特征在于,所述宏定义文件,包括:定义描述序列的通用宏名,以及扩展自所述通用宏名的、定义被测对象的描述序列的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的描述序列的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的描述序列的字符串,对所述通用测试激励文件中的描述序列的通用宏名进行替换,生成目标代码;
其中,所述描述序列由预设数量的基本激励单元按照设定顺序排列获得,用于描述各被测对象之间的不同测试流程。
4.根据权利要求1所述的方法,其特征在于,所述宏定义文件,包括:定义时间间隙的通用宏名,以及扩展自所述通用宏名的、定义被测对象的时间间隙的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的时间间隙的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的时间间隙的字符串,对所述通用测试激励文件中的时间间隙的通用宏名进行替换,生成目标代码;
其中,所述时间间隙的字符串用于建立与对应的被测对象适配的、发送激励的时间间隙。
5.根据权利要求1所述的方法,其特征在于,所述宏定义文件,包括:定义初始化流程的通用宏名,以及扩展自所述通用宏名的、定义被测对象的初始化流程的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的初始化流程的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的初始化流程的字符串,对所述通用测试激励文件中的初始化流程的通用宏名进行替换,生成目标代码;
其中,所述初始化流程用于初始化被测对象的配置流程。
6.根据权利要求1所述的方法,其特征在于,所述宏定义文件,包括:定义被测对象特性的通用宏名,以及扩展自所述通用宏名的、定义被测对象的特性的字符串;
相应地,所述在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码,包括:
在编译环境中,当编译到所述通用测试激励文件中的被测对象特性的通用宏名时,调用所述宏定义文件中扩展自所述通用宏名的、定义被测对象的特性的字符串,对所述通用测试激励文件中的被测对象特性的通用宏名进行替换,生成目标代码;
其中,所述被测对象特性包括访问深度和/或访问宽度。
7.一种测试激励多平台复用装置,其特征在于,包括:
划分模块,用于判断多个被测对象的测试激励中是否包括至少两种类型的测试激励;若是,根据所述测试激励是否具有相同的主流程,预先对所述多个被测对象进行相似性划分;将所述测试激励具有相同主流程的被测对象当作相似的被测对象,划分到同一个相似对象集合;
获取模块,用于获取所述多个被测对象所属的相似对象集合对应的通用测试激励文件,以及各被测对象分别对应的宏定义文件;所述通用测试激励文件用于描述各被测对象之间的相同测试激励,所述宏定义文件用于描述各被测对象之间的不同测试激励;所述各被测对象的特性类似以及驱动接口类似;
测试模块,包括:
加载单元,用于将所述通用测试激励文件和宏定义文件加载至对应的各被测对象的编译环境中;
编译单元,用于在编译环境中,编译所述通用测试激励文件和宏定义文件,生成目标代码;
测试单元,用于执行所述目标代码,生成综合测试激励,并在所述综合测试激励下测试各被测对象,得到各被测对象的测试结果;其中,所述综合测试激励包括各被测对象之间的相同测试激励以及各被测对象与其它被测对象之间的不同测试激励;
比较单元,用于将各被测对象的测试结果与对应的预期测试结果进行比较,得到测试结论。
8.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的测试激励多平台复用方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的测试激励多平台复用方法。
CN201910465583.8A 2019-05-30 2019-05-30 测试激励多平台复用方法、装置、设备及存储介质 Active CN112015633B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910465583.8A CN112015633B (zh) 2019-05-30 2019-05-30 测试激励多平台复用方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910465583.8A CN112015633B (zh) 2019-05-30 2019-05-30 测试激励多平台复用方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112015633A CN112015633A (zh) 2020-12-01
CN112015633B true CN112015633B (zh) 2023-11-17

Family

ID=73501064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910465583.8A Active CN112015633B (zh) 2019-05-30 2019-05-30 测试激励多平台复用方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112015633B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114580344B (zh) * 2022-04-24 2022-08-16 飞腾信息技术有限公司 测试激励生成方法、验证方法、验证系统及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0081653A2 (en) * 1981-11-30 1983-06-22 International Business Machines Corporation Method of recording and reading optimum density bar code
CN104881396A (zh) * 2015-06-05 2015-09-02 南京南瑞继保电气有限公司 图形化程序的编译文件形成方法
CN108845952A (zh) * 2018-08-17 2018-11-20 成都成电光信科技股份有限公司 一种基于测试用例脚本的航电fc数据激励方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209851B2 (en) * 2003-02-14 2007-04-24 Advantest America R&D Center, Inc. Method and structure to develop a test program for semiconductor integrated circuits
US20170277836A1 (en) * 2016-03-22 2017-09-28 International Business Machines Corporation Identifying Professional Incentive Goal Progress and Contacts for Achieving Goal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0081653A2 (en) * 1981-11-30 1983-06-22 International Business Machines Corporation Method of recording and reading optimum density bar code
CN104881396A (zh) * 2015-06-05 2015-09-02 南京南瑞继保电气有限公司 图形化程序的编译文件形成方法
CN108845952A (zh) * 2018-08-17 2018-11-20 成都成电光信科技股份有限公司 一种基于测试用例脚本的航电fc数据激励方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于谐振腔的模式激励研究;田成辉;《中国优秀硕士学位论文全文数据库 (信息科技辑)》(第03期);I135-90 *

Also Published As

Publication number Publication date
CN112015633A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
JP6307140B2 (ja) セーフティクリティカルソフトウェア自動要求ベーステストケース生成のためのシステムおよび方法
CN108958714B (zh) 业务组件式开发方法、装置、计算机设备及存储介质
US8434058B1 (en) Integrated system and method for validating the functionality and performance of software applications
KR20080068385A (ko) 소프트웨어 테스트 시스템, 방법 및 그 방법을 실행하기위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
CN114546738B (zh) 服务器通用测试方法、系统、终端及存储介质
CN109766261B (zh) 覆盖测试方法、装置、计算机设备和存储介质
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN110750458A (zh) 大数据平台测试方法、装置、可读存储介质及电子设备
CN108111364B (zh) 一种业务系统的测试方法及装置
CN112416318B (zh) 微服务开发方法、装置、存储介质及电子设备
CN108491321A (zh) 测试用例范围确定方法、装置及存储介质
CN111966597B (zh) 测试数据生成方法及装置
CN105302717A (zh) 一种大数据平台的检测方法及装置
CN111124872A (zh) 基于差异代码分析的分支检测方法、装置及存储介质
CN112181749A (zh) 硬件测试方法、装置、电子设备和存储介质
CN111459796A (zh) 自动化测试方法、装置、计算机设备和存储介质
Liu et al. A General Framework to Identify Software Components from Execution Data.
US7797684B2 (en) Automatic failure analysis of code development options
CN112015633B (zh) 测试激励多平台复用方法、装置、设备及存储介质
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
CN113886221B (zh) 测试脚本生成方法、装置、存储介质及电子设备
CN116467188A (zh) 一种多环境场景下的通用本地复现系统和方法
CN112100086B (zh) 软件自动化测试方法、装置、设备和计算机可读存储介质
CN113726610A (zh) 基于路由协议的ui自动化测试方法、装置、设备及介质

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