支持使用不同应用的多个用户的测试系统的制作方法

文档序号:16287735发布日期:2018-12-14 23:24阅读:188来源:国知局
支持使用不同应用的多个用户的测试系统的制作方法

本申请涉及于2017年4月28日提交的、序列号为15/582,316、题为“测试程序流程控制(testprogramflowcontrol)”的美国专利申请(发明人为rotemnahum、rebeccatoy、boilampham、kevinliu和leonchen,并且代理人案号为atsy-0054-01.01us)。该美国专利申请出于所有目的通过引用以其整体合并于此。

本公开一般地涉及自动化测试设备领域,并且更具体地涉及控制这类设备的技术。

背景技术

自动化测试设备(ate)可以是对半导体晶圆或芯片、集成电路(ic)、电路板、或封装设备(例如,固态驱动器)执行测试的任意测试装备。ate装备可以被用来执行自动化测试,该自动化测试快速执行测量并且生成可以随后进行分析的测试结果。ate装备可以是从耦合到仪表的计算机系统到复杂的自动化测试装备(可以包括定制的专用计算机控制系统和能够自动地测试电子部件和/或半导体晶圆测试(例如,片上系统(soc)测试或集成电路测试)的许多不同测试器器件)的任意装备。ate系统减少了测试设备以确保设备按设计运行所花费的时间,并且作为诊断工具以在给定设备到达消费者之前确定该给定设备是否存在有故障的组件。

在典型的ate系统测试设备(通常称为被测设备或dut)时,ate系统将激励(例如,电信号)应用到设备并且检查设备的响应(例如,电流和电压)。通常,如果设备成功提供预先建立的容忍度内的某些预期响应,则测试的最终结果为“通过”,或如果设备没有提供预先建立的容忍度内的预期响应,则测试的最终结果为“失败”。更复杂的ate系统能够评估故障设备,从而潜在地确定故障的一个或多个原因。

ate系统通常包括引导ate系统的操作的计算机。通常,计算机运行一个或多个专用软件程序以提供(i)测试开发环境和(ii)设备测试环境。在测试开发环境中,用户通常创建测试程序,例如,控制ate系统的各个部分的一个或多个文件的基于软件的构造。在设备测试环境中,用户通常向ate系统提供一个或多个设备以用于进行测试,并且引导ate系统根据测试程序来测试每个设备。用户可以通过以下方式来测试附加设备:简单地将附加设备提供给ate系统,并且引导ate系统根据测试程序来测试附加设备。因此,ate系统使得用户能够基于测试程序以一致并且自动化的方式来测试多个设备。

在典型的现有技术测试环境中,dut被放置在受控环境舱室或“机箱(oven)”中。dut连接到测试头的切片。多个dut可以连接到单个切片,单个测试舱室可以包括多个切片。切片包括根据测试计划对dut执行测试的测试电路。在机箱中时,dut不能被用户访问,以免干扰舱室的受控环境。多个切片通常在锁定步骤中在多个dut上执行相同的测试计划。此外,测试头通常由单个控制器计算机系统来控制,该单个控制器计算机系统直接连接到测试头,并且以这种方式控制测试头的所有切片。控制器计算机通常由对dut执行单个测试计划的单个用户来操作。

该测试环境的问题是,通常情况下,在每个测试期间,没有足够的dut来完全填充给定测试头的切片。因此,在这种情况下,测试过程中的空白切片因为没有进行任何有用的工作而浪费掉。这些空位可能会降低整体测试吞吐量,因为非常昂贵的电子设备是空闲的。这些空闲切片不能用于不同的用途,因为:1)在测试期间舱室的内部不可访问;2)控制计算机在任意时刻仅支持一个用户;和3)切片(所有这些切片)一次仅在一个测试计划上操作,该一个测试计划通常仅用于一种类型的dut。

测试舱室也是笨重且昂贵的。传统测试环境的另一个缺点是,想要在几个不同用户组(例如,制造、工程等)之间同时共享测试舱室从而充分利用测试舱室的典型客户不能这样做。因为在典型的测试环境中,测试切片一次仅能在单个测试计划上操作,并且仅支持单个用户体验,所以客户无法在任何给定时间充分利用测试舱室,由此被迫购买附加设备或牺牲效率。总之,传统的测试舱室非常不灵活。



技术实现要素:

因此,存在对能够在多个用户之间共享的测试环境的需要。此外,需要的是,测试环境可以包括多个测试器切片,其中每个切片可以运行独立的测试计划,或独立于测试舱室中其余切片被使用。同样,需要的是,测试舱室允许在舱室内进行测试时访问舱室的内部,使得舱室可以被多个用户同时充分利用。最后,需要的是,其中每个测试器切片内的不同dut可以独立于系统中的其他dut运行测试流程的测试环境。使用所描述的系统的有益方面,没有它们各自的限制,本发明的实施例提供了解决这些问题的新颖解决方案。

本文公开的发明利用多个基元(primitive)(或测试器切片)和相关联的dut接口板(dib)来测试dut。每个基元都是模块化的,意味着它可以独立于其他基元进行操作。因此,设置在机架中的多个基元可以各自在不同的测试计划下操作,甚至在不同的dut类型上操作。基元与控制服务器进行通信以获取指令、控制、管理等。控制服务器能够托管针对其支持的各种基元的多个应用程序或测试计划。基元可以通过标准ip网络与服务器进行通信。可以位于远程的各种计算机系统可以通过标准ip网络连接访问服务器。此外,在一个实施例中,在测试与机架的基元相关联的dut时,不再需要环境舱室,因此有利地允许在任何时间针对dut和基元的直接用户操纵。

