回归测试方法、系统、设备及可读存储介质与流程

文档序号:24194785发布日期:2021-03-09 16:25阅读:109来源:国知局
回归测试方法、系统、设备及可读存储介质与流程

1.本申请涉及集成电路验证技术领域,具体而言,涉及一种回归测试方法、系统、设备及可读存储介质。


背景技术:

2.当今的soc(system-on-a-chip,系统级芯片)设计越发复杂,从设计的层次来看,soc由众多子系统所构成,而每个子系统又由多个ip(intellectual property,知识产权)核所构成。与之对应,验证团队需要分别搭建相应的子系统验证环境,以及在各自子系统下的ip验证环境来对整个soc芯片进行分层验证。
3.无论是子系统验证环境,还是其下的ip验证环境都需要通过回归测试进行验证的收敛。不同的子系统往往交由不同的验证团队负责验证,验证团队会根据该子系统以及其下ip的验证需求,搭建属于该子系统的回归测试环境。
4.由于不同子系统的验证需求存在差异,导致不同子系统的回归测试环境互相独立,不能兼容,从而产生以下问题:
5.1.从soc层面对项目的全局性调整需要对每个子系统的回归测试环境进行修改。比如项目的切换,验证工具的版本更新等都需要每个验证团队针对各自的回归测试环境做专门调整,这样既增加了各回归测试环境改动的重复工作量,又容易导致不同回归测试环境设置的失配。
6.2.从回归测试所支持的功能而言,如果需要新增某项功能,比如加入对回归测试无效数据的回收机制,每个验证团队需要根据各自的回归测试环境中的流程结构决定如何嵌入新增的功能。对于不同子系统的回归测试环境而言,内部的流程结构控制可能完全不同,因此新功能的加入对于各子系统的回归测试环境将是定制化的工作,这将增加回归测试环境支持该新功能的开发难度。


技术实现要素:

7.本申请实施例的目的在于提供一种回归测试方法、系统、设备及可读存储介质,用以解决上述问题。
8.本申请实施例提供了一种回归测试方法,包括:配置回归测试环境参数,并根据待测试子系统对应的环境配置信息建立回归测试环境的数据库;根据所述待测试子系统的回归运行配置生成所述待测试子系统对应的各子环境的命令集合,调用各所述子环境的目标线程执行各所述子环境的命令集合中的命令。
9.在上述实现过程中,将所有子系统测试时所共有的回归测试环境参数配置过程和回归测试环境的数据库建立过程提取出来,首先进行回归测试环境参数和回归测试环境的数据库这一所有子系统测试时所共有的基本环境的构建。然后,根据待测试子系统独特的回归运行配置,生成待测试子系统对应的各子环境的命令集合,调用各子环境的目标线程执行各所述子环境的命令集合中的命令,从而实现对于该子系统的测试。通过本申请实施
例的方案,由于首先进行回归测试环境参数和回归测试环境的数据库这一所有子系统测试时所共有的基本环境的构建,该过程是所有子系统测试时所共有的,因此实现该方式的脚本可被所有子系统所复用,相当于实现了在所有子系统测试中,soc层面的回归测试环境和流程结构的统一,从而在一旦出现soc层面的回归测试环境修改需求,或者需要新增某项回归测试所支持的功能,则只需要在该实现回归测试环境参数和回归测试环境的数据库的脚本中进行相应的更新调整即可,不再需要对每个子系统的回归测试环境进行针对性的修改,也不再需要每个验证团队都根据各自的回归测试环境中的流程结构各自决定如何嵌入新增的功能,从而降低了回归测试的工作量,避免了不同回归测试环境设置的失配问题,同时也降低了回归测试环境支持新功能的开发难度。
10.进一步地,所述环境配置信息包括:项目名称;所述配置回归测试环境参数,包括:根据所述项目名称,确定出与所述项目名称对应的环境配置参数,根据所述环境配置参数建立所述回归测试环境。
11.应当理解的是,在实际应用中,通常不同的项目中,所需的回归测试环境参数可能会存在区别,而同一项目下的各子系统,其环境所需的配置参数是统一的。为此,为了提高本申请实施例中所提供的方案的通用性,在本申请实施例中可以预先为不同项目配置好对应的环境配置参数,并根据待测试子系统所在项目的项目名称,从而确定出与该项目名称对应的环境配置参数,根据环境配置参数建立回归测试环境。这样,即使得本申请的方案可以通用于不同项目中,从而具有更好的通用性。
12.进一步地,所述环境配置信息包括:环境数据库类型以及所述待测试子系统的环境名称;所述方法还包括:所述环境数据库类型和所述环境名称,从历史运行的数据库中确定出符合所述环境数据库类型和所述环境名称的目标数据库;根据预设的所需数据库数量,从所有目标数据库中清除掉创建时间最久的目标数据库及其所运行的回归测试结果,使所述目标数据库的数量为所述所需数据库数量。
13.在实际应用中,随着回归测试的不断进行,系统所保留的数据库随着数据库建立时间的变久,其内的数据具有的参考价值往往会变弱。为此,在上述实现过程中,通过子系统所需的环境数据库类型以及所述待测试子系统的环境名称,可以查找到历史运行的数据库中符合该环境数据库类型和环境名称的目标数据库,进而通过所需数据库数量清除掉创建时间最久的目标数据库及其所运行的回归测试结果,使目标数据库的数量为所需数据库数量。这样就可以在满足待测试子系统的测试需求,充分利用已有的数据库资源的同时,避免造成磁盘存储空间的浪费以及磁盘存储空间的溢出问题。
14.进一步地,所述回归运行配置包括:所述待测试子系统的各子环境名称、各所述子环境名称对应的回归测试命令集合;对应的,根据所述待测试子系统的回归运行配置生成所述待测试子系统对应的各子环境的命令集合,包括:根据各所述子环境名称对应的回归测试命令集合,生成所述子环境名称所表征的子环境的命令集合中的回归测试命令;对应的,所述调用各所述子环境的目标线程执行各所述子环境的命令集合中的命令包括:调用各所述子环境的目标线程执行各所述子环境的命令集合中的回归测试命令。
15.应理解,在实际应用中,一个子系统内,针对不同于的子环境,往往需要进行不同的运行配置,执行不同的测试操作。为此,可以在待测试子系统的回归运行配置中定义好待测试子系统的各子环境名称、各子环境名称对应的回归测试命令集合,从而实现针对带测
试子系统不同子环境的命令集合中的回归测试命令的配置以供各子环境的目标线程执行,实现测试。这样,由于每个子环境对应的回归测试命令配置在各子环境对应的命令集合中,从而在回归测试设备的最大线程并发数的许可范围内,可以实现各个子环境对应的目标线程的并发处理,从而可以有效提高回归测试效率。
16.进一步地,所述回归运行配置包括:所述待测试子系统的各子环境名称、各所述子环境名称对应的回归类型;所述调用各所述子环境的目标线程,包括:将各所述子环境名称对应的回归类型作为各所述子环境的目标线程的输入参数,以调用各所述子环境的目标线程。
17.应理解,在实际应用过程中,同一子环境中实现不同回归类型的测试时,其所对应需要的命令是不同的。为此,在本申请实施例中,通过将子环境名称对应的回归类型作为各所述子环境的目标线程的输入参数,以调用子环境的目标线程,这就使得该目标线程在调取该子环境的命令集合中的命令时,得以正确调用所需的命令,确保回归测试的正确执行。
18.进一步地,所述方法还包括:定义规范化的数据访问接口;所述规范化的数据访问接口用以存放回归测试结果;输出回归测试环境变量;所述回归测试环境变量为定义规范化的数据访问接口得到的指示所述回归测试结果的存放路径的信息;根据所述回归测试环境变量存放回归测试结果;其中,所述回归测试结果为各所述子环境的目标线程的执行结果。
19.应理解,现有的回归测试方式中,由于各子系统的回归测试环境是互相独立的,各验证团队都是根据自身的开发逻辑提供的回归测试结果的数据访问接口,这就使得各验证团队提供的回归测试结果的数据访问接口形式各异,因此针对某个子系统回归测试环境开发的测试结果分析脚本,无法复用到其他子系统中,造成各子系统的验证团队需要针对自己的数据访问接口形式开发各自的回归测试结果分析脚本,增加了对回归测试结果进行分析的时间成本。
20.而通过上述实现过程,通过定义规范化的数据访问接口,从而使得各个子系统都按照同一规范生成的数据访问接口进行回归测试结果的存放,这就实现了回归测试结果的数据访问接口形式的统一,从而使得针对任一个子系统回归测试环境开发的测试结果分析脚本,都可以复用到其他子系统中,节约了对回归测试结果进行分析的时间成本。
21.进一步地,所述回归测试环境变量包括:所述回归测试环境的数据库的标签名和所述数据库中的根目录名;或,所述回归测试环境的数据库的标签名、所述数据库中的根目录名、和由所述根目录名中内容注册的网站地址名。
22.上述方式中,通过回归测试环境的数据库的标签名和数据库中的根目录名作为回归测试环境变量,使得在调用各子环境的目标线程执行各子环境的命令集合中的命令后,得以按照回归测试环境变量将执行结果存入相应数据库的相应根目录中,从而便于进行分析。此外,在回归测试环境变量存在由根目录名中内容注册的网站地址名时,还可以实现通过网站实现对于回归测试结果的访问,更便于实现对回归测试结果的分析。
23.进一步地,所述回归运行配置包括:所述待测试子系统的各子环境名称、各所述子环境名称对应的回归类型;所述方法还包括:根据所述回归测试环境变量、各子环境名称以及各所述子环境名称对应的回归类型,生成各子环境对应的规范化的数据访问接口;对应的,根据所述回归测试环境变量存放回归测试结果,包括:各所述子环境的目标线程执行命
令后,将执行结果按照各子环境对应的规范化的数据访问接口进行保存,并提供所述规范化的数据访问接口的访问路径。
24.应理解,对于一个子系统而言,其可能需要对多个子环境进行回归测试。而在回归测试环境变量中,其粒度仅定义到了子系统级别,即仅明确了子系统的回归结果的存放路径(即数据访问接口路径),但是对于子系统下的每一个进行回归测试的子环境而言,其粒度并不够。为此,通过上述实现过程,即可明确出子系统下的每一个进行回归测试的子环境的规范化数据访问接口路径,使得进行回归测试结果的分析时,能够更为明确每个回归测试结果与对应的子环境的关系,更便于进行分析。
25.进一步地,在根据待测试子系统对应的环境配置信息建立回归测试环境的数据库之前,所述方法还包括:根据所述待测试子系统的唯一标识,从预先配置的soc回归测试环境配置表中,查找出与所述唯一标识对应的所述待测试子系统对应的环境配置信息。
26.上述实现过程中,通过soc回归测试环境配置表的形式来实现对于待测试子系统对应的环境配置信息的管理,这样就使得用户在soc层面,只需维护soc回归测试环境配置表即可,易于进行配置信息的管理和维护。
27.进一步地,在根据所述待测试子系统的回归运行配置生成所述待测试子系统对应的各子环境的命令集合之前,所述方法还包括:根据预先配置的所述待测试子系统的回归运行配置表中,获取所述待测试子系统的回归运行配置。
28.上述实现过程中,通过回归运行配置表的形式来实现对于待测试子系统对应的回归运行配置的管理,这样就使得每一个子系统的验证团队只需维护回归运行配置表即可,易于进行子系统对应的回归运行配置的管理和维护。
29.本申请实施例还提供了一种回归测试系统,包括:回归测试环境配置层和回归测试运行层;所述回归测试环境配置层,用于配置回归测试环境参数,并根据待测试子系统对应的环境配置信息建立回归测试环境的数据库;所述回归测试运行层,用于根据所述待测试子系统的回归运行配置生成所述待测试子系统对应的各子环境的命令集合,调用各所述子环境的目标线程执行各所述子环境的命令集合中的命令。
30.在上述实现过程中,将所有子系统测试时所共有的回归测试环境参数配置过程和回归测试环境的数据库建立过程提取出来通过回归测试环境配置层实现,从而在测试时,首先由回归测试环境配置层进行回归测试环境参数和回归测试环境的数据库这一所有子系统测试时所共有的基本环境的构建。然后,根据待测试子系统独特的回归运行配置,由待测试子系统对应的回归测试运行层生成待测试子系统对应的各子环境的命令集合,调用各子环境的目标线程执行各所述子环境的命令集合中的命令,从而实现对于该子系统中所有子环境的测试。这样,由于回归测试环境配置层的功能是所有子系统测试时所共通需要的,因此回归测试环境配置层可被所有子系统所复用,实现了在所有子系统测试中,soc层面的回归测试环境和流程结构的统一,从而在一旦出现soc层面的回归测试环境修改需求,或者需要新增某项回归测试所支持的功能,则只需要在该回归测试环境配置层中进行相应的更新调整即可,不再需要对每个子系统的回归测试环境进行针对性的修改,也不再需要每个验证团队都根据各自的回归测试环境中的流程结构各自决定如何嵌入新增的功能,从而降低了回归测试的工作量,避免了不同回归测试环境设置的失配问题,同时也降低了回归测试环境支持新功能的开发难度。
31.本申请实施例还提供了一种回归测试设备,包括:处理器、存储器及通信总线;所述通信总线用于实现所述处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的方法。
32.本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的方法。
附图说明
33.为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
34.图1为本申请实施例提供的一种回归测试方法的流程示意图;
35.图2为本申请实施例提供的一种soc回归测试环境配置表的示意图;
36.图3为本申请实施例提供的一种回归运行配置表的示意图;
37.图4为本申请实施例提供的一种回归测试系统的结构示意图;
38.图5为本申请实施例提供的一种回归测试环境配置层的执行流程示意图;
39.图6为本申请实施例提供的一种回归测试运行层的执行流程示意图;
40.图7为本申请实施例提供的一种回归测试设备的结构示意图。
具体实施方式
41.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
42.实施例一:
43.为了解决现有soc中对于各子系统进行回归测试时,存在的从soc层面对项目的全局性调整,需要对每个子系统的回归测试环境进行修改,既增加了各回归测试环境改动的重复工作量,又容易导致不同回归测试环境设置的失配的问题,以及存在的针对回归测试所支持的功能,如果需要新增某项功能,每个验证团队都需要根据各自的回归测试环境中的流程结构决定如何嵌入新增的功能,从而使得新功能的加入对于各子系统的回归测试环境成为定制化的工作,增加了回归测试环境支持该新功能的开发难度的问题。本申请实施例中提供了一种回归测试方法,该方法中将所有子系统测试时所共有的回归测试环境参数配置过程和回归测试环境的数据库配置过程提取出来首先进行执行,从而使得实现该过程的脚本可被所有子系统所复用,实现在所有子系统测试中,soc层面的回归测试环境和流程结构的统一,从而给得以解决前述问题。
44.可参见图1所示,图1为本申请实施例中提供的一种回归测试方法,包括:
45.s101:配置回归测试环境参数,并根据待测试子系统对应的环境配置信息建立回归测试环境的数据库。
46.应理解,该过程是所有子系统测试时都会进行的过程,可以通过统一的脚本实现。
47.还应理解,在实际应用中,通常不同的项目中,所需的回归测试环境参数可能会存在区别,而同一项目下的各子系统,其环境配置参数是统一的。因此,为了提高本申请实施
例中所提供的方案的通用性,在本申请实施例中可以预先为不同项目配置好对应的环境配置参数,并在待测试子系统对应的环境配置信息,配置有该待测试子系统所属项目的项目名称。这样,即可根据项目名称,确定出与项目名称对应的环境配置参数,进而根据该环境配置参数配置回归测试环境。
48.需要理解的是,若仅需采用本申请实施例所提供的方案来实现针对某一个项目的回归测试,那么则可以在脚本中直接配置好该项目的环境配置参数,从而不再需要根据项目名称进行环境配置参数的确定。
49.在本申请实施例中,待测试子系统的环境配置信息可以包括:待测试子系统所需求的环境数据库类型以及待测试子系统的环境名称。
50.应理解,在实际应用中,对于一个环境而言,一般需要至少保留一定次数的过往的回归测试数据用于参考或者用于覆盖率统计的数据整合。但是,过多的历史回归测试数据(即历史运行的数据库中的数据)又会占用大量的磁盘存储空间,从而导致实际用于最新一轮回归测试的磁盘存储空间不足,导致回归测试失败。
51.为此,在本申请实施例的一种可选实施方式中,可以根据环境数据库类型和环境名称,从历史运行的数据库中确定出符合环境数据库类型和环境名称的目标数据库,进而根据预设的所需数据库数量,从所有目标数据库中清除掉创建时间最久的目标数据库及其所运行的回归测试结果,使目标数据库的数量为所述所需数据库数量。
52.这样,就可以在满足待测试子系统的测试需求(即保留足够的历史运行的数据库),充分利用已有的数据库资源的同时,还可以避免造成磁盘存储空间的浪费以及磁盘存储空间的溢出问题。
53.需要说明的是,所谓磁盘存储空间的溢出,是指磁盘存储空间不足以承载本轮回归测试所产生的数据的情况。
54.在本申请实施例中,可以在清除数据库后,依据环境数据库类型以及待测试子系统的环境名称,建立本次回归测试环境需要的数据库,以用作待测试子系统本次的回归测试的运行。
55.应理解,在本申请实施例中,也可以先依据环境数据库类型以及待测试子系统的环境名称,建立本次回归测试环境需要的数据库,再进行历史运行的数据库的清除。
56.应理解,数据库的建立方式可采用现有方式实现,在本申请实施例中不做赘述。
57.还需要说明的是,由于随着回归测试的不断进行,回归测试系统所具有的数据库中,随着数据库建立时间的变久,其内的数据具有的参考价值往往会变弱。因此,在本申请实施例的一种可行实施方式中,可以根据环境数据库类型和环境名称,仅保留所需数据库数量的相应的数据库及其运行的回归测试结果作为必要的参考,并另外建立新的数据库,用于进行该待测试子系统的本轮的回归测试。
58.应当理解的是,环境配置信息并不限于各子系统的环境数据库类型以及环境名称,其具体内容可以由根据实际需要进行设定。
59.需要说明的是,在本申请实施例中,可以通过在脚本中定义输入参数(各输入参数的内容配置为各环境配置信息),从而通过运行时的命令,调用指定输入参数的内容来实现对于各子系统的环境配置信息的获取。
60.考虑到实际应用过程中,用户往往希望更易于实现对于环境配置信息的维护与修
改,因此在本申请实施例中,也可以通过soc回归测试环境配置表的形式来实现对于各个子系统的环境配置信息的管理,例如参见图2所示。即可以将各个子系统的环境配置信息按照各个子系统的分别保存在soc回归测试环境配置表的不同位置,从而使得用户只需维护soc回归测试环境配置表即可实现对于各个子系统的环境配置信息的维护与修改。
61.s102:根据待测试子系统的回归运行配置生成待测试子系统对应的各子环境的命令集合,调用各子环境的目标线程执行各子环境的命令集合中的命令。
62.在本申请实施例中,除了上述可以由所有子系统共用的脚本外,每一个子系统还配置有一个专用于该子系统的实现测试的运行脚本。
63.待测试子系统的运行脚本可以根据待测试子系统的回归运行配置生成待测试子系统对应的各子环境的命令集合,调用各子环境的目标线程执行各子环境的命令集合中的命令,从而实现对于各个子环境的回归测试。
64.类似的,本申请实施例中待测试子系统的回归运行配置可以通过在运行脚本中定义输入参数(各输入参数的内容配置为各个回归运行配置),从而通过运行时的命令,调用指定输入参数的内容来实现对于各子系统的环境配置信息的获取。
65.此外,为了使得用户更易于实现对于子系统的回归运行配置的维护与修改,在本申请实施例中也可以通过回归运行配置表的形式来实现对于子系统的回归运行配置的管理,例如参见图3所示。
66.在本申请实施例中,待测试子系统的回归运行配置可以包括:待测试子系统的各子环境名称、各子环境名称对应的回归测试命令集合。从而可以根据各子环境名称对应的回归测试命令集合,生成子环境名称所表征的子环境的命令集合中的回归测试命令,进而可以调用各子环境的目标线程,执行各子环境的命令集合中的回归测试命令。
67.需要说明的是,本申请实施例中所述的生成子环境名称所表征的子环境的命令集合中的回归测试命令的过程,是将回归测试命令集合从原本的保存地获取到可被目标线程调用的命令集合(即命令池)中的过程。比如,当回归运行配置通过输入参数配置时,该过程即是提取定义有回归测试命令集合的输入参数的内容到命令集合中的过程;当回归运行配置通过回归运行配置表管理时,该过程即是复制回归测试命令集合到命令集合中的过程。
68.应当理解的是,在本申请实施例中,各目标线程与子环境之间预先定义好了对应关系,从而可以根据各子环境名称找到对应的目标线程。
69.需要说明的是,所谓子环境是指,进行待测试子系统的子系统级回归测试时的各个环境(如图3中环境a、b等),以及进行待测试子系统的ip级回归测试时的各个ip环境(如图3中环境a、b等)。
70.需要注意的是,在本申请实施例中,待测试子系统的回归运行配置还可以包括:各子环境名称对应的回归类型。在实际应用过程中,一个子环境内可能仅对应一个需测试的回归类型,但也可能存在多个需测试的回归类型。为此,在本申请实施例中,一个子环境可以对应多个目标线程,且每个目标线程可以对应该子环境中的一个回归类型,从而实现针对子环境中每一个回归类型的回归测试。
71.在本申请实施例中,由于每个子环境对应的回归测试命令配置在各子环境对应的命令集合中,可以被各子环境对应的目标线程所执行。因此只要在回归测试设备的最大线程并发数的许可范围内,本申请实施例中可以允许多个目标线程并发处理。比如,回归测试
设备的最大线程并发数为128,那么最多可以允许128个目标线程分别执行该目标线程对应的命令。
72.需要注意的是,由于本申请实施例中一个子环境可能存在多个回归类型时,因此该子环境的命令集合中可能存在分别对应多个回归类型的命令集。因此,为了实现对于目标线程对应的命令的准确查找,在本申请实施例中可以将各子环境名称对应的回归类型作为各子环境的目标线程的输入参数,以调用各子环境的目标线程。这样,当目标线程在命令集合中调用命令时,通过解析该目标线程的输入参数,即可准确确定出该子环境的命令集合中需要给该目标线程执行的命令为哪些。
73.需要说明的是,现有的回归测试方式中,由于各子系统的回归测试环境是互相独立的,各验证团队都是根据自身的开发逻辑提供的回归测试结果的数据访问接口,这就使得各验证团队提供的回归测试结果的数据访问接口形式各异,因此针对某个子系统回归测试环境开发的测试结果分析脚本,无法复用到其他子系统中,造成各子系统的验证团队需要针对自己的数据访问接口形式开发各自的回归测试结果分析脚本,增加了对回归测试结果进行分析的时间成本。
74.为此,在本申请实施例中,在配置回归测试环境参数,并根据待测试子系统对应的环境配置信息建立回归测试环境数据库的同时,还可以定义规范化的数据访问接口,从而输出回归测试环境变量,使得待测试子系统对应的运行脚本能够根据回归测试环境变量存放回归测试结果。
75.需要说明的是,所谓规范化的数据访问接口是指,数据访问接口是按照预先定义好的逻辑提供的用以存放回归测试结果的路径,比如可以是回归测试环境的数据库的标签名-数据库中的根目录名这样的形式。回归测试环境变量为定义规范化的数据访问接口得到的指示回归测试结果的存放路径的信息,而回归测试结果为待测试子系统的各子环境的目标线程的执行结果。
76.这样,就实现了回归测试结果的数据访问接口形式的统一,从而使得针对任一个子系统回归测试环境开发的测试结果分析脚本,都可以复用到其他子系统中,节约了对回归测试结果进行分析的时间成本。
77.在本申请实施例中,回归测试环境变量可以包括回归测试环境的数据库的标签名-数据库中的根目录名,其可以指示回归测试结果存放到哪个数据库的哪个根目录下。
78.考虑到对回归测试结果进行分析的便利性,本申请实施例中可以将数据库的根目录中的内容注册到网站上,从而得到网站地址名。该网站地址名也可以作为回归测试环境变量一并提供给待测试子系统对应的运行脚本。
79.应理解,对于一个子系统而言,其可能需要对多个子环境进行回归测试。而在回归测试环境变量中,其粒度仅定义到了子系统级别,即仅明确了子系统的回归结果的存放路径(即数据访问接口路径),但是对于子系统下的每一个进行回归测试的子环境而言,其粒度并不够。
80.为此,在本申请实施例中,可以根据回归测试环境变量、各子环境名称以及各子环境名称对应的回归类型,生成各子环境对应的规范化的数据访问接口。相应的,各子环境的目标线程执行命令后,将执行结果按照各子环境对应的规范化的数据访问接口进行保存,并提供规范化的数据访问接口的访问路径。
81.示例性的,假设回归测试环境变量包括数据库的标签名a,数据库中的根目录名b。待测试子系统的回归运行配置中包括子环境a、对应回归类型1和2,子环境b、对应回归类型1。
82.那么,可以生成对应子环境a、回归类型1的规范化的数据访问接口:数据库a-根目录b-一级子目录a-二级子目录1;可以生成对应子环境a、回归类型2的规范化的数据访问接口:数据库a-根目录b-一级子目录a-二级子目录2;可以生成对应子环境b、回归类型1的规范化的数据访问接口:数据库a-根目录b-一级子目录b-二级子目录1。
83.此时待测试子系统的子环境a中回归类型1对应的目标线程的执行结果即保存到数据库a下的根目录b的一级子目录a的二级子目录1中,而待测试子系统的子环境a中回归类型2对应的目标线程的执行结果即保存到数据库a下的根目录b的一级子目录a的二级子目录2中,而待测试子系统的子环境b中回归类型1对应的目标线程的执行结果即保存到数据库a下的根目录b的一级子目录b的二级子目录1中。
84.需要理解的是,在将各子环境的目标线程执行命令后,将执行结果按照各子环境对应的规范化的数据访问接口的路径进行保存后,可以提供相应的规范化的数据访问接口的访问路径供用户访问。比如上例中,对于保存的执行结果,即可提供访问路径:数据库a-根目录b-一级子目录a-二级子目录1。
85.应当理解的是,访问路径处的内容可以注册到网站上,从而得到网站地址名。该网站地址名可以提供给用户以便于用户进行查阅。
86.需要理解的是,为了实现将各目标线程的执行结果按照各子环境对应的规范化的数据访问接口进行保存,本申请实施例中可以预先配置好各子环境的各回归类型对应的注册命令集合,该注册命令集合作为回归运行配置进行管理,从而可以根据回归运行配置生成各子环境名称所表征的子环境的命令集合中与各回归类型对应的注册命令。
87.需要理解的是,在本申请实施例中,各回归测试命令和注册命令的先后执行顺序可以在回归运行配置中预先定义好,以确保方案的顺利执行。
88.与前述测试命令的执行类似的,目标线程中可以将回归类型以及回归测试环境变量作为输入参数,从而通过执行子环境中相应的注册命令,生成各子环境对应的规范化的数据访问接口,将执行结果保存到所生成的规范化的数据访问接口中。
89.应理解,在本申请实施例中,也可以按照现有方式,由各子系统的验证团队自主提供回归测试结果的数据访问接口。
90.需要理解的是,本申请实施例中,回归运行配置中可以包括确定是否运行回归测试的选项,从而可以通过配置该选项实现对于相应子环境是否进行回归测试的控制。
91.本申请实施例中提供的回归测试方法,将所有子系统测试时所共有的回归测试环境参数配置过程和回归测试环境的数据库建立过程提取出来,首先进行回归测试环境参数和回归测试环境的数据库这一所有子系统测试时所共有的基本环境的构建。然后,根据待测试子系统独特的回归运行配置,生成待测试子系统对应的各子环境的命令集合,调用各子环境的目标线程执行各所述子环境的命令集合中的命令,从而实现对于该子系统的测试。通过本申请实施例的方案,由于首先进行回归测试环境参数和回归测试环境的数据库这一所有子系统测试时所共有的基本环境的构建,该过程是所有子系统测试时所共有的,因此实现该方式的脚本可被所有子系统所复用,相当于实现了在所有子系统测试中,soc层
面的回归测试环境和流程结构的统一,从而在一旦出现soc层面的回归测试环境修改需求,或者需要新增某项回归测试所支持的功能,则只需要在该实现回归测试环境参数和回归测试环境的数据库的脚本中进行相应的更新调整即可,不再需要对每个子系统的回归测试环境进行针对性的修改,也不再需要每个验证团队都根据各自的回归测试环境中的流程结构各自决定如何嵌入新增的功能,从而降低了回归测试的工作量,避免了不同回归测试环境设置的失配问题,同时也降低了回归测试环境支持新功能的开发难度。
92.此外,本申请实施例中所提供的方案,在回归测试设备的最大线程并发数的许可范围内,可以实现各个子环境对应的目标线程的并发处理,从而可以有效提高回归测试效率。
93.此外,本申请实施例的方案可以通过定义规范化的数据访问接口,使得各个子系统都按照同一规范生成的数据访问接口进行回归测试结果的存放,实现了回归测试结果的数据访问接口形式的统一,从而使得针对任一个子系统回归测试环境开发的测试结果分析脚本,都可以复用到其他子系统中,节约了对回归测试结果进行分析的时间成本。
94.实施例二:
95.基于同一发明构思,本申请实施例中还提供了一种回归测试系统。请参阅图4所示,图4示出了与实施例一所示的回归测试方法对应的回归测试系统。应理解,回归测试系统具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。回归测试系统包括至少一个能以软件或固件的形式存储于存储器中或固化在承载该系统的回归测试设备的操作系统中的软件功能模块。具体地:
96.参见图4所示,回归测试系统包括:回归测试环境配置层101和回归测试运行层102。其中:回归测试环境配置层101可以被所有子系统复用,而回归测试运行层102则分别由各子系统专用。
97.回归测试环境配置层101,用于配置回归测试环境参数,并根据待测试子系统对应的环境配置信息建立回归测试环境的数据库;
98.待测试子系统对应的回归测试运行层102,用于根据所述待测试子系统的回归运行配置生成所述待测试子系统对应的各子环境的命令集合,调用各所述子环境的目标线程执行各所述子环境的命令集合中的命令。
99.在本申请实施例中,所述环境配置信息包括:项目名称;回归测试环境配置层101具体用于根据所述项目名称,确定出与所述项目名称对应的环境配置参数,根据所述环境配置参数配置所述回归测试环境。
100.在本申请实施例中,所述环境配置信息包括:环境数据库类型以及所述待测试子系统的环境名称;回归测试环境配置层101具体用于根据所述环境数据库类型和所述环境名称,从历史运行的数据库中确定出符合所述环境数据库类型和所述环境名称的目标数据库;根据预设的所需数据库数量,从所有目标数据库中清除掉创建时间最久的目标数据库,使所述目标数据库的数量为所述所需数据库数量,再根据所述环境数据库类型和所述环境名称建立最新的数据库,用作本次的回归测试的运行。
101.在本申请实施例中,所述回归运行配置包括:所述待测试子系统的各子环境名称、各所述子环境名称对应的回归测试命令集合;所述回归测试运行层102具体用于根据各所述子环境名称对应的回归测试命令集合,生成所述子环境名称所表征的子环境的命令集合
中的回归测试命令;调用各所述子环境的目标线程执行各所述子环境的命令集合中的回归测试命令。
102.在本申请实施例中,所述回归运行配置包括:所述待测试子系统的各子环境名称、各所述子环境名称对应的回归类型;所述回归测试运行层102具体用于将各所述子环境名称对应的回归类型作为各所述子环境的目标线程的输入参数,以调用各所述子环境的目标线程。
103.在本申请实施例的一种可行实施方式中,回归测试环境配置层101还用于定义规范化的数据访问接口,向所述回归测试运行层102输出回归测试环境变量;其中,所述规范化的数据访问接口用以存放回归测试结果;所述回归测试环境变量为定义规范化的数据访问接口得到的指示所述回归测试结果的存放路径的信息。所述回归测试运行层102还用于根据所述回归测试环境变量存放回归测试结果;其中,所述回归测试结果为各所述子环境的目标线程的执行结果。
104.在上述可行实施方式中,所述回归测试环境变量包括:所述回归测试环境的数据库的标签名和所述数据库中的根目录名;或,所述回归测试环境的数据库的标签名、所述数据库中的根目录名、和由所述根目录名中内容注册的网站地址名。
105.在上述可行实施方式中,所述回归运行配置包括:所述待测试子系统的各子环境名称、各所述子环境名称对应的回归类型;所述回归测试运行层102具体用于根据所述回归测试环境变量、各子环境名称以及各所述子环境名称对应的回归类型,生成各子环境对应的规范化的数据访问接口;各所述子环境的目标线程执行命令后,将执行结果按照各子环境对应的规范化的数据访问接口进行保存,并提供所述规范化的数据访问接口的访问路径。
106.在本申请实施例中,所述回归测试环境配置层101还用于在根据待测试子系统对应的环境配置信息建立回归测试环境的数据库之前,根据所述待测试子系统的唯一标识,从预先配置的soc回归测试环境配置表中,查找出与所述唯一标识对应的所述待测试子系统对应的环境配置信息。
107.在本申请实施例中,所述回归测试运行层102还用于在根据所述待测试子系统的回归运行配置生成所述待测试子系统对应的各子环境的命令集合之前,根据预先配置的所述待测试子系统的回归运行配置表中,获取所述待测试子系统的回归运行配置。
108.需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
109.实施例三:
110.本实施例在实施例二的基础上,以一种具体的回归测试过程为例,对本申请实施例的方案进行示例说明。
111.1.将子系统的回归测试控制拆分为回归测试环境配置层和回归测试运行层两个层次结构。
112.1.1、回归测试环境配置层。
113.回归测试环境配置层是由各子系统的回归测试环境所共享的,需要解决的问题主要是不同子系统回归测试环境管理的统一化,具体包括:
114.a.回归测试环境的回归测试环境参数的设置。
115.回归测试环境参数的正确设定是每一个回归测试环境能够启动的先决条件。本申请实施例中会预先定义好各个子系统所属项目的回归测试环境参数,从而可以根据soc回归测试环境配置表中,待测试的子系统对应的环境配置信息中的项目名称,确定出当前所需的回归测试环境参数。
116.b.回归测试环境的数据库建立。
117.每一个环境的回归测试都是在对应的数据库上运行的。数据库包括了所有验证环境的组件和回归的测试用例。
118.c.规范化的数据访问接口的定义。
119.通过定义规范化的数据访问接口,为所有子系统提供统一化的数据访问接口来对回归测试结果的归总分析。这种规范化的数据访问接口可以是某种规范化命名的路径,或者链接,用以存放回归测试结果的所有数据。
120.针对不同的验证环境,可以将这种规范化的数据接口定义与自身环境的信息结合起来,提供属于该环境的规范化数据访问接口。比如实施例一中所示例的对于子环境a、回归类型1的数据访问接口:“数据库a-根目录b-一级子目录a-二级子目录1”等。
121.d.回归测试环境的无效数据库的回收。
122.此项与b是配套的,主要负责每一个回归测试环境的回收。建立和回收的配套使用,可以有效实现对磁盘空间的合理使用。
123.1.2、回归测试运行层。
124.回归测试运行层在每个子系统环境中各有一套,是各子系统所独享的。回归测试运行层主要负责控制各子系统中的回归测试环境的执行。如果需要执行,则进一步调用对应的目标线程来运行该环境的回归测试。被调用的目标线程除了执行该环境对应的回归测试命令之外,还提供了该环境规范化的数据访问接口给后续脚本分析回归测试的结果。
125.2.创建回归测试环境配置层。
126.回归测试环境配置层的输入来自soc回归测试环境配置表,输出为该子系统的一系列规范化的回归测试环境变量。
127.如图5所示,回归测试环境配置层首先从soc回归测试环境配置表中查找到当前的待测试子系统n对应的环境配置信息,包含:项目名称、环境数据库类型、子系统n的环境名称等。
128.紧接着,回归测试环境配置层基于这些配置信息完成子系统n运行回归测试前所需要的环境配置工作,包括回归测试环境的回归测试环境参数设置;回收回归测试环境中无效的数据库和这些数据库运行的回归测试结果(即实施例一中描述的从历史运行的数据库中,清除掉创建时间最久的目标数据库及其所运行的回归测试结果,使目标数据库的数量为所需数据库数量);建立新的回归测试环境数据库;定义回归测试环境的规范化的数据访问接口。可参见前述1.1中的介绍。
129.需要说明的是,本实施例中,可以根据子系统n的环境数据库类型和环境名称,从历史运行的数据库中确定出符合环境数据库类型和环境名称的目标数据库,进而根据预设的所需数据库数量,从所有目标数据库中清除掉创建时间最久的目标数据库,实现无效的数据库的回收。再根据所述环境数据库类型和所述环境名称建立最新的数据库,用作本次的回归测试的运行。
130.还需要说明的是,规范化的数据访问接口将被转换为回归测试环境变量存入环境变量表中,作为回归测试运行层的其中一路输入。
131.本实施例中的生成的环境变量表包括了回归测试环境的数据库的标签名,用以区分不同的回归数据库;数据库中的根目录名,用于存放回归测试结果;以及由根目录名中内容注册的网站地址名,网站地址名可通过链接访问。
132.需要理解的是,虽然前文是以待测试子系统为子系统n的情况进行说明的,但针对每一个子系统的回归环境配置,都是采用的该方式实现的配置。
133.3.创建回归测试运行层。
134.回归测试运行层的输入分别来自回归测试环境配置层输出的环境变量表,和对应子系统的回归运行配置表。输出为该子系统下所有需要运行的子环境的回归测试结果,并提供测试结果的规范化的数据访问接口。
135.本实施例中,可以将回归测试环境配置层的脚本复制给各验证团队,从而实现支持多个子系统的回归测试。
136.此外,每个子系统可以有多个需要回归测试的子环境,以支持子系统在不同层级的回归测试工作(例如子系统级和ip级)。
137.接下来将会以其中一个子系统n的子环境a作为例子阐明本层的工作流程和机制。图6是对应的示例图。
138.3.1、自动化生成子系统n中子环境a对应的目标线程的命令集合。
139.首先,通过回归测试环境配置层输出的环境变量表中的回归测试环境变量,并结合子系统n的回归运行配置表,提取子环境a所对应的子环境名以及回归类型,自动生成子环境a的规范化的数据访问接口的代码,如图6中虚线(1),(2),(3)所示。
140.此处的回归类型是提供给用户的配置接口,该接口主要考虑到子系统下的各个子环境可能需要不同的回归类型以支持不同的验证目标,例如可能需要使能xprop的前端仿真,或需要带upf的功耗仿真和后仿等。用户通过配置回归类型可以实现对于实际所需的回归测试的配置。
141.其次,脚本提取子系统n回归运配置行表中环境a对应的回归测试运行命令,自动生成环境a可运行的回归测试命令代码集合,如图6中虚线(4)所示。
142.再次,通过回归测试运行层的脚本提取子系统n回归运行配置表中子环境a对应回归测试结果的注册命令,自动生成子环境a可运行的注册命令代码集合,如图6中虚线(5)所示。
143.需要说明的是,上文中的注册命令用于实现回归测试注册,所谓回归测试注册是指,将回归测试结果汇总到一个位置(即该子环境对应的数据访问接口)集中,并提供链接,方便用户访问操作。
144.由于回归测试是由机器操作的成千上万的用例,其测试结果对用户并不友好。因此通常需要有一个接口对回归测试结果做更为友好的总结和展示(典型的是一个网页),作为人机交互的界面。因此,在本申请实施例中,可以将数据访问接口中的内容注册到网页上,并提供该网页的网站地址名,方便用户访问。
145.通过上述过程,子系统n中子环境a所需的线程代码组织完毕。
146.3.2、构建子系统n对于子环境a的目标线程调用控制代码。
147.回归测试运行层中设置了一个条件控制顶层,用以查看子系统n下各子环境的回归触发条件,一旦子环境a的控制条件满足,则对应线程被调用。
148.此处,对于子系统n中的不同子环境而言,控制条件的检查与对应目标线程的调用是并发执行的,保证每个子环境的回归测试可以互不干扰的独立运行。
149.具体运行时,回归测试运行层从子系统n的回归运行配置中搜索子系统n的子环境a。根据其在回归运行配置表中“是否运行测试”这栏所列的值,可以判定是否需要调用线程a,如图6中的虚线(6)所示。若需要调用线程a,则进一步将表格中子环境a的回归类型与环境变量表中的回归测试环境变量作为输入参数来调用线程a,如图6中的虚线(7),(8)所示。
150.一旦线程a启动后,它被调用时的输入参数将被命令集合入口解析,从而根据输入参数中的回归类型来选择运行子环境a所对应的命令集合中与该回归类型对应的回归测试命令,并根据输入参数中回归测试环境变量来执行注册命令,如图6中虚线(9),(10)所示。
151.回归测试运行层提供了规范化的数据访问接口。该数据访问接口统一了回归测试结果的组织形式。在子环境a进行回归测试的过程中,回归测试结果会被实时同步到规范化命名的与子环境a对应的磁盘路径以及可视化统计信息窗口,如图6中虚线(11)所示。
152.同一个子系统n下的其他所有子环境的回归测试操作,都如同子环境a一样,在此不再赘述。此外,soc中的不同子系统也同样按照上述方式展开其下所有子环境的回归测试工作。
153.本实施例所提出的回归测试系统的结构,依据通用性和专用性的考量,将soc中的一个子系统环境下的回归测试划分为回归测试环境配置层和回归测试运行层两个层次结构。
154.回归测试环境配置层的整个流程是soc中所有子系统的回归测试环境所必有的,每一个子系统在运行回归测试的具体命令之前都需要先建立并配置对应的回归测试环境。本实施例将这一共有的需求分离出来通过回归测试环境配置层实现,使得soc中的所有子系统都可以复用该回归测试环境配置层来实现回归测试环境的建立和配置。
155.在传统的回归测试环境的开发中,每个子系统都是独立进行开发的,各子系统之间对于回归测试的环境配置在步骤上和方式上都不相同。一旦soc层因为项目需求需要更改项目信息,工具版本等环境配置,或是需要加入一些回归测试的新方法更好地管理回归测试的运行资源,那么所有的子系统必须根据自己开发的回归测试环境做定制化的改动以满足要求。
156.相较之下,由于本实施例提出的回归测试环境配置层,可以被所有子系统所复用,一旦出现上述针对soc层面的环境配置的更新要求时,只需在回归测试环境配置层做一次改动即可,节省了各子系统回归测试开发人员的重复工作量,也避免了各子系统之间配置更新不一致而产生的失配问题。各子系统的回归测试开发人员只需维护soc回归测试环境配置表中属于自己的子系统的环境配置信息即可。
157.回归测试运行层对于不同的子系统而言是互相独立的。由于不同子系统中涵盖的ip数目不同,各ip之间的组合方式不同,各回归环境的回归测试命令等也不同,因而无法建立类似于回归测试环境配置层那样的完全可复用结构来完成回归测试的具体执行。
158.然而,传统的方式只是简单的针对子系统中每个需要运行回归测试的子环境,开发脚本来执行相应的命令集合,回归测试结果的数据访问接口形式也各不相同,不便于后
续工具对回归测试结果的进一步分析处理。
159.在本实施例提出的回归测试运行层中,无需针对子系统中的每个子环境开发回归测试的运行脚本,取而代之的是将子系统中每个子环境运行回归测试时需要用到的参数与命令集合存放在回归运行配置表中,根据回归运行配置表中不同环境对应的回归运行配置信息,便可自动为每个子环境生成运行回归测试的命令集合。同时,在回归测试运行层通过并发线程的控制来决定运行子系统中哪些子环境的回归测试。这样一来,负责回归测试的开发人员只需将精力集中在子系统回归运行配置表的维护以及并发线程需要执行的条件配置即可,无需再针对子系统下的每个子环境单独开发回归测试的运行脚本。
160.此外,本实施例提出的回归测试运行层承接了回归测试环境配置层传入的规范化的回归测试环境变量,基于这些规范化的回归测试环境变量,并结合子系统回归运行配置表中的子环境名与回归类型,在输出回归测试结果的数据时,做到了规范化的数据访问接口形式,便于后续工具对回归测试结果的进一步分析处理。
161.实施例四:
162.本实施例提供了一种回归测试设备,可以参见图7所示,其包括处理器701、存储器702及通信总线703。其中:
163.通信总线703用于实现处理器701和存储器702之间的连接通信。
164.处理器701用于执行存储器702中存储的一个或多个程序,以实现上述实施例一/二中的相关方法。
165.可以理解,图7所示的结构仅为示意,回归测试设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置,例如还可以具有输入/输出接口、通信模组等部件。
166.还应当理解的是,本申请实施例中所述的回归测试设备可以是终端、服务器等可以配置代码的电子设备。
167.本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、u盘、sd(secure digital memory card,安全数码卡)卡、mmc(multimedia card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一/二中的方法。在此不再赘述。
168.在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
169.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
170.再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
171.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
172.在本文中,多个是指两个或两个以上。
173.以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1