首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 修改 / 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性

在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性

阅读:948发布:2021-06-10

专利汇可以提供在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性专利检索,专利查询,专利分析的服务。并且本文公开了一种用于调试自动化器件测试的测试程序的方法。该方法包括接收对在第一调试会话期间 修改 的至少一个经修改的测试程序进行更新的命令并且保存测试计划的状态信息,其中该状态信息包括关于断点进入 位置 的信息,并且其中经修改的测试程序在测试计划内被调用。该方法随后包括暂停执行测试计划并且卸载经修改的测试程序。该方法还包括编译经修改的测试程序以产生编译文件并且然后使用编译文件将测试程序重新加载到测试计划内。最后,该方法包括在第二调试会话中重新开始执行经修改的测试程序并且在第二调试会话期间,在与断点进入位置相对应的断点处中断执行。,下面是在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性专利的具体信息内容。

1.一种用于调试自动化器件测试的测试程序的方法,所述方法包括:
接收对在第一调试会话期间修改的至少一个经修改的测试程序进行更新的命令;
保存测试计划的状态信息,其中所述状态信息包括关于断点进入位置的信息,并且其中所述经修改的测试程序在所述测试计划内被调用;
暂停执行所述测试计划;
从所述测试计划中卸载所述经修改的测试程序;
编译所述经修改的测试程序以产生与所述经修改的测试程序相关联的编译文件;
使用所述编译文件将所述经修改的测试程序重新加载到所述测试计划中;
在第二调试会话中重新开始执行所述经修改的测试程序;以及
在所述第二调试会话期间,在与所述断点进入位置相对应的断点处中断所述执行。
2.如权利要求1所述的方法,其中所述重新开始还包括:
清除在所述第一调试会话期间设置的先前的断点;
在所述经修改的测试程序中设置与所述断点进入位置相对应的断点;以及在所述第二调试会话期间当执行在与所述断点进入位置相对应的断点处中断之后,恢复所述先前的断点。
3.如权利要求1的方法,其中所述重新加载还包括:
将所述编译文件从系统控制器传输至现场控制器,其中所述系统控制器以通信的方式耦合至所述现场控制器,并且其中所述系统控制器控制所述现场控制器;
使用所述编译文件对与所述测试计划中经修改的测试程序相关联的测试实例进行实例化;以及
用在所述第一调试会话期间最初设置的参数值填充所述测试计划中的测试实例。
4.如权利要求1所述的方法,其中所述经修改的测试程序包括基础测试程序和基于所述基础测试程序的至少一个衍生的测试程序。
5.如权利要求4所述的方法,还包括:
在所述卸载之前标识基于所述基础测试程序的至少一个衍生的测试程序。
6.如权利要求1所述的方法,还包括:
在所述暂停之前执行所述经修改的测试程序直至完成。
7.如权利要求1所述的方法,其中所述断点进入位置是从包括以下各项的组中进行选择的:当前行、当前函数开始、以及任何先前的断点。
8.如权利要求1所述的方法,还包括:
在所述第二调试会话期间,从与所述断点进入位置相对应的断点开始执行所述测试计划直至完成。
9.如权利要求1所述的方法,还包括:
当所述经修改的测试程序被修改并且调试命令被执行时,调用所述命令以自动更新所述经修改的测试程序。
10.如权利要求1所述的方法,还包括:
确定在并发执行的支流项中,测试程序是否正在与所述经修改的测试程序并行运行;
当所述经修改的测试程序在所述暂停之后处于暂停状态的同时,执行并行运行的所述测试程序直至完成;以及
当所述经修改的测试程序正在执行的同时,暂停执行所述并发执行的支流项中的其他测试程序。
11.一种计算机可读存储介质,所述计算机可读存储介质在其上存储有计算机可执行指令,当被计算机系统执行时,所述计算机可执行指令致使所述计算机系统执行一种用于调试自动化器件测试的测试程序的方法,所述方法包括:
接收对在第一调试会话期间修改的至少一个经修改的测试程序进行更新的命令;
保存测试计划的状态信息,其中所述状态信息包括关于断点进入位置的信息,并且其中所述经修改的测试程序在所述测试计划内被调用;
暂停执行所述测试计划;
从所述测试计划中卸载所述经修改的测试程序;
编译所述经修改的测试程序以产生与所述经修改的测试程序相关联的编译文件;
使用所述编译文件将所述经修改的测试程序重新加载到所述测试计划中;
在第二调试会话中重新开始执行所述经修改的测试程序;以及
在所述第二调试会话期间,在与所述断点进入位置相对应的断点处中断所述执行。
12.如权利要求11所述的计算机可读存储介质,其中所述方法还包括:
清除在所述第一调试会话期间设置的先前的断点;
在所述经修改的测试程序中设置与所述断点进入位置相对应的断点;以及在所述第二调试会话期间当执行在与所述断点进入位置相对应的断点处中断之后,恢复所述先前的断点。
13.如权利要求11所述的计算机可读存储介质,其中所述方法还包括:
将所述编译文件从系统控制器传输至现场控制器,其中所述系统控制器以通信的方式耦合至所述现场控制器,并且其中所述系统控制器控制所述现场控制器;
使用所述编译文件对与所述测试计划中经修改的测试程序相关联的测试实例进行实例化;以及
用在所述第一调试会话期间最初设置的参数值填充所述测试计划中的测试实例。
14.如权利要求11所述的计算机可读介质,其中所述经修改的测试程序包括基础测试程序和基于所述基础测试程序的至少一个衍生的测试程序。
15.如权利要求14所述的计算机可读存储介质,其中所述方法还包括:
在所述卸载之前标识基于所述基础测试程序的至少一个衍生的测试程序。
16.如权利要求11所述的计算机可读存储介质,其中所述方法还包括:
在所述暂停之前执行所述经修改的测试程序直至完成。
17.如权利要求11所述的计算机可读介质,其中所述断点进入位置是从包括以下各项的组中进行选择的:当前行、当前函数开始、以及任何先前的断点。
18.如权利要求11所述的计算机可读存储介质,其中所述方法还包括:
在所述第二调试会话期间,从与所述断点进入位置相对应的断点开始执行所述测试计划直至完成。
19.如权利要求11所述的计算机可读存储介质,其中所述方法还包括:
当所述经修改的测试程序被修改并且调试命令被执行时,调用所述命令以自动更新所述经修改的测试程序。
20.如权利要求11所述的计算机可读存储介质,其中所述方法还包括:
确定在并发执行的支流项中,测试程序是否正在与所述经修改的测试程序并行运行;
当所述经修改的测试程序在所述暂停之后处于暂停状态的同时,执行并行运行的所述测试程序直至完成;以及
当所述经修改的测试程序正在执行的同时,暂停执行所述并发执行的支流项中的其他测试程序。
21.一种用于调试自动化器件测试的测试程序的系统,所述系统包括:
内存,所述内存包括在其中存储的开发环境,其中所述开发环境可操作用于调试测试程序,并且其中所述开发环境包括调试器;
处理器,所述处理器被耦合至所述内存,所述处理器被配置为根据所述开发环境进行操作以:
保存测试计划的状态信息,其中所述状态信息包括关于断点进入位置的信息,并且其中经修改的测试程序在所述测试计划内被调用;
暂停执行所述测试计划;
从所述测试计划中卸载所述经修改的测试程序;
编译所述经修改的测试程序,其中所述编译产生与所述经修改的测试程序相关联的编译文件;
使用所述编译文件将所述经修改的测试程序重新加载到所述测试计划中;
在调试会话中重新开始执行所述经修改的测试程序;以及
在所述调试会话期间,在与所述断点进入位置相对应的断点处中断所述执行。