因此,在该测试平台下,由于:1)基元模块化;和2)使用标准ip网络,多个基元可以根据一个用户在给定测试计划下测试多个dut,而相同机架的第二多个基元执行由第二用户引导的完全不同的应用(甚至针对不同类型的dut),依此类推。因此,消除了现有技术中与空闲测试电路相关的问题。

此外,在本发明的一个实施例中,允许任意给定基元(或测试器切片)中的每个dut运行与基元中的其他dut相比不同的测试流程,从而为用户提供增加的灵活性并且使测试过程更加高效。换言之,不同于要求在测试器内的所有dut上运行相同测试程序和相同测试流程的传统测试器,本发明的实施例允许基元(或测试器切片)内的每个dut运行与相同基元内的其他dut相比不同的测试流程。

在一个实施例中,提出了一种用于使用自动化测试设备(ate)执行测试的方法,该方法包括将第一测试计划从第一用户计算机加载到控制服务器,其中控制服务器与测试器中的多个基元进行通信,其中多个基元被部署在测试器中的机架内。方法还包括将第一测试计划下载到来自多个基元的第一基元子集。此外,方法包括将第二测试计划从第二用户计算机加载到控制服务器,并且将第二测试计划下载到来自多个基元的第二基元子集。最后,方法包括同时执行第一测试计划和第二测试计划。

在另一实施例中,呈现了一种用于执行自动化测试的系统。系统包括第一用户计算机和第二用户计算机,第一用户计算机可操作用于将来自第一用户的第一测试计划加载到控制服务器,第二用户计算机可操作用于将来自第二用户的第二测试计划加载到控制服务器。系统还包括测试器和控制服务器,该测试器包括用于部署多个基元的至少一个机架。控制服务器通信地耦合到第一用户计算机、第二用户计算机和测试器,其中控制服务器可操作用于将第一基元子集分配给第一测试计划并且管理第一测试计划在第一基元子集上的执行,并且其中控制服务器还可操作用于同时将第二基元子集分配给第二测试计划并且管理第二测试计划在第二基元子集上的执行。

在又一实施例中,呈现了一种用于执行自动化测试的系统。系统包括第一用户计算机和第二用户计算机,第一用户计算机可操作用于将来自第一用户的第一测试计划加载到控制服务器,第二用户计算机可操作用于将来自第二用户的第二测试计划加载到控制服务器。系统还包括测试器和控制服务器,该测试器包括用于部署多个测试器切片的至少一个机架。控制服务器通信地耦合到第一用户计算机、第二用户计算机和测试器,其中控制服务器可操作用于将第一测试器切片子集分配给第一测试计划并且管理第一测试计划在第一测试器切片子集上的执行,并且其中控制服务器还可操作用于同时将第二测试器切片子集分配给第二测试计划并且管理第二测试计划在第二测试器切片子集上的执行。

以下详细描述连同附图将提供对本发明的性质和优点的更好理解。

附图说明

本发明的实施例在附图中以示例而非限制的方式示出,并且其中相同的附图标记指代相似的元件。

图1a是根据本发明的一个实施例的可以在其上实现本发明的自动化测试系统的实施例的计算机系统。

图1b是根据本发明的实施例的其中客户端系统和服务器可以耦合到网络的网络架构的示例的框图。

图2示出了其中将dut放置在受控环境舱室中的典型测试环境。

图3是示出测试器切片及其与系统控制器和dut的互连的示例性实施例的详细示意性框图。

图4a示出了根据本发明的实施例的与dut接口板(dib)400连接的基元。

图4b示出了包括多个基元的工作单元。

图5示出根据本发明的实施例的支持使用不同应用的多个用户的测试系统。

图6是示出本发明的实施例相对于传统测试器提供的新颖改进的高级概述。

图7示出了根据本发明的实施例的测试程序的各种组件。

图8示出了根据本发明的一个实施例的用于在相同测试器上同时运行多个测试程序的示例性计算机实现的过程的流程图。

图9示出了根据本发明的一个实施例的用于在相同测试器上的单个基元内同时运行多个测试流程的示例性计算机实现的过程的流程图。

在附图中,具有相同名称的元件具有相同或相似的功能。

具体实施方式

现在将详细参考本公开的各种实施例,其示例在附图中示出。虽然结合这些实施例进行了描述,但是将理解的是,它们并非意图将本公开限制于这些实施例。相反,本公开旨在覆盖可以被包括在由所附权利要求限定的本公开的精神和范围内的替代、修改和等同物。此外,在本公开的以下详细描述中,阐述了许多具体细节以提供对本公开的透彻理解。然而,将理解的是,可以在没有这些具体细节的情况下实践本公开。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以免不必要地模糊本公开的各方面。

以下的详细描述的一些部分是根据过程、逻辑块、处理以及计算机存储器内的数据位上的操作的其他符号表示来呈现的。这些描述和表示是数据处理领域的技术人员用来将其工作的实质最有效地传达给本领域其他技术人员的手段。在本申请中,过程、逻辑块、处理等被认为是产生期望结果的步骤或指令的自洽序列。这些步骤是利用对物理量的物理操纵的步骤。通常,虽然不一定,但是这些量采取能够在计算机系统中存储、传输、组合、比较、和以其他方式操纵的电信号或磁信号的形式。主要出于常用的原因,有时将这些信号称为事务、比特、值、元素、符号、字符、样本、像素等被证明是方便的。

但是应当记住,所有这些和类似的术语都与适当的物理量有关,并且仅仅是应用于这些量的便利标签。除非特别声明,否则从以下讨论中显而易见的是,应当理解,在整个本公开中,利用诸如“配置”、“提供”、“执行”、“传送”、“获得”、“实现”、“编程”、“分配”、“关联”、“设置”、“访问”、“控制”、“确定”、“识别”、“缓存”、“维护”、“比较”、“移除”、“读取”、“写入”之类的术语的讨论是指计算机系统或类似的电子计算设备或处理器(例如,图1a的系统110)的动作和过程(例如,图8的流程图800)。计算机系统或类似的电子计算设备在计算机系统存储器、寄存器、或其他这类信息存储、传输或显示设备内操纵和变换表示为物理(电子)量的数据。

