CN117172206B - 测试用例生成方法、装置、电子设备及存储介质 - Google Patents

测试用例生成方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117172206B
CN117172206B CN202311450819.3A CN202311450819A CN117172206B CN 117172206 B CN117172206 B CN 117172206B CN 202311450819 A CN202311450819 A CN 202311450819A CN 117172206 B CN117172206 B CN 117172206B
Authority
CN
China
Prior art keywords
constraint
random
queue
method object
test case
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
CN202311450819.3A
Other languages
English (en)
Other versions
CN117172206A (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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311450819.3A priority Critical patent/CN117172206B/zh
Publication of CN117172206A publication Critical patent/CN117172206A/zh
Application granted granted Critical
Publication of CN117172206B publication Critical patent/CN117172206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本公开涉及集成电路技术领域,提出一种测试用例生成方法、装置、电子设备及存储介质,所述方法包括:在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理所述随机约束队列中的约束的第一方法对象,所述基类还包括基础约束;调用第一方法对象,调整随机约束队列中的约束;将基础约束以及随机约束队列中的约束合并,得到约束合并结果;根据约束合并结果和基础激励序列生成测试用例,测试用例用于对系统总线设置方式的正确性进行测试。本公开实施例的测试用例生成方法,能够解除约束与激励的耦合,因此约束和激励各自的复用性都大大提高,可以自动生成测试用例,节省人力成本。

Description

测试用例生成方法、装置、电子设备及存储介质
技术领域
本公开涉及集成电路技术领域,尤其涉及一种测试用例生成方法、装置、电子设备及存储介质。
背景技术
对于超大规模集成电路的系统总线互联验证,不仅包括功能验证,总线的性能分析处理也更加重要。由于总线的层级以及总线上下游的主机和从机数量会上升到一个巨大的数量级,因此需要仿真验证的数据通路更多,数据通路复杂性更大,会严重拖慢仿真速度,对后续人力逐个分析验证也是带来极大的挑战。
对此,一种普遍的做法是通过在总线上下游的主机和从机上设置验证IP(Verification Intellectual Property,VIP),通过验证IP来发出标准协议内各种组合的随机激励。此方法可以满足随机的需求,但是当总线互联复杂度到一定程度时,会有巨大数量级的通路存在,而每条通路能访问的地址以及激励约束都各不相同,此时验证环境的复杂度以及重用性都会受制于具体的总线互联配置,无法复用或者复用性很低,会浪费大量的人力来做定向测试用例构造。
发明内容
有鉴于此,本公开提出了一种测试用例生成方法、装置、电子设备及存储介质,本公开实施例的测试用例生成方法,能够解除约束与激励的耦合,因此约束和激励各自的复用性都大大提高,可以自动生成测试用例,节省人力成本。
根据本公开的一方面,提供了一种测试用例生成方法,所述方法包括:在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理所述随机约束队列中的约束的第一方法对象,所述基类还包括基础约束;调用所述第一方法对象,调整所述随机约束队列中的约束;将所述基础约束以及所述随机约束队列中的约束合并,得到约束合并结果;根据所述约束合并结果和基础激励序列生成测试用例,所述测试用例用于对系统总线设置方式的正确性进行测试。
在一种可能的实现方式中,所述第一方法对象包括向所述随机约束队列中添加约束的方法对象、从所述随机约束队列中删除约束的方法对象、清空所述随机约束队列的方法对象。
在一种可能的实现方式中,所述方法还包括:定义约束池,用于存储不同传输路径上的约束以及管理所述约束池中的约束的第二方法对象;所述第二方法对象包括查询所述约束池中的约束的方法对象、向所述约束池添加约束的方法对象、删除所述约束池中的约束的方法对象。
在一种可能的实现方式中,所述调用所述第一方法对象,调整所述随机约束队列中的约束之前,所述方法还包括:获取当前传输路径;调用所述查询所述约束池中的约束的方法对象,从所述约束池中获取所述当前传输路径相关的约束;所述调用所述第一方法对象,调整所述随机约束队列中的约束,包括:调用所述向所述随机约束队列中添加约束的方法对象,将获取到的约束添加到所述随机约束队列。
在一种可能的实现方式中,所述调用所述第一方法对象,调整所述随机约束队列中的约束,包括:获取当前传输路径;根据所述当前传输路径,调用所述从所述随机约束队列中删除约束的方法对象,从所述随机约束队列中删除所述当前传输路径相关的约束。
在一种可能的实现方式中,所述调用所述第一方法对象,调整所述随机约束队列中的约束,包括:调用所述清空所述随机约束队列的方法对象,清空所述随机约束队列中的所有约束。
在一种可能的实现方式中,所述方法还包括:获取目标传输路径;所述目标传输路径生效后,调用所述向所述约束池添加约束的方法对象,向所述约束池添加所述目标传输路径相关的约束;所述目标传输路径失效后,调用删除所述约束池中的约束的方法对象,删除所述约束池中所述目标传输路径相关的约束。
根据本公开的另一方面,提供了一种测试用例生成装置,所述装置包括:第一定义模块,用于在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理所述随机约束队列中的约束的第一方法对象,所述基类还包括基础约束;第一管理模块,用于调用所述第一方法对象,调整所述随机约束队列中的约束;合并模块,用于将所述基础约束以及所述随机约束队列中的约束合并,得到约束合并结果;生成模块,用于根据所述约束合并结果和基础激励序列生成测试用例,所述测试用例用于对系统总线设置方式的正确性进行测试。
在一种可能的实现方式中,所述第一方法对象包括向所述随机约束队列中添加约束的方法对象、从所述随机约束队列中删除约束的方法对象、清空所述随机约束队列的方法对象。
在一种可能的实现方式中,所述装置还包括:第二定义模块,用于定义约束池,所述约束池用于存储不同传输路径上的约束以及管理所述约束池中的约束的第二方法对象;所述第二方法对象包括查询所述约束池中的约束的方法对象、向所述约束池添加约束的方法对象、删除所述约束池中的约束的方法对象。
在一种可能的实现方式中,所述装置还包括:第一获取模块,用于获取当前传输路径;第二管理模块,用于调用所述查询所述约束池中的约束的方法对象,从所述约束池中获取所述当前传输路径相关的约束;所述第一管理模块具体用于:调用所述向所述随机约束队列中添加约束的方法对象,将获取到的约束添加到所述随机约束队列。
在一种可能的实现方式中,所述第一管理模块具体用于:获取当前传输路径;根据所述当前传输路径,调用所述从所述随机约束队列中删除约束的方法对象,从所述随机约束队列中删除所述当前传输路径相关的约束。
在一种可能的实现方式中,所述第一管理模块具体用于:调用所述清空所述随机约束队列的方法对象,清空所述随机约束队列中的所有约束。
在一种可能的实现方式中,所述装置还包括:第二获取模块,用于获取目标传输路径;第三管理模块,用于在所述目标传输路径生效后,调用所述向所述约束池添加约束的方法对象,向所述约束池添加所述目标传输路径相关的约束;第四管理模块,用于在所述目标传输路径失效后,调用删除所述约束池中的约束的方法对象,删除所述约束池中所述目标传输路径相关的约束。
根据本公开的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
根据本公开实施例的测试用例生成方法,通过在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理随机约束队列中的约束的第一方法对象,使得约束与激励的耦合得以解除;通过调用第一方法对象,调整随机约束队列中的约束,将基础约束以及随机约束队列中的约束合并,得到约束合并结果,可以实现独立于激励的约束的获取;根据约束合并结果和基础激励序列生成测试用例,测试用例用于对系统总线设置方式的正确性进行测试,可以完成约束与激励的结合。在此情况下,约束和激励各自的复用性都大大提高,原本需要定制的测试用例,可以通过组合约束和激励的方式自动生成,节省人力成本。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的测试用例生成方法的示例性应用场景。
图2示出根据本公开实施例的测试用例生成方法的示例性应用场景。
图3示出根据本公开实施例的全局数据库的示例性结构。
图4示出根据本公开实施例的测试用例生成方法的流程的示意图。
图5示出根据本公开实施例的第一方法对象和第二方法对象的使用方式的一种示例。
图6示出根据本公开实施例的测试用例生成装置的结构的示意图。
图7示出根据本公开实施例的装置1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
在大规模集成电路的设计过程中,系统总线互联的设计与验证是一个非常重要的环节。不仅可以在前期快速扫清总线互联配置的错误,同时也能够作为性能仿真平台快速得出当前拓扑总线的带宽和延迟数据,为在前期调整片上系统的总线互联架构留出足够的时间。
随着新一代片上系统功能复杂度的提升和对性能需求的日益提升,系统总线互联一般都是由多个子系统的子总线互联和系统主总线互联组成,即一种分布式级联总线互联。因此总线上下游主机和从机的配置不匹配等人工输入错误很难避免。
对于超大规模集成电路的系统总线互联验证,不仅包括功能验证,总线的性能分析处理也更加重要。由于总线的层级以及总线上下游的主机和从机数量会上升到一个巨大的数量级,因此需要仿真验证的数据通路更多,数据通路复杂性更大,会严重拖慢仿真速度,对后续人力逐个分析验证也是带来极大的挑战。
对此,通常的做法有两种:
第一种是通过配置总线上游IP通过真实IP业务来覆盖系统总线互联,但是弊端是无法灵活控制总线上的激励,可能出现验证不够全面的风险。
第二种是通过在总线上下游的主机和从机上设置验证IP(VerificationIntellectual Property,VIP),通过在验证IP的基类内部定义不同的约束,包括基础的约束以及可关闭/打开的具体定制约束,在激励序列内部,通过在随机化的时候再次添加更为具体的约束,来发出标准协议内各种组合的随机激励。
由于第一种方法存在缺陷,因此一般情况下,第二种方法是大规模总线互联验证是选择的方法。此方法可以满足随机的需求,但是当总线互联复杂度到一定程度时,会有巨大数量级的通路存在,而每条通路能访问的地址以及激励约束都各不相同,此时验证环境的复杂度以及重用性都会受制于具体的总线互联配置,无法复用或者复用性很低,会浪费大量的人力来做定向测试用例构造。
有鉴于此,本公开提出了一种测试用例生成方法、装置、电子设备及存储介质,本公开实施例的测试用例生成方法,能够解除约束与激励的耦合,因此约束和激励各自的复用性都大大提高,可以自动生成测试用例,节省人力成本。
图1和图2示出根据本公开实施例的测试用例生成方法的示例性应用场景。
如图1所示,该应用场景中,系统包括总线以及连接总线的多个主机(master)、多个从机(slave)。
总线可包括主总线和子总线。系统可包括多个子系统,多个子系统通过子总线连接在主总线上。每个子系统中可能包括若干主机和/或若干从机。其中主机可以是硬件装置也可以是软件模块,例如中央处理器(central processing unit,CPU)、使用高速外围组件互联(peripheral component interconnect express,PCIE)协议的模块、使用通用串行总线(universal serial bus,USB)协议的模块等等。从机可以是硬件装置也可以是软件模块,如双倍速率(double data rate,DDR)同步动态随机存储器、静态随机存取存储器(static random-access memory,SRAM)等等。
每个主机可对应至少一个从机,每个从机可访问系统的至少一个地址空间。
参见图1,系统可包括主机1、主机2、从机1、从机2。主机1属于子系统1,主机2属于子系统2,从机1属于子系统3,从机2属于子系统4。其中主机1可对应从机1,主机2可对应从机2。从机1可访问地址空间1和地址空间2,从机2可访问地址空间3和地址空间4。
如图2所示,用户的需求可以是验证总线互联的设置方式是否能够满足某个主机可成功访问某个随机地址空间,并将填写好的、与系统总线互联验证相关的文件(未示出)存储在存储器中。
处理器可从存储器处获取用户填写好的文件。用户填写好的文件可能有多个,不同文件的格式可能不是统一的,也不能被验证环境所识别。对此,处理器可以将获取到的文件转换为预定义的数据格式,使得格式转换后的文件的格式统一且能够被验证环境所识别。
之后,处理器可基于格式转换后的文件生成连接组件以及全局数据库。连接组件包括主机与总线连接的接口、从机与总线连接的接口。全局数据库包括多个资源池以及至少一个方法对象,不同的资源池之间互相隔离。图3示出根据本公开实施例的全局数据库的示例性结构。参见图3,其中资源池用于存储基于格式转换后的文件解析得到的与系统总线互联验证相关的数据。方法对象定义了查询资源池的方法。
处理器根据连接组件和全局数据库可以生成测试用例和验证环境。本公开实施例的测试用例生成方法在生成测试用例时使用。执行本公开实施例的测试用例生成方法,能够修改对于验证IP核VIP的基类定义,使得该基类还可包括可调整的随机约束队列,后续调整随机约束队列中的约束后,可以与基类中原本的基础约束合并,再和基础激励序列一起生成测试用例。
此外,处理器还可将选择的路径以及确定的主机与地址段的分配关系写入到测试用例中,在生成的测试用例被执行时,测试用例中的激励输出到验证环境,测试用例中的约束限制随机到的地址空间的范围,根据验证环境输出的验证结果的比对结果,即可确定系统总线互联是否真正支持该主机通过该路径访问该地址段进行验证,进而确定系统总线设置方式的正确性。
图4示出根据本公开实施例的测试用例生成方法的流程的示意图。
如图4所示,本公开实施例提出一种测试用例生成方法,所述方法包括:
步骤S41,在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理随机约束队列中的约束的第一方法对象,基类还包括基础约束;
步骤S42,调用第一方法对象,调整随机约束队列中的约束;
步骤S43,将基础约束以及随机约束队列中的约束合并,得到约束合并结果;
步骤S44,根据约束合并结果和基础激励序列生成测试用例,测试用例用于对系统总线设置方式的正确性进行测试。
举例来说,首先对基类的定义进行修改,例如在步骤S41中,在基类中新增随机约束队列,用于存储随机获取的约束。同时增加管理随机约束队列中的约束的第一方法对象,使得在需要时可使用该第一方法对象对随机约束队列进行管理。第一方法对象可以有多种类型,以适配各种可能的管理方式。基类在现有技术中的其他功能保留,例如包括基础约束等。该基础约束可以是通过钩子函数定义在基类中(示例参见图5)。
然后在步骤S42中,调用第一方法对象调整随机约束队列中的约束。在选择不同类型的第一方法对象时,调整约束的方式也不同,调整约束的细节在后文中给出。在步骤S43中,将基础约束和随机约束队列中的约束合并,可得到约束合并结果。合并的方式可以基于现有技术实现,在此不再赘述。
与此同时,还可基于现有技术完成基础激励序列的定义。在基础激励序列定义完成、约束也合并完成之后,在步骤S44中,根据约束合并结果和基础激励序列生成测试用例。生成的测试用例用于对系统总线设置方式的正确性进行测试。测试方式在图1、图2的相关描述中已经介绍过,在此不再赘述。
根据本公开实施例的测试用例生成方法,通过在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理随机约束队列中的约束的第一方法对象,使得约束与激励的耦合得以解除;通过调用第一方法对象,调整随机约束队列中的约束,将基础约束以及随机约束队列中的约束合并,得到约束合并结果,可以实现独立于激励的约束的获取;根据约束合并结果和基础激励序列生成测试用例,测试用例用于对系统总线设置方式的正确性进行测试,可以完成约束与激励的结合。在此情况下,约束和激励各自的复用性都大大提高,原本需要定制的测试用例,可以通过组合约束和激励的方式自动生成,节省人力成本。
下面介绍第一方法对象的类型示例。
在一种可能的实现方式中,第一方法对象包括向随机约束队列中添加约束的方法对象、从随机约束队列中删除约束的方法对象、清空随机约束队列的方法对象。
在步骤S42中,在调用第一方法对象时,可以根据用户对于测试用例的定制需求,从各种类型的第一方法对象中选择合适的方法对象。例如用户需求是增加新的约束时,选择向随机约束队列中添加约束的方法对象,用户需求是删除已有的约束时,选择从随机约束队列中删除约束的方法对象等等。
可以理解的是,在定义基类时还可以增加更多类型的第一方法对象,本公开实施例对于第一方法对象的具体类型不作限制。
通过这种方式,使得随机约束队列的管理方式更灵活。
在一种可能的实现方式中,所述方法还包括:定义约束池,用于存储不同传输路径上的约束以及管理约束池中的约束的第二方法对象;
第二方法对象包括查询约束池中的约束的方法对象、向约束池添加约束的方法对象、删除约束池中的约束的方法对象。
举例来说,约束的用途是控制随机地址落在一定的范围,也就是说,如果已知地址空间的地址范围,那么约束也可以随之确定。因此,可以根据系统的从机可访问的地址空间,确定该地址空间对应的约束,进而确定包括该地址空间的所有传输路径(主机-从机-地址空间)上的约束。
可以定义一个约束池,将预先确定的不同传输路径上的约束存储起来。还可在该约束池中定义管理约束池中的约束的第二方法对象,其中第二方法对象包括查询约束池中的约束的方法对象、向约束池添加约束的方法对象、删除约束池中的约束的方法对象。
通过这种方式,使得约束池的管理方式更灵活。
下面介绍第一方法对象和第二方法对象的使用方式。图5示出根据本公开实施例的第一方法对象和第二方法对象的使用方式的一种示例。
在一种可能的实现方式中,所述方法还包括:
获取目标传输路径;
目标传输路径生效后,调用向约束池添加约束的方法对象,向约束池添加目标传输路径相关的约束;
目标传输路径失效后,调用删除约束池中的约束的方法对象,删除约束池中目标传输路径相关的约束。
举例来说,在总线互联方式的变化时,或者在系统的主机和从机数量、位置产生变化时,旧的传输路径可能失效,并可能出现新的传输路径。
对此,可以先获取目标传输路径。如图5所示,在目标传输路径生效后,调用向约束池添加约束的方法对象,向约束池添加目标传输路径相关的约束。目标传输路径失效后,调用删除约束池中的约束的方法对象,删除约束池中目标传输路径相关的约束。保证约束池中的约束都是生效的传输路径的约束。
通过这种方式,可以保证约束池中的约束的准确性。
查询约束池中的约束的方法对象的使用方式在后文中给出。
下面结合图5介绍第一方法对象的使用方式。
在一种可能的实现方式中,步骤S42之前,所述方法还包括:
获取当前传输路径;
调用查询约束池中的约束的方法对象,从约束池中获取当前传输路径相关的约束;
步骤S42包括:
调用向随机约束队列中添加约束的方法对象,将获取到的约束添加到随机约束队列。
举例来说,在向随机约束队列添加约束的场景中,可使用向随机约束队列中添加约束的方法对象。被添加的约束可以从约束池中查询得到。
例如,可先获取用户提供的主机名称,然后根据主机名称,以及随机到的地址空间,推导出当前访问的目的从机的名称,从而明确主机-从机-地址空间的传输路径,完成当前传输路径的获取。之后,如图5所示,先调用查询约束池中的约束的方法对象,从约束池中获取当前传输路径相关的约束。例如可以获取所有的与该传输路径有关的约束。之后再执行步骤S42,此时调用向随机约束队列中添加约束的方法对象,将获取到的约束添加到随机约束队列。
另一个示例中,进一步地,在获取当前传输路径的同时,还可以获取用户需求添加的测试用例类型(比如通路遍历测试类型、地址随机测试类型、压力测试类型、用户自定义测试类型、优先权测试类型、异常地址测试类型、缓存信号传递测试类型等),调用查询约束池中的约束的方法对象时,从约束池中获取与该传输路径有关的、符合该类型的约束,从而实现测试用例按照用户需求定制的效果。
可以理解的是,向随机约束队列中添加约束还可以有更多实现方式,例如还可以模糊匹配约束、正则匹配约束,然后再添加到随机约束队列,本公开实施例对此不作限制。
通过这种方式,使得能够向随机约束队列添加约束,并保证被添加的约束的准确性。
在图5的示例中,本领域技术人员应理解,除随机合并结果和激励信号之外,测试用例还可以包括更多的内容,例如可将向约束池添加约束的方法对象、获取当前传输路径的代码、查询约束中约束的方法对象、向随机约束队列中添加约束的方法对象也一并写入测试用例中。本公开实施例对于测试用例所包括的具体内容不做限制。
在一种可能的实现方式中,步骤S42包括:
获取当前传输路径;
根据当前传输路径,调用从随机约束队列中删除约束的方法对象,从随机约束队列中删除当前传输路径相关的约束。
举例来说,在从随机约束队列删除约束的场景中,可使用从随机约束队列中删除约束的方法对象。被删除的约束可以是与当前传输路径相关的约束。
因此,在执行步骤S42时,可以先获取当前传输路径。获取的方式可参见向随机约束队列添加约束的场景的相关描述。之后,根据当前传输路径,调用从随机约束队列中删除约束的方法对象,从随机约束队列中删除当前传输路径相关的约束。
在一个示例中,可以将与当前传输路径相关的所有约束都删除。在另一个示例中,进一步地,还可以获取用户需求删除的测试用例类型,在删除约束时,仅删除当前传输路径相关的、对应类型的约束,保留当前传输路径相关的其他测试用例类型的约束。
可以理解的是,从随机约束队列中删除约束还可以有更多实现方式,例如还可以模糊匹配约束、正则匹配约束,然后再从随机约束队列删除,本公开实施例对此不作限制。
通过这种方式,使得能够从随机约束队列删除约束,并保证被删除的约束的准确性。
在一种可能的实现方式中,步骤S42包括:
调用清空随机约束队列的方法对象,清空随机约束队列中的所有约束。
举例来说,用户可能不再需求当前随机约束队列中的所有约束,此时,可以直接调用清空随机约束队列的方法对象,清空随机约束队列中的所有约束。通过这种方式可以快速实现随机约束队列的清空。
本公开实施例的测试用例生成方法,不仅灵活的隔离了大规模芯片上各种复杂激励的约束问题,同时提供了一种灵活的机制给用户提供便利加速测试用例开发。一旦这种底层的机制实现之后,不同的用户可以根据底层给出的应用程序接口快速根据自身需求开发自定义的各种随机激励。
同时当前用户开发的约束和激励可以灵活移植个其他用户,甚至不同项目也可以灵活复用,极大提高了开发效率。
本公开实施例还提出一种测试用例生成装置,图6示出根据本公开实施例的测试用例生成装置的结构的示意图。
如图6所示,所述装置包括:
第一定义模块61,用于在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理所述随机约束队列中的约束的第一方法对象,所述基类还包括基础约束;
第一管理模块62,用于调用所述第一方法对象,调整所述随机约束队列中的约束;
合并模块63,用于将所述基础约束以及所述随机约束队列中的约束合并,得到约束合并结果;
生成模块64,用于根据所述约束合并结果和基础激励序列生成测试用例,所述测试用例用于对系统总线设置方式的正确性进行测试。
在一种可能的实现方式中,所述第一方法对象包括向所述随机约束队列中添加约束的方法对象、从所述随机约束队列中删除约束的方法对象、清空所述随机约束队列的方法对象。
在一种可能的实现方式中,所述装置还包括:第二定义模块,用于定义约束池,所述约束池用于存储不同传输路径上的约束以及管理所述约束池中的约束的第二方法对象;
所述第二方法对象包括查询所述约束池中的约束的方法对象、向所述约束池添加约束的方法对象、删除所述约束池中的约束的方法对象。
在一种可能的实现方式中,所述装置还包括:
第一获取模块,用于获取当前传输路径;
第二管理模块,用于调用所述查询所述约束池中的约束的方法对象,从所述约束池中获取所述当前传输路径相关的约束;
所述第一管理模块具体用于:调用所述向所述随机约束队列中添加约束的方法对象,将获取到的约束添加到所述随机约束队列。
在一种可能的实现方式中,所述第一管理模块具体用于:获取当前传输路径;
根据所述当前传输路径,调用所述从所述随机约束队列中删除约束的方法对象,从所述随机约束队列中删除所述当前传输路径相关的约束。
在一种可能的实现方式中,所述第一管理模块具体用于:调用所述清空所述随机约束队列的方法对象,清空所述随机约束队列中的所有约束。
在一种可能的实现方式中,所述装置还包括:
第二获取模块,用于获取目标传输路径;
第三管理模块,用于在所述目标传输路径生效后,调用所述向所述约束池添加约束的方法对象,向所述约束池添加所述目标传输路径相关的约束;
第四管理模块,用于在所述目标传输路径失效后,调用删除所述约束池中的约束的方法对象,删除所述约束池中所述目标传输路径相关的约束。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图7示出根据本公开实施例的装置1900的框图。例如,装置1900可以被提供为一电子设备。参照图7,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种测试用例生成方法,其特征在于,所述方法包括:
在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理所述随机约束队列中的约束的第一方法对象,所述基类还包括基础约束;
调用所述第一方法对象,调整所述随机约束队列中的约束;
将所述基础约束以及所述随机约束队列中的约束合并,得到约束合并结果;
根据所述约束合并结果和基础激励序列生成测试用例,所述测试用例用于对系统总线设置方式的正确性进行测试;
在所述测试用例被执行时,所述测试用例中的激励输出到验证环境,所述测试用例中的约束限制随机的地址空间的范围,所述地址空间是所述系统的地址空间。
2.根据权利要求1所述的方法,其特征在于,所述第一方法对象包括向所述随机约束队列中添加约束的方法对象、从所述随机约束队列中删除约束的方法对象、清空所述随机约束队列的方法对象。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:定义约束池,用于存储不同传输路径上的约束以及管理所述约束池中的约束的第二方法对象;
所述第二方法对象包括查询所述约束池中的约束的方法对象、向所述约束池添加约束的方法对象、删除所述约束池中的约束的方法对象。
4.根据权利要求3所述的方法,其特征在于,所述调用所述第一方法对象,调整所述随机约束队列中的约束之前,所述方法还包括:
获取当前传输路径;
调用所述查询所述约束池中的约束的方法对象,从所述约束池中获取所述当前传输路径相关的约束;
所述调用所述第一方法对象,调整所述随机约束队列中的约束,包括:
调用所述向所述随机约束队列中添加约束的方法对象,将获取到的约束添加到所述随机约束队列。
5.根据权利要求3所述的方法,其特征在于,所述调用所述第一方法对象,调整所述随机约束队列中的约束,包括:
获取当前传输路径;
根据所述当前传输路径,调用所述从所述随机约束队列中删除约束的方法对象,从所述随机约束队列中删除所述当前传输路径相关的约束。
6.根据权利要求3所述的方法,其特征在于,所述调用所述第一方法对象,调整所述随机约束队列中的约束,包括:
调用所述清空所述随机约束队列的方法对象,清空所述随机约束队列中的所有约束。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取目标传输路径;
所述目标传输路径生效后,调用所述向所述约束池添加约束的方法对象,向所述约束池添加所述目标传输路径相关的约束;
所述目标传输路径失效后,调用删除所述约束池中的约束的方法对象,删除所述约束池中所述目标传输路径相关的约束。
8.一种测试用例生成装置,其特征在于,所述装置包括:
第一定义模块,用于在针对系统总线设置方式的正确性进行测试的验证IP核VIP的基类内部增加随机约束队列,以及管理所述随机约束队列中的约束的第一方法对象,所述基类还包括基础约束;
第一管理模块,用于调用所述第一方法对象,调整所述随机约束队列中的约束;
合并模块,用于将所述基础约束以及所述随机约束队列中的约束合并,得到约束合并结果;
生成模块,用于根据所述约束合并结果和基础激励序列生成测试用例,所述测试用例用于对系统总线设置方式的正确性进行测试;
在所述测试用例被执行时,所述测试用例中的激励输出到验证环境,所述测试用例中的约束限制随机的地址空间的范围,所述地址空间是所述系统的地址空间。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至7中任意一项所述的方法。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
CN202311450819.3A 2023-11-02 2023-11-02 测试用例生成方法、装置、电子设备及存储介质 Active CN117172206B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311450819.3A CN117172206B (zh) 2023-11-02 2023-11-02 测试用例生成方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311450819.3A CN117172206B (zh) 2023-11-02 2023-11-02 测试用例生成方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117172206A CN117172206A (zh) 2023-12-05
CN117172206B true CN117172206B (zh) 2024-01-23

Family

ID=88941647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311450819.3A Active CN117172206B (zh) 2023-11-02 2023-11-02 测试用例生成方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117172206B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873625A (zh) * 2005-08-19 2006-12-06 华为技术有限公司 一种基于功能覆盖率的随机激励的自动产生方法
CN109992804A (zh) * 2017-12-29 2019-07-09 北京中科寒武纪科技有限公司 激励生成装置、芯片验证装置及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108745B2 (en) * 2009-08-20 2012-01-31 Honeywell International Inc. On-device constrained random verification for device development
US9727446B2 (en) * 2012-12-05 2017-08-08 The Mathworks, Inc. Modifiers that customize presentation of tested values to constraints
US10949334B2 (en) * 2018-11-26 2021-03-16 Cognizant Technology Solutions India Pvt. Ltd. System and a method for automated unit test generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873625A (zh) * 2005-08-19 2006-12-06 华为技术有限公司 一种基于功能覆盖率的随机激励的自动产生方法
CN109992804A (zh) * 2017-12-29 2019-07-09 北京中科寒武纪科技有限公司 激励生成装置、芯片验证装置及系统

Also Published As

Publication number Publication date
CN117172206A (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN108549580B (zh) 自动部署Kubernetes从节点的方法及终端设备
CN108279932B (zh) 一种移动终端动态配置用户界面方法和装置
WO2017054573A1 (zh) 一种配置方法及装置
US20190227913A1 (en) Regression testing of new software version and deployment
US20170048331A1 (en) Platform runtime abstraction
US20140101213A1 (en) Computer-readable recording medium, execution control method, and information processing apparatus
CN113495732A (zh) 服务器部署方法、装置、设备及可读存储介质
US9710575B2 (en) Hybrid platform-dependent simulation interface
US11675009B2 (en) Converting formal verification testbench drivers with nondeterministic inputs to simulation monitors
US20180018191A1 (en) Virtual Machine Seed Image Replication through Parallel Deployment
CN110868324A (zh) 一种业务配置方法、装置、设备和存储介质
CN117172206B (zh) 测试用例生成方法、装置、电子设备及存储介质
CN115150268A (zh) Kubernetes集群的网络配置方法、装置、及电子设备
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN111352664A (zh) 分布式机器学习任务启动方法、系统、设备及存储介质
CN115309491A (zh) 一种平台系统的逻辑算法
WO2021012834A1 (zh) 一种设备的升级方法及装置
CN110327626B (zh) 虚拟服务器创建方法及装置
CN115485677A (zh) 在分布式数据存储环境中的安全数据复制
KR102006212B1 (ko) 제 1 시뮬레이터에서 이용되는 xml 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 파이썬 스크립트를 생성하는 장치 및 방법
US10657211B2 (en) Circuit generation based on zero wire load assertions
CN117172208B (zh) 验证环境的隔离方法、装置、电子设备及存储介质
US10248396B1 (en) Code review with automated translation
CN113806327A (zh) 一种数据库设计方法、装置及相关设备
CN117171065B (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
GR01 Patent grant
GR01 Patent grant