本发明涉及芯片验证,具体涉及自动化测试用例集成方法及装置、用例测试方法及装置。
背景技术:
1、在传统的uvm验证平台中,没有集成对测试用例信息的管理。在复杂、大规模的测试用例的设计过程中,只能依靠工程师编写外部脚本管理,这些脚本一般在验证回归阶段一次性批量收集用例的信息,无法与验证平台同步。在搭建验证环境平台时,通常由于新功能点的增加或旧功能点的改动,往往需要在已知的用例上继承或重新创建用例,这需要对旧的激励类进行重载或改写,导致环境代码复用率较低,特别是在跨模块级调用时,这些激励类也难以被复用。
技术实现思路
1、有鉴于此,本发明提供了一种自动化测试用例集成方法及装置、用例测试方法及装置,以解决如何提高不同激励类的跨模块复用效率。
2、第一方面,本发明提供了一种自动化测试用例集成方法,方法包括:获取通用验证方法论验证平台预先注册的全部激励类;所述激励类中封装多条测试激励对应的逻辑;
3、提取所述逻辑中的多个预设字段信息,以及,提取多条所述测试激励之间的函数调用关系;
4、基于多条所述测试激励之间的函数调用关系,对多个所述预设字段进行渲染,得到可复用的封装器接口类文件;
5、以及,基于多条所述测试激励之间的函数调用关系,为多条所述测试激励配置与所述封装器接口类文件对应的引入声明,所述引入声明用以指示建立所述封装器接口类文件和多条所述测试激励中每一条所述测试激励之间的绑定关系;
6、获取预设的报告器接口类文件以及测试用例信息库中的全部测试用例信息,其中,所述报告器接口类文件中预定义资源池类;
7、将所述全部测试用例信息初始化为测试用例文件;
8、将所述资源池类对应的资源池参数化为基础数据类型,所述参数化后的资源池用以存储所述报告器接口类文件、所述封装器接口类文件以及所述测试用例文件,以完成所述通用验证方法论验证平台的测试用例管理集成和复用激励集成。
9、本发明实施例通过提取预设字段信息和测试激励之间的函数调用关系,清晰的确定各激励类之间的关联,为后续复用提供基础,渲染预设字段并生成可复用的封装器接口类文件,将激励类的逻辑封装在一个标准化的接口中,相较于相关技术中对旧的激励类进行重载或改写,本实施例通过标准化的封装器接口类文件可以似的激励类在不同模块之间直接复用,从而避免了在不同模块级调用时需要重载或改写激励类的情况,通过为多条所述测试激励配置与所述封装器接口类文件对应的引入声明,表明封装器接口类文件和测试激励之间的绑定关系,在调用测试激励时,无论是不是同一个模块,都可以直接使用对应的封装器接口类文件,而不需要单独调用每个激励类的实现,从而提高了跨模块复用的效率,参数化资源池类,并将其用于存储报告器接口类文件、封装器接口类文件以及测试用例文件,可以理解为,所有相关资源都存储在一个标准化的参数化资源池中,以便于在不同模块之间共享报告器接口类文件、封装器接口类文件以及测试用例文件,进一步显著提高了激励类的跨模块复用率。
10、在一种可选的实施方式中,多个所述预设字段包括文件路径片段、类名片段、属性片段和操作方法;
11、所述基于多条所述测试激励之间的函数调用关系,对多个所述预设字段进行渲染,得到可复用的封装器接口类文件,包括:
12、将所述文件路径片段、所述类名片段、所述属性片段,以及所述操作方法存储在数据帧对象中;
13、获取预设的封装器类模版文件,所述封装器类模版文件作为封装器接口类文件的原型;
14、将所述函数的原型声明以及对应的数据帧对象转换为python字典数据的格式;
15、通过mako库的render()方法将转换为所述python字典数据的格式后的函数的原型声明以及将转换为所述python字典数据的格式后的数据帧对象渲染至所述预设的封装器类模版文件中,得到所述封装器接口类文件,其中,所述封装器接口类中包括tracker()方法和is_inlib()方法;
16、所述tracker()方法用于展示通用验证方法论验证平台中激励类中多条所述测试激励之间的函数调用关系;
17、所述is_inlib()方法用于查询多条所述测试激励中的操作方法。
18、本实施例通过将文件路径、类名、属性和操作方法等关键信息存储在一个pandas数据帧对象中,开发人员可以通过查看和修改数据帧对象的内容,提高了代码的可维护性,通过预设的封装器类模板文件,并将数据帧对象转换为python字典格式,并使用mako库的render()方法自动化地将这些数据渲染到模板文件中,开发者可以避免每次从头开始编写封装器类,减少了相关技术中,开发人员仍需从头到尾编写一个封装器类的繁琐步骤,节省了开发时间,封装器接口类文件公用任务task中包含的tracker()和is_inlib()方法,能够将函数调用关系和操作方法查询一次性集成在一个公用任务task中,有效提高了整个封装器接口类文件的可复用性。
19、在一种可选的实施方式中,所述操作方法包括不同的任务方法;每一个所述任务方法对应一种任务调用关系;其中,所述函数调用关系包括所述任务调用关系;所述方法还包括:
20、基于不同的任务调用关系,确定不同任务的级别;
21、所述不同任务的级别用于表征不同任务的执行次序,其中,每一种任务方法对应一种任务;
22、选取第一任务级别对应的任务所属的第一激励类,其中,所述第一任务级别用于表征执行次序为首次执行的任务;
23、将所述封装器实现声明添加至所述第一激励类中,其中,所述第一激励类包括多个任务。
24、本实施例中,由于封装器实现声明提供了一个统一的接口,而程序代码编译执行的过程无法并行执行,只能从代码的起始位置开始依次执行后续代码,而第一级别的任务是最基础的、没有依赖其他任务的任务,也可以理解为是后续任务执行的基础,是起始位置处的第一个任务,通过在第一级别的任务中声明,可以确保所有后续任务在一个一致的环境中运行,确保后续全部的函数任务都能引入统一的封装器接口,进而保证封装器接口类文件对应的激励类的可复用性。
25、在一种可选的实施方式中,所述报告器接口类文件中还包括基础数据类、报告器接口类以及序列信息类;
26、其中,所述报告器接口类中封装报告编号函数逻辑、报告时间戳函数逻辑、报告状态函数逻辑、报告覆盖率函数逻辑、报告描述函数逻辑、报告继承逻辑以及报告总结逻辑;所述序列信息类中封装测试用例的标识信息,测试用例的时间戳信息,测试用例的测试结果信息,测试用例的覆盖率信息,测试用例的描述信息以及测试用例的层级信息。
27、本实施例通过封装通用的报告功能逻辑,减少了重复编写代码的步骤,提高了代码的复用性,并且当执行测试过程中,不论何种测试结果,都能通过报告器接口类进行报告,直接一次性报告各项测试内容,确保了测试用例结果的实时更新,以便于测试人员能实时看到测试结果。
28、第二方面,本发明提供了一种用例测试方法,方法包括:响应于测试触发指令,获取所述测试触发指令中的目标测试用例信息以及对应的标记位;
29、根据所述标记位确认所述目标测试用例的类型;
30、当确认所述目标测试用例为第一类型时,则基于第一方面或其对应的任一实施方式所述的自动化测试用例集成方法集成所述目标测试用例信息,所述第一类型用于指示目标测试用例信息为新添加的测试用例信息;
31、并按照所述测试触发指令,调用第一方面或其对应的任一实施方式所述的自动化测试用例集成方法中的通用验证方法论验证平台中所集成的复用激励,执行所述目标测试用例信息对应的测试操作。
32、本实施例提供的用例测试方法,响应于测试触发指令,获取所述测试触发指令中的目标测试用例信息以及对应的标记位。根据所述标记位确认所述目标测试用例的类型,当确认所述目标测试用例为第一类型时,则基于第一方面或其对应的任一实施方式所述的自动化测试用例集成方法集成所述目标测试用例信息,利用通用验证方法论验证平台中的复用激励,快速复用已有的激励代码,大幅减少了测试人员的重复劳动,提升了测试执行效率。
33、在一种可选的实施方式中,所述方法还包括:
34、当确认所述测试用例的类型为第二类型时,则直接按照所述测试触发指令,调用第一方面或其对应的任一实施方式所述的自动化测试用例集成方法中的通用验证方法论验证平台所集成的复用激励,执行所述目标测试用例信息对应的测试操作;其中,所述第二类型用于指示目标测试用例信息为所述通用验证方法论验证平台中已集成,且有效的测试用例信息;
35、或者,当确认所述测试用例的类型为第三类型时,则将所述目标测试用例信息从所述通用验证方法论验证平台中清除,其中,所述第三类型用于指示目标测试用例信息为所述通用验证方法论验证平台中已集成,且无效的测试用例信息。
36、本实施例提供的用例测试方法,采用标记位区分测试用例类型,即第一类型、第二类型和第三类型,能够灵活处理新添加的测试用例和已有的测试用例,确保测试用例的准确性。
37、在一种可选的实施方式中,所述方法还包括:分析每个激励类中的逻辑,识别每个激励类中的逻辑中函数调用链路,划分出激励执行函数的主流程和次流程;根据划分出的多个主流程和次流程,分别设置对应的基础接口类,将不同激励类所继承的父类均设置为基础接口类;将被继承的基础接口类设置为可复用的封装器接口类文件。
38、本实施例通过分析每个激励类中的逻辑,识别每个激励类中的逻辑中函数调用链路,划分出激励执行函数的主流程和次流程;根据划分出的多个主流程和次流程,分别设置对应的基础接口类,将不同激励类所继承的父类均设置为基础接口类;将被继承的基础接口类设置为可复用的封装器接口类文件,不仅能够提升测试代码的模块化程度,还能通过减少重复代码,简化了激励类的编写过程,实现快速的集成。
39、第三方面,本发明提供了一种自动化测试用例集成装置,上述装置包括:
40、激励类获取与解析模块,用于获取通用验证方法论验证平台预先注册的全部激励类;所述激励类中封装多条测试激励对应的逻辑;
41、逻辑分析与封装器生成模块,用于提取所述逻辑中的多个预设字段信息,以及,提取多条所述测试激励之间的函数调用关系;
42、测试激励配置与绑定模块,用于基于多条所述测试激励之间的函数调用关系,对多个所述预设字段进行渲染,得到可复用的封装器接口类文件;
43、报告器接口与资源管理模块,用于基于多条所述测试激励之间的函数调用关系,为多条所述测试激励配置与所述封装器接口类文件对应的引入声明,所述引入声明用以指示建立所述封装器接口类文件和多条所述测试激励中每一条所述测试激励之间的绑定关系;
44、测试用例初始化模块,用于获取预设的报告器接口类文件以及测试用例信息库中的全部测试用例信息,其中,所述报告器接口类文件中预定义资源池类;
45、资源池参数化模块,用于将所述全部测试用例信息初始化为测试用例文件;
46、测试用例集成与复用管理模块,用于将所述资源池类对应的资源池参数化为基础数据类型,所述参数化后的资源池用以存储所述报告器接口类文件、所述封装器接口类文件以及所述测试用例文件,以完成所述通用验证方法论验证平台的测试用例管理集成和复用激励集成。
47、第四方面,本发明提供了一种用例测试装置,上述装置包括:
48、测试指令解析与目标识别模块,用于响应于测试触发指令,获取所述测试触发指令中的目标测试用例信息以及对应的标记位;
49、测试用例类型确认与处理模块,用于根据所述标记位确认所述目标测试用例的类型;
50、新测试用例集成模块,用于当确认所述目标测试用例为第一类型时,则基于第一方面或其对应的任一实施方式所述的自动化测试用例集成方法集成所述目标测试用例信息,所述第一类型用于指示目标测试用例信息为新添加的测试用例信息;
51、复用激励调度与测试执行模块,用于并按照所述测试触发指令,调用如第一方面或其对应的任一实施方式所述的自动化测试用例集成方法中的通用验证方法论验证平台所集成的复用激励,执行所述目标测试用例信息对应的测试操作。
52、第五方面,本发明提供了一种通用验证方法论验证平台,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的自动化测试用例集成方法,或者上述第二方面或其对应的任一实施方式的用例测试方法。
53、第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的自动化测试用例集成方法,或者上述第二方面或其对应的任一实施方式的用例测试方法。
54、第七方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的自动化测试用例集成方法,或者上述第二方面或其对应的任一实施方式的用例测试方法。