本文描述的实施例可以在驻留在某种形式的计算机可读存储介质上的计算机可执行指令(例如,由一个或多个计算机或其他设备执行的程序模块)的一般上下文中讨论。通过示例的方式并且是非限制性的,计算机可读存储介质可以包括非暂态计算机可读存储介质和通信介质;非暂态计算机可读介质包括除瞬态、传播信号之外的所有计算机可读介质。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。程序模块的功能可以根据需要在各种实施例中组合或分配。

计算机存储介质包括以任意方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据之类的信息的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于,随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程rom(eeprom)、闪存或其他存储器技术、光盘rom(cd-rom)、数字多功能盘(dvd)或其他光存储器、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或可以用于存储所需信息并且可以被访问以获取该信息的任何其他介质。

通信介质可以体现计算机可执行指令、数据结构和程序模块,并且包括任意信息传递介质。通过示例的方式并且是非限制性的,通信介质包括有线介质(例如,有线网络或直接有线连接)和无线介质(例如,声学、射频(rf)、红外、和其他无线介质)。以上任意的组合也可以被包括在计算机可读介质的范围内。

图1a是能够支持具有不同应用的多个用户的测试器控制系统110的示例的框图。例如,系统110可以执行服务器525(如图5所示)的功能。测试器控制系统110广泛地表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。控制系统110的示例包括但不限于,工作站、膝上型计算机、客户端终端、服务器、分布式计算系统、手持设备、或任何其他计算系统或设备。在其最基本的配置中,控制系统110可以包括至少一个处理器114和系统存储器116。

处理器114通常表示能够处理数据、或解释并执行指令的任何类型或形式的处理单元。在某些实施例中,处理器114可以从软件应用或模块接收指令。这些指令可以使得处理器114执行本文描述和/或示出的一个或多个示例实施例中的功能。

系统存储器116通常表示能够存储数据和/或其它计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器116的示例包括但不限于,ram、rom、闪存、或任何其它合适的存储设备。虽然不是必需的,但是在某些实施例中,控制系统110可以包括易失性存储器单元(例如,系统存储器116)和非易失性存储设备(例如,主存储设备132)两者。

测试器控制系统110还可以包括除处理器114和系统存储器116之外的一个或多个组件或元件。例如,在图1a的实施例中,控制系统110包括存储器控制器118、输入/输出(i/o)控制器120、和通信接口122,它们各自可以经由通信基础设施112互连。通信基础设施112通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施112的示例包括但不限于,通信总线(例如,工业标准架构(isa)、外围组件互连(pci)、高速pci(pcie)、或类似总线)和网络。

存储器控制器118通常表示能够处理存储器或数据、或控制控制系统110的一个或多个组件之间的通信的任何类型或形式的设备。例如,存储器控制器118可以控制处理器114、系统存储器116、和i/o控制器120之间经由通信基础设施112的通信。

i/o控制器120通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,i/o控制器120可以控制或促进控制系统110的一个或多个元件(例如,处理器114、系统存储器116、通信接口122、显示适配器126、输入接口130、和存储接口134)之间的数据传送。

通信接口122广义地表示能够促进示例控制系统110与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,通信接口122可以促进控制系统110与包括附加控制系统的私有或公共网络之间的通信。通信接口122的示例包括但不限于,有线网络接口(例如,网络接口卡)、无线网络接口(例如,无线网络接口卡)、调制解调器、和任何其他合适的接口。在一个实施例中,通信接口122经由到网络(例如,因特网)的直接链接提供到远程服务器的直接连接。通信接口122还可以通过任何其他合适的连接来间接提供这样的连接。

通信接口122还可以表示主机适配器,该主机适配器被配置为促进控制系统110与一个或多个附加网络或存储设备之间经由外部总线或通信信道的通信。主机适配器的示例包括但不限于,小型计算机系统接口(scsi)主机适配器、通用串行总线(usb)主机适配器、ieee(电气和电子工程师协会)1394主机适配器、串行高级技术附件(sata)和外部sata(esata)主机适配器、高级技术附件(ata)和并行ata(pata)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口122还可以允许控制系统110参与分布式或远程计算。例如,通信接口122可以接收来自远程设备的指令或将指令发送到远程设备以供执行。

如图1a所示,控制系统110还可以包括经由显示适配器126耦合到通信基础设施112的至少一个显示设备124。显示设备124通常表示能够可视地显示由显示适配器126转发的信息的任何类型或形式的设备。类似地,显示适配器126通常表示被配置为转发图形、文本和其他数据以供在显示设备124上显示的任何类型或形式的设备。

如图1a所示,控制系统110还可以包括经由输入接口130耦合到通信基础设施112的至少一个输入设备128。输入设备128通常表示能够向控制系统110提供(计算机生成的或人为生成的)输入的任何类型或形式的输入设备。输入设备128的示例包括但不限于,键盘、点选设备、语音识别设备、或任何其他输入设备。

如图1a所示,控制系统110还可以包括经由存储接口134耦合到通信基础设施112的主存储设备132和备份存储设备133。存储设备132和133通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备132和133可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口134通常表示用于在存储设备132和133与控制系统110的其他组件之间传送数据的任何类型或形式的接口或设备。

在一个示例中,数据库140可以被存储在主存储设备132中。数据库140可以表示单个数据库或计算设备的部分,或其可以表示多个数据库或计算设备。例如,数据库140可以表示(被存储在)控制系统110的一部分和/或(下面)图2中的示例网络体系结构200的部分。替代地,数据库140可以表示(被存储在)能够由计算设备(例如,控制系统110和/或网络架构200的部分)访问的一个或多个物理上分离的设备。