说明书全文

在用于编译自动化半导体器件测试的测试计划的开发环境

内实施编辑并更新功能性

技术领域

[0001] 本发明实施例总体上涉及自动化器件测试,并且更具体地涉及用户友好且有效率的用于调试自动化器件测试的测试程序的方法和系统。

背景技术

[0002] 自动化测试设备(ATE)可以是对器件、半导体薄片或模具等进行测试的任何测试组件。ATE组件可以用于执行自动化测试,自动化测试快速进行测量并且生成测试结果,然
后测试结果可以被分析。ATE组件可以是从联接至计量器的计算机系统到复杂自动化测试
组件的任何事物,可以包括定制的专用计算机控制系统和许多能够自动测试电子设备零件
和/或半导体的不同测试仪器。自动测设设备(ATE)常用于电芯片制造领域。ATE系统既
减少了花费在测试器件以确保器件按照设计的那样发挥功能上的时间量,又用作诊断工具
以在给定器件到达消费者手中之前确定其内存在故障部件。
[0003] 在测试器件或产品时,例如,在生产之后,除其他事项以外,实现产品高质量、对器件或产品性能的估计、关于制造工艺的反馈和最终客户高满意度是至关重要的。通常进行
多项测试以便保证器件或产品正确功能。因为测试过程费用高昂,除了确保器件的性能之
外,最大化测试速度和生产率同样是重要的。
[0004] 测试计划或测试程序包括所有对ATE系统进行半导体器件测试所必要的用户自定义数据和控制流程。更确切地说,测试计划是一种程序,其中满足器件规格、测试条件和
测试算法的组合以及测试流程的测试条件用测试仪软件语言进行描述。测试程序中的主控
制流程被称为测试程序流程,其指定待应用于DUT的单项测试的顺序、以及测试将被应用
的顺序(其取决于单项测试的结果)。
[0005] 当为DUT写入测试程序时,通常该程序的主要部分是用于器件测试的“数据”,其余的是程序代码,其自身实现了测试方法。该数据与DUT相关(例如,电源条件、信号电压
条件、计时条件等)。该测试代码可以由将指定的器件条件加载到测试仪硬件的方法、还有
实现用户指定的目标(如数据记录等)所需要的方法组成。ATE框架还可以提供独立于硬
件的测试和允许用户执行DUT测试编程任务的测试仪对象模型。
[0006] 由于测试方法在器件测试质量和测试仪生产率中是重要的组成部分,所以其通常对最终用户保密。这种分离使得系统运行更安全。进一步地,为了增加测试代码的可重用
性,这种代码应独立于任何器件特定数据(例如,引脚名、激励数据等)或器件测试特定数
据(例如,DC单元条件、测量引脚、目标引脚数量、图形文件名、图形程序地址等)。如果用
于测试的代码用这些类型的数据编译,则测试代码的可重用性会降低。因此,应使得任何器
件特定数据或器件测试特定数据在外部作为代码执行期间的输入来可供用于测试代码。
[0007] 在常规ATE测试仪软件中,“测试类”实现了具体测试类型的测试数据和代码的分离(并且因此实现了代码的可重用性)。这种测试类可以被认为是用于单独测试实例的“模
板”,这些实例仅基于器件特定数据和/或器件测试特定数据彼此不同。测试类通常在测试
计划文件中进行指定。每个测试类通常实施特定类型的器件测试或器件测试的设置。例如,
测试仪软件可以提供简单测试类以实施功能测试、AC参数测试以及DC参数测试。相应地,
测试类是测试的模板。在测试类本身中并未描述与器件相关的测试条件。仅描述了用于使
用该测试系统执行测试的算法。
[0008] 测试类允许用户通过提供用于为该项测试的具体实例指定选项的参数来配置类行为。例如,用于实施功能测试的测试类可以提供用于指定在正被测试的DUT上执行的测
试模式的参数。其还可以提供用来为测试指定等级和定时条件的参数。为这些参数指定
不同的值允许用户创建功能测试的不同实例。在一实施例中,测试类用常规编程语言(如
C++)开发。
[0009] 测试仪软件系统(如爱德万测试株式会社(Advantest Corporation)的T2000系统软件)通常包括编译器,该编译器对用测试仪系统的编程语言(例如,OPENSTAR测试编
程语言(“OTPL”)编写的测试计划进行编译。OTPL可以用于描述测试执行顺序和所用的
相应测试条件。虽然OTPL可以描述测试计划,但通常不描述任何测试算法。例如,系统中
的测试算法(如T2000)可以使用如以上所讨论的测试类中的C++语言来描述。
[0010] ATE的大多数用户使用开发环境(例如,微软开发人员工作室(“MDS”))来制备他们的测试类。通常,测试仪软件系统开发人员会提供插件给用户,从而用户可以在同样的
环境中编辑和创建测试计划。因此,用户能够写出测试类和测试计划,并且从他们选择的开
发环境内执行调试。开发环境(如MDS)通常可以为调试项目提供“编辑并继续”功能。“编
辑并继续”是个省时的功能,可以使用户能够在程序处于中断模式时对源代码进行更改。当
通过选择执行命令(如“继续”或“步骤”)来恢复程序执行时,“编辑并继续”操作自动应
用存在某些局限性的代码变更。这允许用户在调试会话过程中对代码做出变更,而不是必
须停止、重新编译整个程序、并且重启该调试会话。
[0011] 然而在典型的开发环境中,可用的“编辑并继续”功能(例如,MDS)具有若干局限性,这些局限性限制了用户充分利用该功能的能。首先,无法结合所有类型的代码来使
用。例如,在调试64位代码时无法用于调试环境。结果,出于性能原因开发64位测试类和
测试计划的测试仪软件的很多用户无法利用此项功能。
[0012] 更重要地,常规“编辑并继续(Edit and Continure)”功能对所允许的代码变化类型具有各种各样的限制。例如,一个缺陷是常规开发环境在使用这一功能时仅允许做出相
对较小的代码变化。通常,改变后的代码段被重新编译,对应于改变后的代码的执行内存的
一小部分被换出并且被使用新代码生成的新内存替代。之后,相应地设置适当的指令指
针。
[0013] 如常规系统中所设计的特征不能够处理需要比在代码中做出仅会改变相对较小部分的加载内存的微小变化(例如,句法变化)更复杂的事物的任何复杂代码变更。其结
果是,其对于ATE的测试类开发者而言不是很有用。如果用户在制备测试类时出现任何实
质性错误或者当测试计划正在执行时由于任何其他原因而需要替换测试类,则他们通常必
须停止测试计划并且首先将测试计划卸载。随后,开发者需要编辑、重新编译和重新链接测
试类。接着,他们需要重新加载测试计划并且在返回到代码的原点之前从开始处重新启动
该测试计划。这种工作流程是费时的并且容易出错。

发明内容

[0014] 因此,需要一种允许用户在测试计划执行过程中对测试类做出改变而不需要手动执行调试过程中目前当对测试类做出改变时需要的所有步骤(如卸载和重新加载整个测
试计划)的自动化方法和系统。这允许开发者以比使用常规系统所允许他们的方式显著更
高效且不易出错的方式来制备和调试测试类。
[0015] 为了达到这一目的,本发明的实施例在测试仪软件系统内提供了编辑并更新(Edit and Update)功能。当调试时,用户可以在测试类源代码中设置引起系统停止的断
点。用户可以编辑源代码,由此发起编辑并更新会话。然后,存储状态信息并且卸载编辑后
的测试类。随后,编辑并更新程序将重新编译编辑后版本的测试类并用新编译的版本替换
原始版本。然后,编辑后的测试类被重新执行并自动后退到与用户中断调试的地方相同的
断点,并且之前存储的状态信息被恢复。然后,测试计划可以用新编辑的代码继续进行。
[0016] 本文公开了一种用于调试自动化器件测试的测试程序的方法。该方法包括接收对在第一调试会话期间修改的至少一个经修改的测试程序进行更新的命令并且保存测试计
划的状态信息,其中该状态信息包括关于断点进入位置的信息,并且其中经修改的测试程
序在测试计划内被调用。该方法随后包括暂停执行测试计划并且卸载经修改的测试程序。
该方法还包括编译经修改的测试程序以产生编译文件,然后使用编译文件将测试程序重新
加载到测试计划中。最后,该方法包括在第二调试会话中重新开始执行经修改的测试程序
并且在第二调试会话期间,在与断点进入位置相对应的断点处中断执行,由此恢复早前所
保存的状态信息。
[0017] 在另一个实施例中,公开了一种计算机可读存储介质。该计算机可读存储介质在其上存储有计算机可执行指令,当被计算机系统执行时,该计算机可执行指令致使计算机
系统执行一种调试自动化器件测试的测试程序的方法。该方法包括接收对在第一调试会话
期间修改的至少一个经修改的测试程序进行更新的命令并且保存测试计划的状态信息,其
中该状态信息包括关于断点进入位置的信息,并且其中经修改的测试程序在测试计划内被
调用。该方法随后包括暂停执行测试计划并且卸载经修改的测试程序。该方法还包括编
译经修改的测试程序以产生编译文件,然后使用编译文件将测试程序重新加载到测试计划
中。最后,该方法包括在第二调试会话中重新开始执行经修改的测试程序并且在第二调试
会话期间,在与断点进入位置相对应的断点处中断执行,由此恢复早前所保存的状态信息。
[0018] 在另一个实施例中,公开了一种用于调试自动化器件测试的测试程序的系统。该系统包括内存,该内存包括在其中存储的开发环境,其中该开发环境可操作用于调试测试
程序,并且其中该开发环境包括调试器。该系统还包括处理器,该处理器被耦合至内存,该
处理器被配置为根据开发环境进行操作以:(a)保存测试计划的状态信息,其中该状态信
息包括关于断点进入位置的信息,并且其中经修改的测试程序在测试计划内被调用;(b)
暂停执行测试计划;(c)从测试计划中卸载经修改的测试程序;(d)编译经修改的测试程
序,其中该编译生成与经修改的测试程序相关联的编译文件;(e)使用编译文件将经修改
的测试程序重新加载到测试计划中;(f)在调试会话中重新开始执行经修改的测试程序;
以及(g)在调试会话期间,在与断点进入位置相对应的断点处中断执行。早前保存的状态
信息随后被恢复。
[0019] 以下详细说明与附图一起将提供对本发明的性质和优点的更好理解。

附图说明

[0020] 通过举例而非通过限制方式在附图的这些图中展示了本发明的实施例,并且在附图中,相似的标号指代相似的元件。
[0021] 图1是根据本发明的一个的实施例,可在其上实施本发明的自动化测试系统的实施例的示例性计算机系统。
[0022] 图2A是根据本发明的一个的实施例,可在其上实施本发明的实施例的示例性自动化测试设备装置的示意性框图
[0023] 图2B是图2A的自动化测试设备装置的一个实施例的更详细的示意性框图。
[0024] 图3展示了关于不同测试实例可以从单个测试类创建的方式的图。
[0025] 图4是展示了测试计划内的测试类的验证和执行示例性软件过程的框图。
[0026] 图5是根据本发明的一个实施例,展示了编辑并更新功能的实施方式的示例性软件过程的框图。
[0027] 图6展示了根据本发明的一个实施例的屏幕上图形用户界面配置对话框,从而让用户设立编辑并更新功能的各种设置。
[0028] 图7是展示了根据本发明的一个实施例的编辑并更新会话的生命周期的框图。
[0029] 图8是展示了在作为并发流程项内的支流的一部分的流程项内的编辑并更新程序的调用的流程图
[0030] 图9根据本发明的一个实施例,描绘了用于实施编辑并更新功能的示例性计算机控制过程的流程图。

具体实施方式

[0031] 现在将详细参考本公开的各种实施例,在附图中展示了这些实施例的实例。虽然结合这些实施例进行描述,但是应当理解的是它们无意将本公开限制于这些实施例。相反,
本公开意在涵盖可包括在所附权利要求书限定的本公开的精神和范围内的替代形式、修改
形式以及等同形式。而且,在本公开的以下详细描述中,给出了很多具体细节以提供对本发
明的透彻理解。然而,将理解的是在不具有这些具体细节的情况下可以实施本公开。在其
他实例中,并未详细描述众所周知的方法、程序、部件以及电路,以免不必要地混淆本发明
的方面。
[0032] 下文的详细描述的一些部分以计算机内存中数据位上的操作的程序、逻辑块、处理、及其他符号表示来呈现。这些描述和表示是由数据处理领域的技术人员所使用的方式,
以便将他们工作的实质最有效地传达给本领域其他技术人员。在本申请中,程序、逻辑块、
过程等等被设想为产生期望结果的一系列自洽性步骤或指令。这些步骤是利用对物理量进
行物理操纵的那些步骤。通常,尽管不是必要的,这些量采用能够在计算机系统中存储、转
移、组合、比较、及以其他方式操纵的电信号或磁信号的形式。主要出于常用的原因,已经证
明有时将这些信号称作事务、位、值、元素、符号、字符、样本、像素等等是方便的。
[0033] 然而,应记住所有这些和相似术语将与适当的物理数量相关联并且仅是应用于这些数量上的方便的标签。除非另外特别说明(如从以下讨论中明显看出),否则应当认识到
贯穿本公开,利用术语如“接收”、“保存”、“暂停”、“卸载”、“编译”、“重新加载”、“重新开始”、“使相关联”、“执行”、“移除”、“释放”、“保留”、“设置”、“访问”、“清空”、“控制”、“添加”、“确定”、“标识”等进行的讨论是指计算机系统或类似的电子计算装置或处理器(例如,图1的
系统110)的动作或进程(例如,图9的流程图900)。该计算机系统或类似的电子计算装置
操纵和转换数据,这些数据被表示为在计算机系统内存、寄存器或其他这样的信息存储、传
递或显示装置中的物理(电子)量。
[0034] 本文描述的实施例可以在计算机可执行指令的一般环境中进行讨论,这些指令驻留于由一个或多个计算机或其他装置执行的某种形式的计算机可读存储介质(如程序模
块)上。举例来讲而非限制地,计算机可读存储介质可以包括非暂态计算机可读存储介质
和通信介质;非暂态计算机可读介质包括除了暂态传播信号以外的所有计算机可读介质。
一般而言,程序模块包括执行具体任务或实施具体抽象数据类型的例程、程序、对象、部件、
数据结构等。程序模块的功能性可以在不同实施例中如所希望的那样结合或分布。
[0035] 计算机存储介质包括在用于信息(例如,计算机可读指令、数据结构、程序模块、或其他数据)存储的任何方法或技术中实施的易失性和非易失性、可移除和非可移除介
质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编
程ROM(EEPROM)、闪存存储器、或其他的存储器技术、高密度磁盘ROM(CD-ROM)、数字通用光
盘(DVD)或其他的光存储器、磁带盒、磁带、磁盘存储器或其他磁存储装置、或可以用来存
储所期望的信息并且可以对其进行访问以检索该信息的任何其他介质。
[0036] 通信介质可以实施计算机可执行指令、数据结构以及程序模块,并且包括任意信息传送介质。举例来讲而非限制地,通信介质可以包括有线介质(如有线网络或直接有线
连接)以及无线介质(如声学、射频(RF)、红外及其他无线介质)。上述任何内容的组合也
可以包括在计算机可读存储介质的范畴中。
[0037] 图1是能够实施本公开的实施例的系统控制器的计算系统100的示例的框图。例如,在一个实施例中,计算系统100可以实施测试仪系统的控制器。计算系统110广义上表
示能够执行计算机可读指令的任何单处理器或多处理器的计算装置或系统。计算系统110
的示例包括但不限于:工作站、膝上型计算机、客户方终端、服务器、分布式计算系统、或任
何其他计算系统或装置。在其最基本的配置中,计算系统110可以包括至少一个处理器114
以及系统内存116。
[0038] 处理器114通常表示能够处理数据或解释并执行指令的任何类型或形式的处理单元。在某些实施例中,处理器114可以从软件应用程序或模块接收指令。这些指令可以使
处理器114执行在此所说明和/或展示的这些示例实施例中的一个或多个实施例的功能。
[0039] 系统内存116通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或介质。系统内存116的示例包括但不限于:RAM、ROM、闪
存、或任何其他合适的存储装置。尽管未作要求,但在某些实施例中,计算系统110可以既
包括易失性内存单元(例如,系统内存116)又包括非易失性存储装置(例如,主存储装置
132)。
[0040] 除了处理器114和系统内存116外,计算系统110还可以包括一个或多个部件或元件。例如,在图1的实施例中,计算系统110包括内存控制器118、输入/输出(I/O)控制
器120、以及通信接口122,它们各自均可以通过通信基础设施112相互连接。通信基础设施
112通常表示能够协助在计算装置的一个或多个部件之间进行通信的任意类型或形式的基
础设施。通信基础设施112的示例包括但不限于通信总线(如工业标准体系结构(ISA)、外
围部件互联(PCI)、PCI Express总线接口(PCIe)、或类似总线)和网络。
[0041] 内存控制器118通常表示操作内存或数据或者控制计算系统110的一个或多个部件之间的通信的任意类型或形式的装置。例如,内存控制器118可以通过通信基础设施112
来控制处理器114、系统内存116以及I/O控制器120之间的通信。
[0042] I/O控制器120通常表示能够协调和/或控制计算装置的输入和输出功能的任何类型或形式的模块。例如,I/O控制器120可以控制或协助在计算系统110的一个或多个
元件(如处理器114、系统内存116、通信接口122、显示适配器126、输入接口130、以及存储
接口134)之间的数据传输。
[0043] 通信接口122广义地表示能够协助示例计算系统110与一个或多个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例如,通信接口122可以协助计算系统
110与包括附加计算系统的私有或公共网络之间的通信。通信接口122的示例包括但不限
于:有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调
器、以及任何其他适当的接口。在一个实施例中,通信接口122通过到网络(如互联网)的
直接链路来提供到远程服务器的直接连接。通信接口122还可以通过任何其他合适的连接
间接地提供这种连接。
[0044] 通信接口122还可以表示主机适配器,该主机适配器被配置为通过外部总线或通信信道来协助计算系统110与一个或多个附加网络或存储装置之间的通信。主机适配器
的示例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机
设配器、IEEE(电气和电子工程学会)1394主机适配器、串行高级技术附件(SATA)和外部
SATA(eSATA)主机适配器、高级技术附件(ATA)和并行ATA(PATA)主机适配器、光纤通道接
口适配器、以太网适配器等。通信接口122还可以允许计算系统110参与分布式计算或远
程计算。例如,通信接口122可以从远程装置接收指令或向远程装置发送指令用于执行。
[0045] 如图1中所示,计算系统110还可以包括通过显示适配器126耦合至通信基础设施112的至少一个显示装置124。显示装置124通常表示能够可视地呈现显示适配器126
所转发的信息的任意类型或形式的装置。类似地,显示适配器126通常表示被配置为转发
图形、文本以及其他数据以便显示在显示装置124上的任意类型或形式的装置。
[0046] 如图1中所示,计算系统110还可以包括通过输入接口130耦合至通信基础设施112的至少一个输入装置128。输入装置128通常表示能够向计算系统110提供由计算机或
人员生成的输入的任意类型或形式的输入装置。输入装置128的示例包括但不限于键盘
指向装置、语音识别装置或任何其他输入装置。
[0047] 如图1中所示,计算系统110还可以包括通过存储接口134耦合到通信基础设施112上的主存储装置132以及备份存储装置133。存储装置132和133通常表示能够存储
数据和/或其他计算机可读指令的任何类型或形式的存储装置或介质。例如,存储装置132
与133可以是磁盘驱动器(例如,所谓的硬驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、
闪存驱动器等等。存储接口134通常表示用于在存储装置132和133与计算系统110的其
他部件之间传送数据的任何类型或形式的接口或装置。
[0048] 在一个示例中,数据库140可以被存储在主存储装置132中。数据库140可以表示单个数据库或计算装置的一些部分,或者其可以表示多个数据库或计算装置。
[0049] 继续参照图1,存储装置132和133可以被配置为从可移除存储单元读取和/或向可移除存储单元写入,该可移除存储单元被配置为存储计算机软件、数据、或其他计算机可
读信息。适合的可移除存储单元的示例包括但不限于软盘、磁带、光盘、闪存装置等等。存
储装置132和133还可以包括其他类似的结构或装置以允许将计算机软件、数据、或其他计
算机可读指令载入计算系统110中。例如,存储装置132和133可以被配置用于读取和写
入软件、数据、或其他计算机可读信息。存储装置132和133还可以作为计算系统110的一
部分或可以是通过其他接口系统访问的单独装置。
[0050] 很多其他装置或子系统可以连接至计算系统110。相反地,为了实施在此描述的实施例,不需要存在图1中所示的所有部件和装置。以上提到的这些装置和子系统还能够
以不同于图1中所示的方式进行相互连接。计算系统110还可使用任意数量的软件、固件
和/或硬件的配置。例如,在此公开的示例实施例可以被编码为一种计算机可读介质上的
计算机程序(还称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)。
[0051] 包含计算机程序的计算机可读介质可以加载到计算系统110中。存储在计算机可读介质上的所有或部分计算机程序然后可以存储在系统内存116和/或存储装置132和
133的各个部分上。当由处理器114执行时,加载到计算系统110中的计算机程序可以致使
处理器114执行和/或作为一种手段用于执行在此描述和/或展示的示例实施例的功能。
另外或替代地,在此描述和/或展示的示例实施例可以在固件和/或硬件中实施。
[0052] 例如,用于运行测试计划的计算机程序可以存储在计算机可读介质上并且然后存储在系统内存116和/或存储装置132和133的各部分中。当由处理器114执行时,计算
机程序可以致使处理器114执行和/或作为一种手段用于在并发测试环境下执行在多个测
试核之间共享资源所需的功能。
[0053] 在某些开发环境下发现的常规的编辑并继续功能具有各种局限性。首先,无法结合所有类型的代码来使用。例如,在调试64位代码时无法用于调试环境。结果,出于性能
原因开发64位测试类和测试计划的测试仪软件的很多用户无法利用此项功能。
[0054] 第二,对所允许的代码变化类型有限制。例如,一个缺陷是常规开发环境在使用这一功能时仅允许做出相对较小的代码变化。通常,改变后的代码段被重新编译,对应于改变
后的代码的执行内存的一小部分被换出并且被使用新代码生成的新内存块替代。之后,相
应地设置适当的指令指针
[0055] 如常规系统中所设计的特征不能够处理器任何复杂的代码变更。其结果是,其对于ATE的测试类开发者而言不是很有用。如果用户在制备测试类时出现实质性错误或者当
测试计划正在执行时由于任何其他原因而需要替换测试类,则他们通常必须停止测试计划
并且首先将测试计划卸载。接着,他们需要重新加载测试计划并且在返回到代码的源点之
前从开始处重新启动该测试计划。这种工作流程是费时的并且容易出错。
[0056] 因此,本发明的实施例提供了一种允许用户在测试计划执行过程中对测试类做出改变而不需要手动执行所有以上讨论的步骤的自动化方法和系统。这允许开发者以比使用
常规系统所允许他们的方式显著更高效且不易出错的方式来制备和调试测试类。
[0057] 为了达到这一目的,本发明的实施例在测试仪软件系统内提供了编辑并更新功能。当调试时,用户可以在测试类源代码中设置引起系统停止的断点。用户可以编辑源代
码,由此发起编辑并更新会话。然后,存储状态信息并且卸载编辑后的测试类。随后,编辑
并更新程序将重新编译编辑后版本的测试类并用新编译的版本替换原始版本。然后,编辑
后的测试类被重新执行并自动后退到与用户中断调试的地方相同的断点,并且之前存储的
状态信息被恢复。然后,测试计划可以用新编辑的代码继续进行。
[0058] 使用本发明的实施例,开发者可以对测试类做出实质性改变而不局限于仅实施微小编辑。实际上,本发明的一个实施例支持改变整个测试类文件而不是文件的仅一小部分。
[0059] 图2A是根据本发明的一个实施例,可在其上实施编辑并更新程序的实施例的自动化测试设备(ATE)装置的示意性框图。在一实施例中,系统控制器201包括一个或多个链
接的计算机。例如,测试系统(如爱德万测试株式会社的T2000测试仪系)可以使用计算机
网络。在其他实施例中,系统控制器经常仅包括单个计算机。系统控制器201是整个系统
控制单元,并且运行ATE的负责完成所有用户级测试任务的软件,包括运行用户的主测试
计划。这种测试仪软件的一个示例是T2000系统软件。通常,测试仪软件(如T2000)包括
编译器,该编译器对用测试仪系统的编程语言(例如,OPENSTAR测试编程语言(“OTPL”))
编写的测试计划进行编译。
[0060] 通讯器总线215在系统控制器与测试仪硬件之间提供高速电子通信信道。该通讯器总线还可以称为背板、模块连接使能器、或系统总线。物理上,通讯器总线215是快速、高
带宽双工连接总线,该总线可以是电学的、光学的等。在一个实施例中,通讯器总线215可
以使用TCP/IP协议。系统控制器201通过经由通讯器总线215发送的命令来对测试仪硬
件进行编程,从而设立用于测试DUT 211-214的条件。
[0061] 测试仪硬件202包括向被测器件(DUT)211-214提供测试激励和测量DUT对该激励的响应并且将其与预期响应进行比较所需的电子和电气零件和连接器的复杂集合。
[0062] 图2B是图2A的自动化测试设备装置的一个实施例的更详细的示意性框图。在图2B中所示的实施例中,测试仪硬件202可以包括多个现场控制器207,其中每个现场控制器
连接至多个DUT。每个现场控制器是在器件测试中所使用的计算机。测试计划程序可以在
现场控制器上执行,该现场控制器在执行DUT 290的器件测试过程中控制测试模块280。现
场控制器270连接至系统控制器,该系统控制器通过通讯器总线215控制现场控制器。在
某些实施例中,测试开发者不能直接操作现场控制器,而是在系统控制器201上处理由开
发者执行的操作,该系统控制器通过通讯器总线215控制现场控制器。
[0063] 在一个实施例中,现场控制器270和测试模块280可以通过高速光总线连接。总线开关285具有用于将现场控制器与测试模块连接的矩阵结构。使用总线开关285允许现
场控制器与任意测试模块280连接,并且允许配置总线连接的灵活性。
[0064] 器件测试所需的测试模块280通常安装在测试系统测试头中。测试模块配置可以适配于目标器件。器件测试所需的测试模块280的集合被称为测试现场。每个测试现场
295由现场控制器控制。对于许多应用而言,可能存在各种类型的测试模块。一些示例性类
型的模块是同步发生器模块、同步矩阵模块、器件电源模块、模拟模块、RF模块和数字模块。
[0065] 图3展示了关于不同测试实例可以从单个测试类创建的方式的图。如以上详细讨论的,测试类允许用户通过提供用于为该项测试的具体实例指定选项的参数来配置类行
为。例如,用于实施功能测试的测试类可以提供用于指定在正被测试的DUT上执行的测试
模式的参数。其还可以提供用来为测试指定等级和定时条件的参数。为这些参数指定不同
的值允许用户创建功能测试的不同实例。
[0066] 在如T2000的测试仪软件系统中,可以用如上讨论的测试编程语言(如OTPL)描述测试计划。OTPL可以用于描述测试执行顺序和所用的相应测试条件。虽然OTPL可以描
述测试计划,但通常不描述任何测试算法。例如,系统中的测试算法(如T2000)可以使用
如以上所披露的测试类中的C++语言来描述。
[0067] 虽然对本发明的讨论是以T2000测试仪软件为背景,其中测试计划是使用OTPL开发的,并且测试类是使用C++开发的,但是本发明不局限于本实施例。其他实施例中可以采
用使用不同编程语言的其他类型的测试仪软件。本领域内的普通技术人员应理解的是,本
发明的教示可以涵盖可包括在所附权利要求书限定的本公开的精神和范围内的替代、修改
以及等同形式。
[0068] 在来自图3的示例中,测试类310可以用于创建测试“测试类型X”的三个单独的实例。这三个实例中的每个实例(实例1 320、实例2 340和实例3 350)接收该测试的每
个实例的单独的参数数据集。例如,实例1 320接收参数数据330,而其余的实例接收其自
己的参数集。
[0069] 图4是展示了测试计划内的测试类的验证和执行的示例性软件过程的示意性框图。
[0070] 在一实施例中,用户将关于各个测试类的必要参数和其他一般特性的所有信息输入到预头文件410。关于这些参数的信息可以包括参数名、其允许值、其类型等。
[0071] 在常规测试仪系统中,测试仪系统软件可以提供用于验证适当的参数可供用于包括在所生成的源代码中的机制。该测试仪系统软件提供了允许测试类开发者在每测试类基
于文本的源文件中完全指定的方法,开发者已经指定的测试类的公共方法和属性是参数化
该类别所需的方法和属性。在文本文件中指定其方法和属性允许测试仪软件容易地确定适
当的参数是否可供使用,这方便了转换阶段期间测试计划的错误检测和验证。在常规ATE
系统中,这种基于文本的描述内置在测试类的预头文件中,其由测试仪软件中的编译器用
来确定测试类的方法和属性。进一步地,其由编译器用于生成测试类的报头。在一实施例
中,与测试类本身类似,测试类的报头也可以用常规编程语言,如C++。所生成的C++头文件
是用于最后编译测试类C++代码的头文件。
[0072] 如所讨论的,预头文件由测试仪系统软件用于直接从预头文件自动生成测试类声明C++头文件415。所生成的C++头文件是用于最后编译测试类C++代码435的头文件。
C++测试类代码435被编译成可以被加载以便在测试仪系统软件420中执行的二进制DLL
文件。
[0073] 在验证阶段期间,测试仪系统软件420(又被称为“测试仪操作系统”)读入测试计划作者所开发的测试计划OTPL代码450并分析其错误。预头文件410由测试仪操作系统
420用于描述测试类和测试类所需的参数。通过描述测试类,预头文件允许测试仪系统软件
420验证适合的参数被传递至测试类的各个实例。
[0074] OTPL代码450和二进制DLL测试类文件475然后被加载到测试仪系统软件420中。在一个实施例中,在验证了OTPL代码450之后,测试计划代码450然后实例化测试类
并且使用来自预头文件410的信息来确定用于测试类实例化的适当参数。测试仪操作系统
420可以基于预头文件410中所提供的信息填充各个测试类的参数。例如,在图4中,测试
仪操作系统可以读入模式列表490和模式495,模式列表490和模式495可以用作在OTPL
代码450中实例化的某些测试类的参数。然后,测试仪系统软件420执行测试计划425。
[0075] 图5是根据本发明的一个实施例,展示了编辑并更新功能的实施方式的示例性软件过程的框图。
[0076] 在一个实施例中,在框501,用户启动开发环境(例如,Visual Studio)并且加载用户想要使用该应用进行调试的测试类项目。在框502,用户启动测试仪系统软件
(“TSS”)。在启动TSS之后,在503,用户加载测试计划或测试程序。然后,在504,用户将
调试器附接至现场控制器,该现场控制器可以连接至正被测试的DUT,以开始测试会话。用
户还在他们想要调试的测试类的方法中设置断点。例如,用户可以在被称为“preExec()”
的方法中设置断点,该方法是包括如框508中所示的流程项2519的方法之一。包括流程项
519的其他示例性方法分别是框509和510处的“execute()”和“postExec()”。
[0077] 然后,在框505,用户将会执行测试流程。首先执行518处的第一流程项(流程项1)。然而,在执行框519处的流程项2的过程中,调试器将会在框508处的preExec()中的
断点处中断,并且源代码在调试环境的代码窗口中是可见的。在此点,用户可以单步通过该
代码直至用户到达需要对代码进行编辑的点。用户可以对与测试类项目相关联的同一文件
或其他文件中的代码进行编辑。在一个实施例中,不是进行编辑,而是用户还可以只是离开
调试器并且继续执行。
[0078] 如果进行编辑,则在完成编辑之后,在516,用户可以调用编辑并更新程序。例如,当执行流程项2时,用户可以在preExec()内的方法“AAA()”处调用编辑并更新。在一个
实施例中,当调用编辑并更新程序时,正在被调试的整个测试类方法(即,方法preExec()、
execute()和postExec())的执行将会在测试仪操作系统在框511暂停之前完成。在另一
个实施例中,编辑并更新程序可以在没有完成测试流程项中的其余方法的执行的情况下立
即暂停。在本实施例中,用户可以立即跳出执行任何其余的测试类代码,然后暂停执行测试
计划以允许重建和重新加载测试类。
[0079] 在一个实施例中,编辑并更新程序将会记录其被调用所在的行,从而使得编辑并更新程序可以在测试类已经被更新和重新加载之后使用户返回至同一行(在下文中被称
为“当前行”)。
[0080] 在框512,调试器与其在框504所附接到的现场控制器脱离。现场控制器270通常是测试类正在执行的地方。系统控制器201通常是开发环境运行的地方。因此,用户通常
在现场控制器270上实施来自系统控制器201的远程调试会话。
[0081] 在框512,调试器与现场控制器脱离,并且卸载已实现的测试类。在图5的示例中,将会须要卸载与流程项2519相关联的任何测试类和从其中得到的任何其他类。这是因为
如果该程序要针对已实现的“基础”类而改变内存,则该程序还需要针对基于该基础测试类
的其他“派生”类而改变内存。因此,编辑并更新程序首先需要标识所有衍生的测试类。接
下来,卸载基础测试类和基于该基础测试类的所有衍生的测试类。因为测试类在本阶段是
DLL,所以它们需要在它们可以被编辑并更新之前被卸载。在不卸载已实现的测试类DLL的
情况下,处于其暂停状态的可执行测试计划仍然处理它们,这阻止了它们被写入。
[0082] 在框513,编辑并更新程序将在开发环境的代码窗口中修改的源测试类文件进行保存,然后编译测试类项目以生成新的DLL。新的DLL从系统控制器201向下传输至现场控
制器270。除了经修改的基础测试类的DLL以外,还将需要生成衍生的测试类的DLL并将其
传输至现场控制器270。
[0083] 如果测试类项目编译成功,则在步骤514,将会重新加载回更新后的测试类DLL。替代地,在一个实施例中,不是从编辑后的测试类文件中生成更新后的测试类DLL,而是新
版测试类文件可以在系统控制器201上被创建和编译,并且随后被向下传输至现场控制器
270,从而其可以被重新加载回TSS中。重新加载测试类DLL包括使用新的测试类DLL以最
初设置的相同的测试参数值填充正在被调试的测试类的测试实例。此外,其还意味着也填
充所有衍生的测试类的实例。
[0084] 在框515,调试器附接回至在先前调试会话中调试的同一现场控制器。在一个实施例中,编辑并更新程序将会在“当前行”设置断点,当发起编辑并更新程序时,指令指针在该
断点处被暂停。在图5的示例中,在方法AAA()处设置断点。在之前的调试会话中使用的
其他断点将会被暂时禁用,这样使得用户可以返回至代码中的当前行,在该当前行而不是
在可能已经设置的先前的断点处,编辑并更新进程被调用。在不同实施例中,可以提供控制
断点的其他方式,因为当编辑测试类的同时可能已经移除了当前行。例如,可以使用户返回
至测试类代码内在当前行前面的最近一行。或者可以使用户返回至包含当前行的功能的开
始处。
[0085] 随后,TSS执行与更新后的测试类相关联的流程项(流程项2),并且执行将在调试器内在当前行处(即,在方法AAA()处)中断。然后,编辑并更新程序将恢复用户已经设置
的所有暂时禁用的断点。之后,编辑并更新进程在框517处结束。编辑并更新会话通常可
以被定义为从用户选择编辑并更新程序执行的时间点持续至经调试的流程项将要从编辑
并更新被调用时用户停止的点或接近于该点重新执行时的时间点。
[0086] 在编辑并更新进程结束之后,如果用户选择继续执行,则TSS重新开始执行该流程。因此,用户可以选择在框519完成执行流程项2、并且在框520完成执行流程项3。
[0087] 在该流程完成执行之后,用户可以选择在框506停止TSS并且在框507关掉开发环境。
[0088] 如以上所讨论的,编辑并更新功能的优点之一是允许测试仪软件系统的用户在调试环境中编辑其测试类代码并且重新运行其测试,而不需要重新加载整个测试计划并且不
会给用户增加手动通过一系列步骤以完成测试类修改的负担。进一步地,因为测试类DLL
被卸载,与常规“编辑并继续”程序不同,用户具有以下灵活性:对测试类的代码做出显著得
多的改变,并且在一些情况下甚至替换整个测试类代码。
[0089] 进一步地,通过允许暂停测试计划,测试类可以被卸载和重新加载,并且可以使用户返回以在代码中的同一行处重新开始调试代码,该行是当用户开始进行编辑并且调用编
辑并更新程序时暂停的地方。通过比较,试图更新测试类而不使用编辑并更新程序的用户
将需要完全取消测试计划的执行以编辑测试类。当取消测试计划的执行时,使用户返回至
就绪状态,这需要从测试计划开始处开始执行。从测试计划开始处执行将是相对繁琐的,尤
其是在用户更新的流程项是向着测试计划结束的方向的实例中。另一方面,编辑并更新程
序允许用户只在被编辑的测试类的开始处开始并且返回至测试流程项内的、在编辑并更新
程序被调用时用户正在执行的当前行。
[0090] 此外,使用编辑并更新功能有利地确保了测试仪状态被维持,因为测试计划仅仅是被暂停而不是被取消。当测试计划被取消并且需要从开始处开始执行时,如果系统不是
确定性的,则测试仪状态可能不能被维持。例如,如果用户正在调试器件,则在测试过程中
器件状态的小小变化(例如,器件加热或冷却)可能引起测试产生不同的结果。因此,基于
DUT在测试期间的表现如何,用户实际上可能从不返回到特定流程项。使用编辑并更新功能
避免了这一问题,因为用户在测试计划内的位置从不改变,测试计划仅仅是暂停,并且在测
试类被重新加载回来之后,使用户返回至测试计划中与之前相同的位置。如以上所讨论的,
TSS为用户提供了在调试会话中间对测试类代码做出修改并且继续测试器件而无需卸载测
试计划的能力。
[0091] 图6展示了根据本发明的一个实施例的屏幕上图形用户界面配置对话框,从而让用户设立编辑并更新功能的各种设置。如图6中所示,在配置对话框中具有标签代码更新
模式680的单选按钮组可以提供三个单选按钮来让用户在编辑并更新605、常规“编辑并继
续”615或以上都不是640之间进行选择。以上都不是640选项允许用户当进行更新时继
续调试编辑后的代码。当然,如以上提及的,在“编辑并继续”由于其各种局限性而不能使
用的情况下(例如,64位环境),“编辑并继续”单选按钮将被禁用,因此在这种配置下不能
被选择。
[0092] 在一个实施例中,调试命令通过选择配置对话框中的选项610可以调用编辑并更新。这意味着每当用户在开发环境中使用调试功能(例如,分步执行、连续执行等)来执行
测试类时,编辑并更新都将会被自动调用。换言之,如果存在与当前被调试的测试类或其衍
生测试类相关的任何代码变化,则当用户使用任何调试命令来继续执行测试时,编辑并更
新将会被自动调用。
[0093] 在一个实施例中,还可以允许用户选择断点进入模式690。断点进入模式允许用户选择调试控制将返回至用户的点。如果用户选择当前行选项615,则一旦调试器被暂停并且
所有其他断点被暂时禁用,断点就会被添加至当前行。当流程项被重新执行时,将会命中此
断点并且在重新启用所有暂时禁用的断点之后,控制将会被归还给用户。
[0094] 如果用户选择当前函数开始选项620的开始而不是当前行,则断点将会被添加至包含当前行的功能的左大括号。在断点在该断点处被命中之后,在编辑并更新会话开始时
暂时禁用的所有其他断点将被启用。
[0095] 如果用户选择任何之前的断点选项625,在重新加载测试类之后,将会启用用户在编辑并更新被调用的先前调试会话中所设置的所有断点。并且,将不添加额外断点。当重
新开始流程项时,由于启用了所有断点,如果执行包含断点的任何行,则在那儿暂停执行流
程项。
[0096] 如以上所讨论的,编辑并更新会话通常可以被定义为从用户选择编辑并更新程序执行的时间点持续至经调试的流程项将要被重新执行时的时间点。图7是展示了根据本发
明的一个实施例的编辑并更新会话的生命周期的框图。如图7中所示,编辑并更新会话可
以与不止一个调试会话重叠。
[0097] 在图7中,编辑并更新会话725与两个调试会话710和745重叠。测试类DLL在两个调试会话710和745之间被编译和重新加载。在调试会话710在步骤705开始之后,在
步骤715调用编辑并更新会话725。调试会话710在步骤720退出并且在步骤780与现场
控制器脱离。在调试器脱离之后,在730编译并重新加载经修改的基础类及其衍生类。重
新加载之后,在步骤785,调试会话745附接至现场控制器,并且在735重新运行经修改的基
础类直至到达用户所选择的断点。在该点处,编辑并更新进程在740完成,并且TSS可以重
新开始执行测试流程。应注意的是,通常允许用户在任意时间仅调用一个编辑并更新会话。
[0098] 在一个实施例中,允许测试类作者在作为并发流程项内的支流的一部分的流程项内使用编辑并更新程序。当在多个流程项并行执行的配置中调试测试类代码时,将完成除
了正在被调试的流程执行以外的所有流程执行,并且直至编辑并更新会话完成才开始接下
来预定的(一个或多个)流程项执行。换言之,当调试器命中断点时,并行运行的所有流程
执行将会首先完成,但将不开始执行其他预定的流程项,直至编辑并更新进程完成。将编辑
并更新用于在并发分支中正在执行的测试类将使得仅在其他分支完成整个当前流程项的
执行之后才重新加载经修改的DLL。
[0099] 图8是展示了在作为并发流程项内的支流的一部分的流程项内的编辑并更新程序的调用流程图。图8中的步骤1展示了用户在与流程项Y 802相关联的测试类中的断点
处停止同时P 801和A 803也暂停时的时间点。TSS将暂停正在被调试的Y 802-Z 804分
支(即,遇到断点的分支)的流程执行,并且重新开始也被调试器暂停的其他并发线程。将
允许其他分支(即,P 801分支和803-B 805分支)完成当前执行的流程项。
[0100] 图8中的步骤2展示了由于发起的编辑并更新操作而导致的P 801和A 803完成执行而Y 802还没有完成但被暂停以允许重建和重新加载其(一个或多个)测试类DLL的
点。
[0101] 图8中的步骤3展示了编辑并更新程序已经完成后并且Y 802被重新执行同时其他分支的流程项B 805开始执行的点。在一个实施例中,其他并发分支中的流程项(例如,
P 801和A 803)在卸载-编译-重新加载的测试类周期之后没有被重新测试,因为在用户
发起编辑并更新程序的同时,它们没有在正在被调试的活动栈中。当TSS开始重新执行调
用“编辑并更新”的流程项时,TSS将会从这些其他分支各自的暂停点开始继续执行这些其
他分支。
[0102] 在一个实施例中,编辑并更新程序被配置为以安全的方式处理所有错误条件以便保持测试仪的状态。例如,如果编辑并更新进程由于任何原因(例如,当编译编辑后的测试
类代码时出现编译错误)被打断,则在修复编译错误之后,用户可能主动想要继续编辑并
更新会话。替代地,如果用户实现了修复需要修改测试计划文件并且因此需要重新加载测
试计划,则用户可能想要中止会话。因此,为用户提供了开始编辑并更新会话并继续或中止
正在进行的“编辑并继续”会话的能力。
[0103] 如果用户决定中止编辑并更新操作并且重新加载整个测试计划,或者如果TSS中止正在进行的会话以防出现警报或意想不到的意外,则系统状态将取决于发生异常中止的
时间。例如,如果在进入暂停状态之前发生异常中止,即,在TSS已经重新开始执行测试计
划的情况下但在所有流程执行分支被暂停之前,测试计划执行将被取消并且编辑并更新操
作也将被取消。在本实例中,调试器仍然将附接至现场控制器,并且仍然将加载更早的测试
类DLL。之前禁用的断点将被重新启用,并且为了用户调试此测试类,用户将需要重新执行
流程项。类似地,在其他情况下,取决于编辑并更新操作何时被中止,系统软件被配置为执
行维持一致的测试仪状态所需要的所有必要的薄记步骤。
[0104] 通常,流程项以一组活动DUT开始。在一个实施例中,用户可以在调用编辑并更新之前或者将一些DUT置于保持状态或者在测试类代码中明确拒绝一些DUT。当TSS开始重
新执行流程项时,TSS将会再次将保持项退回至可测量DUT状态。因此,当重新执行流程项
时,除了被测试类代码明确拒绝的DUT以外,将会使用在之前执行时所使用的同一组DUT。
[0105] 图9根据本发明的一个实施例,描绘了用于实施编辑并更新功能的示例性计算机控制过程的流程图900。
[0106] 在步骤901,用户编辑测试类代码并且调用编辑并更新程序。
[0107] 在步骤902,该程序标识如以上结合图5所讨论的基础类和基于基础测试类的所有衍生的测试类。随后,在步骤902,暂停测试计划并且存储状态信息。例如,在一个实施例
中,存储包括用户调用编辑并更新程序所在的行的状态信息。在一个实施例中,在完成从其
中调用编辑并更新功能的其余的测试类的执行之后,测试计划可以暂停。在其他实施例中,
用户可以立即跳出执行任何其余的测试类代码并且暂停执行测试计划。
[0108] 在步骤904,调试器与现场控制器270脱离并且卸载已实现的基础测试类和衍生的测试类。
[0109] 在步骤906,编辑并更新程序将在开发环境的代码窗口中修改的源测试类文件进行保存,然后编译测试类项目以生成一个或多个新的DLL。(一个或多个)新的DLL被从系
统控制器201向下传输至现场控制器270。除了针对修改的基础测试类的DLL以外,也将需
要生成针对衍生的测试类的DLL并将其传输至现场控制器270。
[0110] 如果测试类项目编译成功,则在步骤908,更新后的测试类DLL将会被重新加载回来,并且调试器附接回至在先前调试会话中调试的同一现场控制器。重新加载测试类DLL
包括使用新的测试类DLL并且以最初设置的相同的测试参数值填充正被调试的测试类的
测试实例。此外,其还意味着也填充所有衍生的测试类的实例。
[0111] 在步骤910,在一个实施例中,编辑并更新程序暂时禁用在之前的调试会话中所使用的所有断点,因而可以使用户返回至代码中的或代码附近的在其中调用编辑并更新程序
的当前行。在步骤912,该程序将在“当前行”设置断点,当发起编辑并更新程序时,指令指
针在该断点处被暂停。在不同实施例中,如以上详细所述,可以提供用于控制用户返回至的
断点的其他方式。
[0112] 随后,在步骤914,与更新后的测试类相关联的流程项由TSS从测试类实例的开始处重新执行。在步骤916,执行将会在调试器内,在当前行或用户之前通过断点进入模式选
择690选择返回至的其他位置处中断。在步骤918,编辑并更新程序然后将会恢复用户已经
设置的所有暂时禁用的断点。之后,编辑并更新进程结束。
[0113] 虽然以上公开利用具体的框图、流程图、以及示例来阐述各个实施例,但本文描述和/或展示的每个框图部件、流程图步骤、操作、和/或部件都可以单独地和/或共同地使
用大量硬件、软件、或者固件(或者它们的任何组合)配置来实施。此外,在其他部件之中
所包含的部件的公开都应该看作是示例,因为可以实施许多其他的体系结构来实现相同的
功能。
[0114] 在此描述和/或展示的过程参数以及步骤的顺序仅以举例的方式给出。例如,虽然本文展示和/或描述的这些步骤可以按照特定的顺序来示出或讨论,但这些步骤并非必
须按照所展示或者所讨论的顺序来执行。本文描述和/或展示的各种示例方法还可以省略
在此说明或展示的一个或者多个步骤或者还可以包括除所公开的那些之外的额外步骤。
[0115] 虽然各个实施例在此已经在全功能性计算系统的背景下进行了描述和/或展示,但这些示例实施例中的一个或者多个能够以各种形式作为程序产品来分布,而无论实际用
于进行该分布的计算机可读介质的具体类型如何。本文公开的这些实施例还可以通过使用
执行某些任务的软件模块来实施。这些软件模块可以包括脚本、批文件、或者其他可执行文
件,它们可以存储在计算机可读的存储介质上或者计算系统中。这些软件模块可以将计算
系统配置用于执行在此公开的一个或者多个示例性实施例。在此公开的软件模块的一个或
多个软件模块可以在计算环境中实施。云计算环境可以通过互联网提供各种服务和应用
程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过
网络(Web)浏览器或其他的远程接口进行访问。在此所述的各种功能可以通过远程桌面环
境或任何其他的基于云的计算环境来提供。
[0116] 出于解释目的,已经参照特定实施例进行了以上描述。然而,以上的说明性讨论不意图是详尽的或将本发明局限于所公开的精确形式。鉴于以上教导,许多修改和变化是可
以的。为了最好地解释本发明的原理及其实际应用,选择并说明了这些实施例,从而使得本
领域的其他技术人员能够最好地利用本发明以及具有适于预期的特定用途的各种变化的
各种实施例。
[0117] 因此,本文描述了根据本发明的实施例。尽管本公开已经在具体实施例中进行了描述,但应当认识到的是,本发明不应当被解释为由这些实施例所限制,而是根据所附权利
要求进行解释。
相关专利内容
标题 发布/更新时间 阅读量
修改带 2020-05-11 472
一种修改中性笔 2020-05-12 880
修改分析流 2020-05-11 493
修改带式胶带 2020-05-13 179
修改比特流 2020-05-12 133
修改命令 2020-05-11 389
修改对象的基层 2020-05-13 91
引导过程修改 2020-05-13 886
修改液 2020-05-11 792
修改笔 2020-05-11 82
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