继续参考图1a,存储设备132和133可以被配置为从可移除存储单元读取和/或写入可移除存储单元,该可移除存储单元被配置为存储计算机软件、数据或其他计算机可读信息。合适的可移除存储单元的示例包括但不限于,软盘、磁带、光盘、闪存设备等。存储设备132和133还可以包括用于允许将计算机软件、数据或其他计算机可读指令加载到控制系统110中的其他类似结构或设备。例如,存储设备132和133可以被配置为读取和写入软件、数据或其他计算机可读信息。存储设备132和133也可以是控制系统110的一部分,或可以是通过其他接口系统可访问的独立设备。

许多其他设备或子系统可以连接到控制系统110。相反,不需要图1a中示出的所有组件和设备以实践本文描述的实施例。以上引用的设备和子系统也可以以不同于图1a中示出的方式互连。控制系统110还可以使用任何数量的软件、固件和/或硬件配置。例如,本文公开的示例实施例可以编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用、计算机可读指令、或计算机控制逻辑)。

包括计算机程序的计算机可读介质可以被加载到控制系统110中。存储在计算机可读介质上的计算机程序的全部或一部分然后可以被存储在系统存储器116和/或存储设备132和133的各个部分中。在由处理器114执行时,加载到控制系统110中的计算机程序可以使得处理器114执行本文描述和/或示出的示例实施例的功能,和/或成为用于执行本文描述和/或示出的示例实施例的功能的装置。另外地或可选地,本文描述和/或示出的示例实施例可以以固件和/或硬件来实现。

图1b是网络架构100的示例的框图,其中客户端系统151、152和153以及服务器141和145可以耦合到网络150。客户端系统151、152和153通常表示任何类型或形式的计算设备或系统,例如,图1a的测试器控制系统110。

类似地,服务器141和145通常表示被配置为提供各种数据库服务和/或运行某些软件应用的计算设备或系统,例如,应用服务器或数据库服务器。网络150通常表示包括例如内联网、广域网(wan)、局域网(lan)、个域网(pan)、或互联网的任何电信或计算机网络。

参考图1a的控制系统110,通信接口(例如,通信接口122)可以被用来提供每个客户端系统151、152和153与网络150之间的连接。客户端系统151、152和153可以使用例如web浏览器或其他客户端软件来访问服务器141或145上的信息。这类软件可以允许客户端系统151、152和153访问由服务器140、服务器145、存储设备160(1)-(l)、存储设备170(1)-(n)、存储设备190(1)-(m)、或智能存储阵列195托管的数据。虽然图1a描述了使用网络(例如,互联网)来交换数据,但是本文描述的实施例不限于互联网或任何特定的基于网络的环境。

在一个实施例中,本文公开的一个或多个示例实施例的全部或一部分被编码为计算机程序,并且被加载到服务器141、服务器145、存储设备160(1)-(l)、存储设备170(1)-(n)、存储设备190(1)-(m)、智能存储阵列195、或其任何组合从而被执行。本文公开的一个或多个示例实施例的全部或一部分还可以被编码为计算机程序,存储在服务器141中,由服务器145运行,并且通过网络150分发到客户端系统151、152和153。

支持使用不同应用的多个用户的测试系统

图2示出了其中将dut放置在受控环境舱室10或“机箱”中的典型测试环境。dut被连接到测试头20的测试器切片。多个dut可以连接到单个测试器切片40。测试器切片(下面结合图4将进一步详细讨论)包括测试电路,该测试电路根据测试计划对dut执行测试。每个测试头20可以有多个测试器切片。dut在插入到机箱10中时被放置在托盘30中。当在机箱10中时,dut通常是用户不可访问的,从而不干扰舱室10的受控环境。在典型的环境舱室中,多个测试器切片在锁定步骤中在多个dut上执行相同的测试计划。此外,测试头通常由直接连接到测试头的单个控制器计算机系统(未示出)来控制,并且以这种方式控制测试头20的所有切片。控制器计算机通常由对dut执行单个测试计划的单个用户来操作。

该测试环境的问题是,通常情况下,在每次测试期间,没有足够的dut来完全填充给定测试头的测试器切片。因此,在这种情况下,测试过程中的空白切片因为没有进行任何有用的工作而浪费掉。这可能会降低整体测试吞吐量,因为非常昂贵的电子设备是空闲的。这些空闲切片不能用于不同的用途,因为:1)在测试期间舱室的内部不可访问;2)控制计算机在任意时刻仅支持一个用户;和3)切片(所有这些切片)一次仅在一个测试计划上操作。

测试舱室通常也是笨重且昂贵的。测试环境的另一个缺点是,想要在几个不同用户组(例如,制造、工程等)之间同时共享测试舱室从而充分利用测试舱室的典型客户不能这样做。因为在典型的测试环境中,测试切片一次仅能在单个测试计划上操作,并且仅支持单个用户体验,所以客户无法在任何给定时间充分利用测试舱室,由此被迫购买附加设备或牺牲效率。

图3是示出测试器切片及其与系统控制器和dut的互连的示例性实施例的详细示意性框图。

参考图3,每个测试器切片包括站点模块。在一个实施例中,站点模块可以被机械地配置到测试器切片340a-340n上,其中每个测试器切片包括至少一个站点模块。在某些典型实施例中,每个测试器切片可以包括两个站点模块和两个设备电源板。在其他实施例中,测试器切片可以包括更多或更少的站点模块和/或电源板。例如,图3的测试器切片340a包括站点模块310a和310b以及设备电源板332a和332b。然而,可以被配置到测试器切片上的设备电源板或站点模块的数量没有限制。测试器切片340通过网络交换机302连接到系统控制器301。网络交换机302可以用32位宽总线连接到每个站点模块。

在一个实施例中,系统控制器301可以是计算机系统,例如,个人计算机(pc),该个人计算机向ate的用户提供用户界面从而加载测试程序并且运行针对连接到ate300的dut的测试。advanteststylustm操作系统是设备测试期间通常使用的测试软件的一个示例。它向用户提供了图形用户界面,用于配置和控制测试。它还可以包括以下功能:控制测试流程、控制测试程序的状态、确定运行哪个测试程序、以及记录测试结果和与测试流程相关的其他数据。在一个实施例中,系统控制器可以被连接到并且控制多达512个dut。

在一个实施例中,系统控制器301可以通过网络交换机(例如,以太网交换机)被连接到站点模块板310a-310b。在其他实施例中,网络交换机可以与不同的协议(例如,光纤信道、802.11或atm等)兼容。

每个设备电源板332a-332b可以从站点模块310a-310b中的一个来控制。运行在测试器处理器304上的软件可以被配置为将设备电源分配给特定站点模块。在一个实施例中,站点模块310a-310b和设备电源332a-332b被配置为使用高速串行协议(例如,高速外围组件互连(pcie)、串行at附件(sata)、或串行连接scsi(sas)等等)彼此进行通信。

在一个实施例中,每个站点模块配置有两个fpga,如图3所示。图3的实施例中的每个fpga316和318由测试器处理器304控制。测试器处理器304可以使用8通道高速串行协议接口(例如,由图3中的系统总线330和332所指示的pcie)与每个fpga进行通信。在其他实施例中,测试器处理器304还可以使用不同的高速串行协议(例如,串行at附件(sata)、或串行连接scsi(sas))与fpga进行通信。

fpga316和318分别连接到存储器模块308和304。存储器模块可以与fpga设备和测试器处理器304耦合,并且可以由fpga设备和测试器处理器304控制。

fpga316和318可以分别通过总线352和354连接到负载板380上的dut372a-372m。负载板380是物理固定装置,其允许不知道用于在线路352和354上与dut进行通信的协议的站点模块端处的通用高速连接。然而,在dut端处,负载板需要被设计,以便具有特定于由dut使用的协议的连接器。

应当注意的是,图3仅示出了测试器切片的示例性实施例。此外,请注意,本发明的实施例不仅限于图3中示出的测试器切片的类型。本发明的实施例可以包括不同类型的测试器切片和基元,如将在下面进一步讨论的。

在本发明的一个实施例中,dut372a-372m被加载到负载板380上,负载板380被放置在热舱室390内以用于测试。dut372a-372m和负载板380从设备电源332a和332b获取电力。

可以连接到每个fpga的dut的数量取决于fpga中收发器的数量以及每个dut所需的i/o通道的数量。在一个实施例中,fpga316和318可以各自包括32个高速收发器,并且总线352和354可以各自是32位宽,然而,根据应用可以实现更多或更少的高速收发器和位宽。例如,如果每个dut需要8个i/o通道,则在这样的系统中,每个fpga只能连接4个dut。

图4a示出了根据本发明实施例的与dut接口板(dib)400相接口的基元410。类似于图2中示出的测试器切片40,图4的基元是适合测试头20并且包括测试电路的一种离散测试模块,其根据测试计划对dut执行测试。基元包括外壳450,在该外壳450内容纳所有各种电子设备,例如,站点模块、电源等。dib400可以包括多个dut420,该多个dut420使用针对dut420设定尺寸的定制连接器。dib400还可以包括外壳470。dib400通过类似于图3中示出的负载板380的负载板(未示出)与基元410的通用背板(未示出)相接口。基元410包括用于对dut420执行测试计划的测试电路(类似于图3中示出的测试器切片340a)。基元410可以独立于任何其它基元进行操作,并且连接到控制服务器(类似于图3中示出的系统控制器301)。

图4b示出了包括多个基元491的工作单元。本发明的实施例利用多个基元(类似于图4b中示出的基元)和相关联的dib来测试dut。本发明的实施例还可以使用测试器切片(类似于图2中的测试器切片40)来测试dut。每个基元(或测试器切片)都是模块化的,意味着其能够独立于其他基元(或测试器切片)进行操作。因此,设置在机架中的多个基元(如图4b所示)可以各自在不同的测试计划下进行操作。基元与控制服务器进行通信以获取指令、控制、管理等。控制服务器能够托管针对其支持的各种基元的多个应用程序或测试计划。基元可以通过标准ip网络与服务器进行通信。可以位于远程的各种计算机系统可以通过标准ip网络连接访问服务器。

因此,在该测试平台下,由于:1)基元模块化;和2)使用标准ip网络连接,多个基元或测试器切片可以根据一个用户在给定测试计划下测试多个dut,而相同机架的第二多个基元执行由第二用户引导的完全不同的应用(或不同的测试计划)等等。因此,迄今为止与传统测试系统的空闲测试电路相关联的问题被消除。例如,在包括6个基元的测试头中,可以有2个基元专用于工程部门以用于调试sata类型的设备,而4个基元可以专用于制造部门对ssd驱动器的容量测试。

在一个实施例中,如果测试系统使用图4中示出的基元,则在测试与机架的基元相关联的dut时不再需要环境舱室,因为基元被设计为以有效的方式分区。在该实施例中,基元的外壳450允许来自dut的热量保持在外壳内,因此不需要单独的加热舱室。作为结果,允许在任何时候对dut和基元进行直接用户操纵。换句话说,dut提供在较高的温度下测试dut所需的热量(当在外壳内被加电较长持续时间时)。此外,基元外壳450可以包括风扇和/或通风口,以允许空气在基元内循环以冷却dut,并且因此降低基元的内部温度。

在不同的实施例中,如果测试系统使用图2中示出的测试器切片,则仍然需要环境舱室,但是系统的模块化允许不同的用户对环境舱室的各个部分进行独占控制。因此,允许在任何时候对dut和测试器切片进行直接用户操纵。例如,第一用户可以利用第一组测试器切片在环境舱室中运行测试,而第二用户可以操纵第二组测试器切片内的受其独占控制的dut。

图5示出了根据本发明的实施例的支持使用不同应用的多个用户的测试系统500。如图5所示,控制服务器525与不同的基元540a和540b进行通信。这两个基元可以位于单个机架内(如图4b所示)。注意,虽然图5的示例性测试系统使用基元,但是本发明的原理同样也适用于使用测试器切片的测试系统。

基元540a被示出为使用测试计划“tp1”(通过dib)测试多个dut550a。基元540b被示出为使用被称为测试计划“tp2”的单独应用(通过dib)测试多个dut550b。通过两个不同的标准ip网络连接,第一用户计算机510和第二用户计算机520都连接到控制服务器525。

例如,第一用户计算机可以专用于客户的工程部门,而第二用户计算机可专用于制造部门。这些用户计算机可以彼此远离,并且可以远离服务器525。可以理解的是,更多的基元和/或测试器切片可以与服务器525进行通信,并且出于说明的目的仅示出两个。

在图5中示出的示例中,第二用户计算机520通过基元540b的执行来控制多个dut550b上的制造测试计划。该制造测试计划可以被加载到控制服务器525,然后被下载到基元540b以用于在dut550b上执行。测试结果可以在相反的方向被传送。在该示例中,用户计算机520可以在dut550b的批量制造测试期间处于生产专家的控制下。

以这种方式,本发明的实施例可以使用相同的测试器支持完全不同的功能。例如,在制造测试期间,测试器可以使用测试头内的基元子集来运行固定的工作流程。举例来说,制造工作流程可以包括给ssd驱动器印上条形码、测试它们、并且将它们标记为“通过”或“失败”。同时,工程团队的成员可以执行完全不同的功能,例如,使用测试头内的不同基元集合来调试sata驱动器的失败结果。

与上述测试一致的是,第一用户计算机510可以通过基元540a来控制应用于多个dut550a的工程测试计划。工程测试计划可以是正在开发的尚未最终确定的测试计划。或者,工程测试计划可以仅仅是用于使用不同协议来测试不同dut(例如,dut类型x与dut类型y)的不同类型的制造测试计划。该工程测试计划可以被加载到控制服务器525,然后被下载到基元540a以用于在dut550a上执行。测试结果可以在相反的方向被传送。在该示例中,用户计算机510可以处于开发测试计划(该测试计划当前处于原型以供将来使用)的测试工程师的控制下。

在一个实施例中,用户计算机510和520可以是运行测试软件(例如,advanteststylustm)的系统控制器。在不同的实施例中,用户计算机510和520可以是通过通信网络(例如,ip网络)连接到服务器525的用户终端,其中服务器525是运行测试软件(例如,advanteststylustm)的系统控制器。

在一个实施例中,服务器525是控制器,该控制器监视针对所有连接的基元(或测试器切片)的测试,并且还向用户提供gui。在其他实施例中,用户通过如图5所示的ip连接来连接到服务器,其中连接到服务器的每个用户计算机向相关联的用户提供单独的gui以控制相关联的基元集合。

在一个实施例中,服务器525可以执行在用户之间分配资源的分配方案。例如,服务器可以根据用户的应用向用户分配基元和/或测试器切片。在一个实施例中,服务器可以针对不同的用户动态地分配和管理不同的基元和/或测试器切片以用于不同的目的。服务器还允许每个用户计算机与连接到服务器525的各种基元(和它们相关联的dut)之间的双向通信。服务器还可以管理在各种连接的基元上同时执行的工作流程,并且跟踪连接的基元和/或测试器切片上的各种工作流程。

注意,本发明的实施例可以有利地用于使用相同的测试头20同时测试不同类型的设备(包括不同尺寸、类型和形状因子)。例如,可以使用相同的测试器使用不同的基元或测试器切片同时测试sata驱动器和ssd驱动器。

此外,可以针对被测试的每个不同类型的设备、或针对测试头内的每个基元或测试器切片运行不同的测试计划。这有利地允许单个用户将单个测试器用于多个并行功能,并且避免需要针对每个功能的专用测试器。为了支持本发明的实施例,在一个实施例中,测试器软件将具有同时加载多个测试程序的能力,其中每个测试程序可以同时在不同的基元上执行。例如,用户能够针对每个组加载一个测试程序,其中一个组被定义为一个托盘插槽上的所有dut。在一个实施例中,测试器软件可以具有支持与测试器系统中的基元一样多的同时执行的测试程序的能力。

因此,假定基元540a表示测试多个dut的多个基元,相同机架的第二多个基元540b可以被不同用户用于不同目的,从而消除任何空闲组件。更具体地,在工程团队在dut550a上执行第一测试时,制造团队可以有利地并行使用基元550b以准备稍后使用的后续测试。

因为在控制服务器525与用户计算机之间使用标准ip网络通信,所以多个用户计算机可以在任意时刻访问控制服务器525,并且可以是位于远程的。这允许多个不同的测试计划被加载到机架的各种基元中,并且通过不同用户的服务器控制相互独立运行。

在其中由于基元的设计而消除了环境舱室的实施例中,在基元540b的测试计划处于操作中时,可以直接与基元540a人工交互,反之亦然。

类似地,即使在其中仍在使用环境舱室的具有测试器切片的实施例中,不同的用户可以对环境舱室的各个部分具有独占控制,因为测试器切片可以被彼此独立地使用。

本发明的优点包括更大的测试器灵活性,因为每个基元可以独立地进行操作。本发明的另一优点是由于消除了空闲测试电路而提高了测试器效率。本发明的又一优点是多个用户可以在给定基元机架内同时在不同的dut上执行不同的测试计划。

测试程序流程控制

在一个实施例中,用户可以在连接到基元或测试器切片的每个dut上运行不同的测试流程。图6是示出本发明的实施例相对于传统测试器提供的新颖改进的高级概述。

如图6中所示以及以上所讨论的,传统测试器受到限制,因为它们只能在测试头内包括的所有测试器切片上运行单个测试计划(或测试程序)。

此外,如上所述,本发明的实施例根据以下部分地改进了传统测试器:1)基元模块化;和2)使用标准ip网络连接。因此,如图6所示,多个基元或测试器切片可以根据一个用户在给定测试计划下测试多个dut,而相同机架的第二多个基元执行由第二用户引导的完全不同的应用(或不同的测试计划)等等。例如,如果测试器620包括8个基元,则每个基元能够运行不同的测试程序(tp0、tp1...tp8)。此外,每个基元可以测试执行不同协议的dut,例如,一个基元或基元集合可以测试ssd驱动器,而另一基元或基元集合可以测试sata驱动器。

本发明的实施例还通过允许用户在连接到基元(或测试器切片)的每个dut上运行不同的测试流程来改进传统测试器。虽然连接到相同基元的所有dut可以执行相同协议,但是本发明的实施例允许每个基元上的dut运行不同的测试流程。如图6中的测试器630所示,连接到运行测试程序tp0的基元的dut0执行流程a,dut2执行流程b,并且dut7执行流程c。换句话说,基元内的每个dut可以运行其自己的测试流程,而不需要运行与基元中所有其他dut相同的测试流程。

图7示出了根据本发明的实施例的测试程序的各种组件。测试程序通常包括两个文件:标准测试接口语言(stil)和测试方法(.so)文件。测试方法(.so)文件通常包括将在测试器站点模块上运行以直接测试dut的计算机代码。另一方面,stil文件包括如何组织测试方法以创建测试程序的信息(以及其他配置信息)。

测试方法包括测试程序的基本构件块。例如,如图7所示,测试方法710可以包括打开设备的操作、在dut上执行重置、或任何其他测试相关操作。测试方法与dut直接进行通信。测试方法在stil文件中以层次结构组织,下面将使用图7详细说明。

在本发明的一个实施例中,测试方法在测试参数730中被调用。测试参数730是以特定顺序运行的测试方法的集合。测试参数通常包括测试方法的列表。

测试段740通常与单个测试参数730相关联。测试参数730可以在测试段中被调用。请注意,相同的测试参数可以在多个段中被使用。另外,还要注意,测试段包括dut的箱柜信息以及测试参数。箱柜号可以与dut所属的物理箱柜有关。因此,测试段将测试参数中的测试方法与物理dut(来自测试参数的测试方法应当在该物理dut上运行)结合起来。多个测试段可以被组合以形成程序序列。

程序序列760是以特定顺序运行的段的集合。存在四种不同的程序序列:(a)开始-预处理步骤,(b)主要-实际测试步骤,(c)完成-后处理步骤,例如,关闭设备电源、清理等,(d)调试-可以手动运行以用于调试目的的段(可以是可选的)。所有测试程序都具有开始、主要、完成程序序列。这里还有可用于调试目的的可选的调试程序序列。

传统测试器通常仅允许每个stil文件有一组程序序列。在本发明的一个实施例中,测试流程构造在测试器软件(例如,advanteststylustm)内被定义,包括四个程序序列的集合。例如,如图7所示,测试流程abc包括四个程序序列,即开始、主要、完成和调试。类似地,测试流程def也包括四个程序序列,即开始、主要、完成和调试。此外,测试套件构造被创建。测试套件720被定义为测试流程的集合。

在本发明的一个实施例中,用户能够有利地在一个stil文件内定义多个测试流程。本发明的实施例通过允许用户在一个stil文件内定义多个测试流程并且在连接到基元(或测试器切片)的每个dut上运行不同的测试流程来改进传统测试器。基元中的每个dut可以运行stil文件内定义的测试流程中的一个测试流程。虽然连接到相同基元的所有dut可以执行相同协议并且处于相同用户的控制下,但是本发明的实施例允许每个基元上的dut运行不同的测试流程。因此,本发明的实施例允许基于每个dut的灵活性(除了上述的基于每个基元的灵活性之外)。此外,本发明的实施例允许每个设备具有多个插入,其中每个插入需要不同的测试流程。stil文件被配置为处理所有插入。

通过允许基元中的每个dut在测试过程期间处于不同的点或阶段,本发明的实施例有利地使得测试与在一个测试程序中仅允许单个测试流程的传统测试器相比更有效。传统测试器被限制为在测试器内的所有dut上运行相同的测试流程。在不支持多个测试流程的情况下,制造过程和工程过程通常会更复杂,因为资源无法有效使用。

因此,本发明的实施例允许在任何给定时间在不同的dut上运行不同的测试方法,这允许用户充分利用测试器资源。在没有支持多个测试流程的能力的情况下,处于测试过程的不同阶段的dut需要被分离在多个测试器之间。举例来说,考虑测试器中的每个dut需要运行三个不同的测试程序。过去,客户需要加载第一测试程序,并且让测试器中的所有dut在开始第二测试程序之前完成。在第一测试程序运行完成之后,用户需要加载第二测试程序并且让所有设备完成,等等。

使用本发明的实施例,客户可以将三个测试程序中的每一个整合到多流程stil文件中的单个测试流程中。然后,如果dut1和2在dut0之前完成,则客户可以在dut0仍处于执行第一测试流程的中间阶段运行针对dut1和2的第二测试流程。因此,本发明的实施例不仅允许客户在各个基元上运行不同的测试程序,而且允许客户在各个dut上运行不同的测试程序。因此,本发明的实施例为用户提供了很大的灵活性并且有助于更有效地使用系统资源。

在一个实施例中,用户能够组合两个现有stil文件。因为在stil文件中定义的所有测试流程都依赖于相同的一组测试方法(例如,测试方法710),所以用户必须确保在每个单独测试程序的测试方法(.so)文件中可用的所有测试方法也可以在组合的测试程序的测试方法文件中可用。

本发明的实施例还允许图形用户界面(gui)编辑测试流程。例如,如图7所示,gui具有针对各种测试流程的选项卡,例如,primary,abc,def,ghi等。此外,每个流程具有针对该流程内的每个程序序列的单独选项卡,例如,如图7所示的开始、主要、完成、调试。在图7的示例中,测试流程窗口795示出了测试流程primary的主要序列。主要序列包括测试流程primary的实际测试步骤。本发明的实施例允许使用图7的示例中示出的gui来编辑测试流程。例如,为了编辑测试流程primary的主要序列,用户可以图形化地编辑测试流程窗口795中示出的段。

本发明的实施例还允许gui运行测试流程。在从gui运行测试程序时,用户可以选择运行一个测试流程或整个测试套件。为了运行特定测试流程,用户选择她想要运行的测试流程。然后用户可以开始运行测试程序。选择的流程将针对dut工具中选择的所有dut运行。为了运行测试套件,用户可以选择他希望程序在其上运行的dut,然后点击gui中dut工具中的运行按钮。在运行测试套件时,如果出现任何故障,测试套件可以停止运行,gui将报告故障(后续流程将不会在故障时运行)。

本发明的实施例还允许对执行顺序进行编号。如上所述,每个测试流程均基于基础段。本发明的实施例为每个段分配标识号码。这可以向用户提供对测试进度的更好的可见性。在运行期间,允许用户使用标识号码来确定测试处于哪个步骤。执行号码761(如图7所示)可以由用户编辑。此外,执行号码是可选的,并非每个段都需要执行号码。如果执行号码未定义,则不会显示。

在一个实施例中,测试器软件支持某些运行时间步骤。例如,针对每个设备,测试器软件可以自动地确定在dut上运行哪个测试流程。在测试流程结束时,自动化系统还可以决定在相关联的dut上是继续进行下一测试流程还是完成测试过程。

图8示出了根据本发明的一个实施例的用于在相同测试器上同时运行多个测试程序的示例性计算机实现的过程的流程图。然而,本发明不限于由流程图800提供的描述。相反,根据本文提供的教导,(一个或多个)相关领域的技术人员显而易见的是,其他功能流程也在本发明的范围和精神内。将继续参考上述示例性实施例来描述流程图800,但是方法不限于那些实施例。

在步骤802处,将第一测试计划从第一用户计算机(例如,用户计算机510)加载到控制服务器(例如,服务器525),其中控制服务器与测试器中的多个基元进行通信。如上所述,本发明的实施例也适用于测试器切片。控制服务器通常运行测试器软件(例如,advanteststylustm操作系统),这允许其与基元进行通信并且在基元内的dut上运行测试计划。

在步骤804处,将第一测试计划下载到来自多个基元的第一基元集合,以用于在与第一基元集合相关联的dut上执行。如在与图5相关联的示例中所提及的,第一用户计算机可以由工程组来控制,并且第一基元集合可以执行针对工程组的测试计划。

在步骤806处,将第二测试计划从第二用户计算机(例如,用户计算机520)加载到控制服务器。第二用户计算机可以例如处于客户站点处的制造组的控制下。

在步骤808处,将第二测试计划下载到来自多个基元的第二基元集合,以用于在与第二基元集合相关联的dut上执行。

在步骤810处,服务器同时在第一基元子集上执行第一测试计划并且在第二基元子集上执行第二测试计划。

图9示出了根据本发明的一个实施例的用于在相同测试器上的单个基元内同时运行多个测试流程的示例性计算机实现的过程的流程图。然而,本发明不限于由流程图900提供的描述。相反,根据本文提供的教导,(一个或多个)相关领域的技术人员显而易见的是,其他功能流程也在本发明的范围和精神内。将继续参考上述示例性实施例来描述流程图900,但是方法不限于那些实施例。

在步骤902处,将测试计划从用户计算机(例如,计算机510)加载到控制服务器(例如,服务器525),其中控制服务器与测试器中的多个基元(例如,基元540a-b)进行通信。控制服务器通常运行测试器软件(例如,advanteststylustm操作系统),这允许其与基元进行通信并且在基元内的dut上运行测试计划。

在步骤904处,将测试计划下载到来自多个基元的基元,以用于在与该基元相关联的dut上执行。如上所述,在本发明的一个实施例中,用户能够在测试计划的一个stil文件内定义多个测试流程。

在步骤906处,在基元内的第一dut上执行来自多个测试流程的第一测试流程。在步骤908处,在基元内的第二dut上执行来自多个测试流程的第二测试流程,其中第一测试流程和第二测试流程同时执行。如上所述,本发明的实施例通过允许用户在一个stil文件内定义多个测试流程并且在连接到基元(或测试器切片)的各个dut上运行不同的测试流程来改进传统测试器。基元中的每个dut可以运行stil文件中定义的测试流程中的一个测试流程。虽然连接到相同基元的所有dut可以执行相同的协议并且处于相同用户的控制下,但是本发明的实施例允许各个基元上的dut运行不同的测试流程。

出于解释的目的,前述描述已经参考具体实施例进行描述。然而,以上的说明性讨论并非旨在穷举或将本发明限制于所公开的确切形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本发明和具有各种修改的各种实施例,这些修改可以适用于预期的特定用途。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1