專利名稱:支持開放架構(gòu)測試系統(tǒng)中的校準(zhǔn)和診斷的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自動(dòng)測試設(shè)備(ATE)的領(lǐng)域。更具體地,本發(fā)明涉及一種用于支持開放架構(gòu)測試系統(tǒng)中的校準(zhǔn)和/或診斷的方法及系統(tǒng)。
背景技術(shù):
芯片上系統(tǒng)(SOC)器件的增加的復(fù)雜度及同時(shí)對(duì)芯片測試成本減小的要求已經(jīng)迫使集成電路(IC)制造者和測試設(shè)備廠商都在重新考慮應(yīng)當(dāng)如何執(zhí)行IC測試。根據(jù)工業(yè)研究,在沒有重新設(shè)計(jì)的情況下,測試設(shè)備的預(yù)計(jì)成本在不久的將來將繼續(xù)大幅上升。
測試設(shè)備的高成本的主要原因是傳統(tǒng)測試設(shè)備架構(gòu)的專有性質(zhì)。每個(gè)測試設(shè)備制造者具有許多測試設(shè)備平臺(tái),這些平臺(tái)不僅在多個(gè)公司如Advantest、Teradyne和Agilent之間是不兼容的,而且在一個(gè)公司內(nèi)的多個(gè)平臺(tái)如由Advantest制造的T3300、T5500和T6600系列測試設(shè)備之間也是不兼容的。由于這些不兼容,每個(gè)測試設(shè)備需要其自身專有的硬件和軟件部件,并且這些專有的硬件和軟件部件不能用在其它測試設(shè)備上。另外,將測試程序從一個(gè)測試設(shè)備移植至另一個(gè)以及開發(fā)第三方解決方案需要相當(dāng)大的努力。即使當(dāng)為一個(gè)平臺(tái)開發(fā)了第三方解決方案時(shí),其也不能被移植到不同的平臺(tái)上或在不同的平臺(tái)上再使用。從一個(gè)平臺(tái)到另一個(gè)的翻譯過程通常是復(fù)雜的和容易出錯(cuò)的,從而帶來了附加的努力、時(shí)間和增加的測試成本。
在這種專有的測試設(shè)備架構(gòu)中,在主機(jī)上運(yùn)行諸如操作系統(tǒng)和測試分析工具/應(yīng)用程序的測試設(shè)備軟件。由于這種架構(gòu)的專用性質(zhì),所有的硬件和軟件針對(duì)給定的測試設(shè)備保持為固定的配置。為了測試硬件器件或IC,開發(fā)了專用的測試程序,其使用部分或全部的測試設(shè)備能力來定義測試數(shù)據(jù)、信號(hào)、波形、及電流和電壓電平,并收集被測器件(DUT)的響應(yīng)以及確定DUT的通過/失敗。
各種DUT的測試需要測試設(shè)備系統(tǒng)的硬件和軟件部件實(shí)現(xiàn)大范圍的功能性和操作。在測試期間,可以利用廠商供給的測試模塊的不同集來支持大范圍的功能性,并且需要配置測試系統(tǒng)以便以即插即用的方式支持廠商供給的測試模塊以及它們對(duì)應(yīng)的校準(zhǔn)和/或診斷數(shù)據(jù)。當(dāng)利用新的廠商供給的測試模塊時(shí),可能需要該新測試模塊的校準(zhǔn)和/或診斷。另外,測試模塊的性能可能在一定的時(shí)間后會(huì)漂移到原始校準(zhǔn)的范圍之外,并且可能需要通過測試系統(tǒng)來重新校準(zhǔn)或重新診斷該測試模塊。
因此,需要一種可以基于測試要求而配置有不同測試模塊的開放架構(gòu)測試系統(tǒng)。特定地,需要一種開放架構(gòu)測試系統(tǒng),其可以被配置為在運(yùn)行時(shí)期間以即插即用的方式使用廠商供給的校準(zhǔn)和/或診斷(C&D)信息。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的開放架構(gòu)測試系統(tǒng)允許第三方測試模塊的集成。該測試系統(tǒng)的硬件和軟件框架包括標(biāo)準(zhǔn)接口,來自于不同廠商的模塊可以以即插即用的方式與該標(biāo)準(zhǔn)接口交互。
在一個(gè)實(shí)施例中,一種用于將測試模塊集成在模塊化的測試系統(tǒng)中的方法,包括創(chuàng)建用于集成廠商供給的測試模塊的部件類別(category),以及創(chuàng)建用于在廠商供給的測試模塊和模塊化的測試系統(tǒng)之間建立標(biāo)準(zhǔn)接口的校準(zhǔn)和診斷(C&D)框架,其中該C&D框架包括傳遞廠商供給的模塊集成信息的接口類。該方法還包括接收廠商供給的測試模塊,根據(jù)部件類別從廠商供給的測試模塊中檢索模塊集成信息,以及使用C&D框架基于模塊集成信息將廠商供給的測試模塊集成到模塊化的測試系統(tǒng)中。
在另一實(shí)施例中,模塊化的測試系統(tǒng)包括系統(tǒng)控制器,至少一個(gè)耦合到該系統(tǒng)控制器的位置控制器(site controller),至少一個(gè)廠商供給的測試模塊以及其對(duì)應(yīng)的被測器件(DUT),用于集成廠商供給的測試模塊的部件類別,以及用于在廠商供給的測試模塊和模塊化的測試系統(tǒng)之間建立標(biāo)準(zhǔn)接口的校準(zhǔn)和診斷(C&D)框架,其中該C&D框架包括傳遞廠商供給的模塊集成信息的接口類。該模塊化的測試系統(tǒng)還包括用于接收廠商供給的測試模塊的裝置,用于根據(jù)部件類別從廠商供給的測試模塊中檢索模塊集成信息的裝置,以及用于使用該C&D框架基于該模塊集成信息將廠商供給的測試模塊集成到模塊化的測試系統(tǒng)中的裝置。
在下文中,當(dāng)結(jié)合附圖考慮時(shí),通過對(duì)本發(fā)明實(shí)施例的詳細(xì)描述,可以更為清楚地理解本發(fā)明的前述特征和優(yōu)點(diǎn)以及其附加的特征和優(yōu)點(diǎn)。
圖1說明根據(jù)本發(fā)明一實(shí)施例的開放架構(gòu)測試系統(tǒng)。
圖2a說明根據(jù)本發(fā)明一實(shí)施例的用于使用C&D框架來集成廠商供給的C&D信息的方法。
圖2b說明根據(jù)本發(fā)明的一實(shí)施例的、由用于訪問共享的儀器的測試系統(tǒng)使用的方案。
圖3a說明根據(jù)本發(fā)明一實(shí)施例的、校準(zhǔn)其驅(qū)動(dòng)定時(shí)的數(shù)字功能發(fā)生器模塊的波形。
圖3b說明根據(jù)本發(fā)明一實(shí)施例的、驅(qū)動(dòng)定時(shí)校準(zhǔn)數(shù)據(jù)的在線補(bǔ)償?shù)牟ㄐ巍?br>
圖4說明根據(jù)本發(fā)明一實(shí)施例的、在運(yùn)行時(shí)期間特定于廠商的校準(zhǔn)信息到開放架構(gòu)測試設(shè)備框架中的集成。
圖5說明根據(jù)本發(fā)明一實(shí)施例的、用于實(shí)施測試條件存儲(chǔ)器的方法。
貫穿附圖使用類似的標(biāo)號(hào)。
具體實(shí)施例方式
提供了用于支持開放架構(gòu)測試系統(tǒng)中的校準(zhǔn)和/或診斷的方法和系統(tǒng)。提供下面的描述以使本領(lǐng)域任何技術(shù)人員能夠?qū)崿F(xiàn)和使用本發(fā)明。特定技術(shù)和應(yīng)用的描述僅作為實(shí)例而提供。對(duì)于本領(lǐng)域技術(shù)人員而言,這里描述的實(shí)例的各種修改和組合將是顯而易見的,并且在不脫離本發(fā)明的精神和范圍的情況下,可以將這里限定的一般原理應(yīng)用于其它的實(shí)例和應(yīng)用。因此,本發(fā)明不是旨在限制成所描述和示出的實(shí)例,而是應(yīng)該被給予符合這里公開的原理和特征的最寬的范圍。
圖1說明根據(jù)本發(fā)明一實(shí)施例的開放架構(gòu)測試系統(tǒng)。系統(tǒng)控制器(SysC)102耦合到多個(gè)位置控制器(SiteC)104。該系統(tǒng)控制器也可以耦合到網(wǎng)絡(luò)以訪問相關(guān)的文件。通過模塊連接使能器106,耦合了每個(gè)位置控制器以控制位于測試位置110的一個(gè)或多個(gè)測試模塊108。模塊連接使能器106允許連接的硬件模塊108的重新配置,并且也作為用于數(shù)據(jù)傳輸?shù)目偩€(用于加載模式數(shù)據(jù)、采集響應(yīng)數(shù)據(jù)、提供控制等)。另外,通過模塊連接使能器,在一個(gè)位置處的模塊可以訪問在另一位置處的模塊。模塊連接使能器106允許不同的測試位置具有相同或不同的模塊配置。換句話說,每個(gè)測試位置可以采用不同數(shù)量和類型的模塊??赡艿挠布?shí)現(xiàn)包括專用連接、交換機(jī)連接(switch connection)、總線連接、環(huán)形連接、以及星形連接。例如,模塊連接使能器106可以通過開關(guān)矩陣來實(shí)現(xiàn)。每個(gè)測試位置110與DUT112相關(guān),DUT112通過負(fù)載板114連接到對(duì)應(yīng)位置的模塊。在一個(gè)實(shí)施例中,單個(gè)位置控制器可以連接到多個(gè)DUT位置。
系統(tǒng)控制器102用作整個(gè)系統(tǒng)的管理器。其協(xié)調(diào)位置控制器的活動(dòng)、管理系統(tǒng)級(jí)并行測試策略,并且附加地提供了處理程序/探查(handler/probe)控制以及系統(tǒng)級(jí)數(shù)據(jù)日志記錄和錯(cuò)誤處理支持。依賴于操作設(shè)置,可以在與位置控制器104的操作分離的CPU上部署系統(tǒng)控制器102。可替換地,可以由系統(tǒng)控制器102和位置控制器104共享公共的CPU。類似地,可將每個(gè)位置控制器104部署在其自身專用的CPU(中央處理單元)上,或作為同一CPU內(nèi)單獨(dú)的進(jìn)程或線程。
該系統(tǒng)架構(gòu)在概念上可以被視作圖1中所示的分布系統(tǒng),同時(shí)應(yīng)當(dāng)理解,各個(gè)系統(tǒng)部件也可以視作集成的單片系統(tǒng)的邏輯部件而不必視作分布系統(tǒng)的物理部件。
根據(jù)本發(fā)明的開放架構(gòu)測試系統(tǒng)的實(shí)施例,通過在硬件和軟件級(jí)都使用標(biāo)準(zhǔn)接口而便利了即插即用或可更換的模塊。測試設(shè)備操作系統(tǒng)(TOS)允許用戶使用測試計(jì)劃編程語言來編寫測試計(jì)劃程序,以便以特定于具體被測器件(DUT)的方式來操作測試系統(tǒng)。其也允許將在測試計(jì)劃程序中常用的測試系統(tǒng)操作的序列打包為庫。這些庫有時(shí)被稱作測試類、測試模板和其它的名稱。廠商供給的測試模塊可能需要測量/響應(yīng)值的校準(zhǔn)以及用于診斷問題的裝置。TOS內(nèi)的校準(zhǔn)和診斷(C&D)框架需要能夠通過使用標(biāo)準(zhǔn)接口來為任意模塊調(diào)用這些功能。以此方式,可以為每個(gè)測試模塊調(diào)用適當(dāng)?shù)男袨?,而在TOS的該部分上不需要任何特定于廠商的知識(shí)。這種方案簡化了TOS設(shè)計(jì)并且封裝了特定于模塊的C&D模塊的廠商實(shí)現(xiàn)。
在開放架構(gòu)測試系統(tǒng)的實(shí)施例中,框架類用于使能、激勵(lì)、控制和監(jiān)視模塊。框架是實(shí)現(xiàn)與測試相關(guān)的公共操作的類和方法的集合。這包括用于校準(zhǔn)和/或診斷、功率供給、引腳電子定序(pin electronics sequencing)、設(shè)置電流/電壓電平、設(shè)置定時(shí)條件、獲得測量值、控制測試流程等的類。該框架還提供用于運(yùn)行時(shí)服務(wù)和調(diào)試的方法。在一個(gè)方案中,框架對(duì)象用于實(shí)現(xiàn)標(biāo)準(zhǔn)接口。提供該框架類的基于C++的參考實(shí)現(xiàn)以實(shí)現(xiàn)該框架對(duì)象的標(biāo)準(zhǔn)接口。該測試系統(tǒng)還支持特定于用戶的框架對(duì)象。
開放架構(gòu)測試設(shè)備系統(tǒng)在系統(tǒng)框架級(jí)使用接口的最小集。該C&D框架設(shè)計(jì)成在提供一般和通用的接口的對(duì)象上操作。當(dāng)?shù)谌侥K廠商將其校準(zhǔn)和/或診斷軟件集成到該系統(tǒng)中時(shí),廠商需要提供新的部件,所述新的部件支持與由現(xiàn)有部件支持的那些接口相同的系統(tǒng)接口。本發(fā)明實(shí)施例的這種標(biāo)準(zhǔn)接口允許廠商供給的模塊以即插即用的方式無縫地集成到該系統(tǒng)中。
在一個(gè)實(shí)施例中,與系統(tǒng)TOS的標(biāo)準(zhǔn)接口被定義為純抽象的C++類。廠商供給的特定于模塊的校準(zhǔn)和/或診斷類以可執(zhí)行代碼的形式——諸如動(dòng)態(tài)鏈接庫(DLL)——來提供,其可以在運(yùn)行時(shí)由系統(tǒng)軟件獨(dú)立地且動(dòng)態(tài)地(在要求時(shí))加載。每個(gè)這樣的軟件模塊負(fù)責(zé)提供用于系統(tǒng)校準(zhǔn)和/或診斷接口命令的特定于廠商的實(shí)現(xiàn),其包括用于校準(zhǔn)和診斷軟件開發(fā)的應(yīng)用程序編程接口(API)。
用于執(zhí)行校準(zhǔn)和/或診斷的需求在不同類型的模塊之間、并且在來自不同廠商的相同類型的模塊之間很大地變化。對(duì)C&D框架的接口類進(jìn)行設(shè)計(jì),以解決這樣的各種情形。由于校準(zhǔn)和/或診斷模塊和例程的性質(zhì)是廣泛可變的,廠商以標(biāo)準(zhǔn)的方式提供與他們的測試模塊相關(guān)的信息。因此,實(shí)際的校準(zhǔn)和/或診斷例程位于暴露標(biāo)準(zhǔn)、抽象接口的模塊中,由特定于該模塊類型的實(shí)現(xiàn)來支持。另外,具有用于調(diào)用非公認(rèn)的接口的設(shè)施,以支持特定于廠商的校準(zhǔn)和/或診斷能力。
標(biāo)準(zhǔn)校準(zhǔn)和診斷接口圖2a說明根據(jù)本發(fā)明一實(shí)施例的用于使用C&D框架來集成廠商供給的C&D數(shù)據(jù)的方法。如圖2a中所示,以統(tǒng)一建模語言(UML)類圖示出的C&D框架200包括C&D廠商公共信息接口202(ICDVendCommonInfo),該接口包括這樣的機(jī)制,其允許該C&D框架獲得關(guān)于校準(zhǔn)和/或診斷例程集的內(nèi)容的信息。ICDVendCommonInfo接口202包括多個(gè)例程和部件模塊,以及具有非標(biāo)準(zhǔn)接口的方法的名稱和標(biāo)識(shí)符(ID)。在一個(gè)方案中,ICDVendCommonInfo接口包括下列方法getVendorInfo(),getModuleInfo(),getDLLRev(),getLevelAndCategory(),getGroups(),getThirdPartyAccess(),getSwModules(),以及runSwModules()。
getVendorInfo()方法讀取DLL所對(duì)應(yīng)的硬件模塊的廠商名稱。該廠商名稱的字符串旨在將廠商的名稱描述成與其模塊ID有關(guān)。例如,如果硬件模塊是ADVANTEST的DM250MHz模塊,那么該字符串可以類似于“ADVANTEST”。所返回的廠商名稱包含數(shù)字和字母的字符(‘a(chǎn)’-‘z’,‘A’-‘Z’,’0-9’)。
getModuleInfo()方法讀取DLL所對(duì)應(yīng)的硬件模塊的模塊名稱。該模塊名稱的字符串旨在將硬件模塊的名稱描述成與其模塊ID有關(guān)。例如,如果硬件模塊是ADVANTEST的DM250MHz模塊,那么該字符串可以類似于“DM250MHz”。所返回的模塊名稱包含數(shù)字和字母的字符(‘a(chǎn)’-‘z’,‘A’-‘Z’,’0-9’)。
getDLLRev()方法以字符串讀取此DLL的修訂版本(revision)。此接口也在安裝期間使用。
getLevelandCategory()方法從廠商模塊中讀取支持的等級(jí)和類別。根據(jù)返回的等級(jí)和類別,框架將使用方法getGroups()來查詢支持的程序組。
getGroup()方法返回屬于指定的程序等級(jí)和類別的程序組。該指定的程序等級(jí)和類別是通過方法getLevelAndCategory()返回的那些。
getThirdPartyAccess()方法獲取與用于整個(gè)校準(zhǔn)和診斷模塊的第三方訪問(TPA)方法相關(guān)的信息。通過使用它,該廠商模塊可以插入顯示在校準(zhǔn)和診斷GUI工具上的廠商特定特性。如果廠商C&D模塊不需要具有此接口,則從此方法返回空的指針。
getSwModules()方法對(duì)框架設(shè)置詳細(xì)的校準(zhǔn)或診斷程序名稱。如果模塊具有屬于該指定等級(jí)和類別以及組的程序集,則此方法的實(shí)現(xiàn)必須通過程序信息方法將該程序集信息返回給該框架。等級(jí)、類別、組用于在GUI工具中將程序分類。因?yàn)槠洳粍?chuàng)建用于程序名稱的范圍,所以在具體的校準(zhǔn)或診斷軟件模塊中程序標(biāo)識(shí)符(progID)可以是唯一的。
runSwModules()方法要求模塊執(zhí)行選擇的程序。一次調(diào)用可以選擇一個(gè)程序??蚣芫哂杏捎脩粼贕UI工具中選擇的程序序列,并且框架通過負(fù)責(zé)的模塊來調(diào)用此方法。用戶可以選擇硬件實(shí)體(通常是通道)來運(yùn)行程序。此信息通過參數(shù)env來傳遞。每個(gè)程序代碼需要在選擇的硬件實(shí)體上運(yùn)行。
圖2a的UML圖也包括模塊配置數(shù)據(jù)204,模塊管理器206,系統(tǒng)控制C&D框架208,位置控制器C&D框架210,系統(tǒng)控制器212,位置控制器214以及C&D GUI工具216。UML圖還包括廠商校準(zhǔn)公共信息對(duì)象218,其從廠商校準(zhǔn)DLL對(duì)象220檢索信息;以及廠商診斷公共信息對(duì)象222,其從廠商診斷DLL對(duì)象224檢索信息。
測試系統(tǒng)由模塊配置數(shù)據(jù)204來配置。模塊管理器206管理廠商供給的驅(qū)動(dòng)軟件、校準(zhǔn)軟件和診斷軟件。C&D框架根據(jù)保持在模塊管理器中的配置數(shù)據(jù)、通過ICDVendCommonInfo接口202來檢索廠商校準(zhǔn)和診斷程序信息。每個(gè)廠商可以用其自身特定的方式來實(shí)現(xiàn)為其校準(zhǔn)或診斷功能性而分別派生的廠商校準(zhǔn)公共信息對(duì)象(VendorCal的CommonInfo)218或廠商診斷公共信息對(duì)象(VendorDiag的CommonInfo)222。
C&D框架將廠商C&D軟件信息傳遞到運(yùn)行在系統(tǒng)控制器212上的C&D圖形用戶接口(GUI)工具216。當(dāng)用戶通過此C&D GUI工具216來操作C&D系統(tǒng)時(shí),用戶可以從C&D程序集中進(jìn)行選擇,該C&D程序集是從加載在當(dāng)前系統(tǒng)配置中的全部廠商C&D軟件中檢索到的。使用ICDVendCommonInfo接口202,系統(tǒng)控制器中的C&D框架208將選擇的程序分配給負(fù)責(zé)的位置控制器214,然后位置控制器中的C&D框架210在合適的廠商C&D模塊上執(zhí)行該程序。因此,通過使用ICDVendCommonInfo接口202,C&D框架向廠商提供了用于將廠商供給的C&D模塊集成到測試系統(tǒng)中的標(biāo)準(zhǔn)接口集。
除ICDVendCommonInfo接口202之外,該C&D框架還包括下面的接口□ICDVendFwCtrl此接口提供由廠商部件使用的支持框架的實(shí)用程序,以訪問廠商程序執(zhí)行所要求的C&D框架環(huán)境設(shè)置。這包括算法版本、校準(zhǔn)數(shù)據(jù)修訂版本設(shè)置等。
□ICDVendIO此接口提供由廠商部件使用的支持框架的實(shí)用程序,以產(chǎn)生要引導(dǎo)到C&D GUI工具的標(biāo)準(zhǔn)化的消息,或運(yùn)行在系統(tǒng)控制器上并提供數(shù)據(jù)日志記錄服務(wù)的其它應(yīng)用程序。
□ICDProgress此接口提供由廠商部件使用的支持框架的實(shí)用程序,以發(fā)送廠商程序執(zhí)行的狀態(tài)(例如“完成百分比”信息等)。此接口也用于停止從C&D GUI工具調(diào)用的C&D執(zhí)行流程或者用于暫?;蚧謴?fù)執(zhí)行。
□ICDVendCalData此接口提供由廠商部件使用的支持框架的實(shí)用程序,以讀取和寫入系統(tǒng)文件,諸如校準(zhǔn)數(shù)據(jù)等。
□ISysDeviceSiteMgr該系統(tǒng)器件位置管理器(ISysDeviceSiteMgr)提供由廠商部件使用的支持框架的實(shí)用程序,以訪問共享的系統(tǒng)器件或儀器。例如,其提供了對(duì)通過GPIB總線或通過RS-232C連接的系統(tǒng)控制器上的儀器的訪問。提供了諸如IGPIBDeviceProxy和IRS232Proxy的代理對(duì)象。這些代理對(duì)象給予廠商模塊對(duì)安裝在系統(tǒng)控制器上的器件或儀器的遠(yuǎn)程訪問。圖2b說明了根據(jù)本發(fā)明一實(shí)施例的由用于訪問共享儀器的測試系統(tǒng)使用的方案。
運(yùn)行時(shí)校準(zhǔn)運(yùn)行時(shí)校準(zhǔn)是在系統(tǒng)加載或執(zhí)行測試計(jì)劃程序時(shí)可以從測試類或從C&D框架調(diào)用的校準(zhǔn)活動(dòng)集。在一個(gè)實(shí)施例中,執(zhí)行運(yùn)行時(shí)校準(zhǔn)的方法包括□確認(rèn)硬件模塊狀態(tài)TOS確定是否所有的模塊已經(jīng)被校準(zhǔn)并對(duì)于測試DUT準(zhǔn)備就緒。
□加載校準(zhǔn)數(shù)據(jù)(在先前的校準(zhǔn)操作期間所存儲(chǔ))TOS通過加載特定于模塊的校準(zhǔn)數(shù)據(jù)來初始化模塊。
□時(shí)域反射(TDR)和定時(shí)校準(zhǔn)數(shù)據(jù)補(bǔ)償
用戶可以補(bǔ)償特定于模塊的定時(shí)校準(zhǔn)數(shù)據(jù),其與具體功能板(或負(fù)載板)一起使用。注意到,因?yàn)獒槍?duì)具體的DUT類型設(shè)計(jì)了功能板,所以系統(tǒng)定時(shí)校準(zhǔn)不考慮在器件測試時(shí)由用戶選擇的具體功能板上的追蹤線(trace line)的傳播延遲。因?yàn)樵趶臏y試設(shè)備模塊通道到DUT引腳的這些線上存在非零延遲,所以定時(shí)校準(zhǔn)數(shù)據(jù)需要關(guān)于功能板上的追蹤線的長度來進(jìn)行補(bǔ)償。時(shí)域反射(TDR)是一種用于使用電反射來測量追蹤線長度的方法,并且測量數(shù)據(jù)隨后被用于補(bǔ)償定時(shí)校準(zhǔn)數(shù)據(jù)。還注意到,因?yàn)槎〞r(shí)校準(zhǔn)數(shù)據(jù)特定于每個(gè)廠商供給的模塊,所以數(shù)據(jù)補(bǔ)償處理也特定于廠商供給的模塊。
□在線定時(shí)校準(zhǔn)數(shù)據(jù)補(bǔ)償TOS和用戶能夠關(guān)于在測試執(zhí)行期間出現(xiàn)的狀況所支配的變化、功能板的效果、以及其它因素來補(bǔ)償特定于模塊的定時(shí)校準(zhǔn)數(shù)據(jù)。換句話說,經(jīng)常需要根據(jù)測試的實(shí)際條件來補(bǔ)償定時(shí)校準(zhǔn)數(shù)據(jù)。
在一個(gè)實(shí)施例中,圖3a說明了數(shù)字功能發(fā)生器模塊,其校準(zhǔn)其驅(qū)動(dòng)定時(shí),以保證指定的定時(shí)發(fā)生在Vih(高驅(qū)動(dòng)電壓)304和Vil(低驅(qū)動(dòng)電壓)306的50%點(diǎn)302處。
數(shù)字功能發(fā)生器模塊具有兩個(gè)在線校準(zhǔn)參數(shù),Vih 304和Vil 306,其用于指定驅(qū)動(dòng)電壓幅度的50%點(diǎn)。利用預(yù)定電壓幅度集獲得基本定時(shí)校準(zhǔn)數(shù)據(jù)。例如,若Vih=3V且Vil=0V,則Vih和Vil的50%點(diǎn)是在1.5V處。Vih和Vil的值用于補(bǔ)償器件測試執(zhí)行期間的驅(qū)動(dòng)定時(shí)的定時(shí)校準(zhǔn)數(shù)據(jù)。如圖3b中所示,如果在測試期間將引腳(或引腳組)的驅(qū)動(dòng)器編程為具有Vih=1.0V(308)且Vil=0V(310),則此驅(qū)動(dòng)幅度的50%點(diǎn)312是0.5V。采用在線校準(zhǔn)以使用指定的Vih和Vil值來補(bǔ)償該定時(shí)校準(zhǔn)數(shù)據(jù),使得其足以用于這些工作驅(qū)動(dòng)電壓。
在開放架構(gòu)測試系統(tǒng)中,測試計(jì)劃程序語言中使用的硬件資源表示是獨(dú)立于廠商的。例如,不僅允許用戶利用由具體廠商提供的單個(gè)引腳、還允許用戶利用其它廠商提供的引腳來聲明引腳組,只要這些引腳滿足特定的系統(tǒng)要求就行(如果有的話)。因?yàn)闇y試類使用在測試計(jì)劃程序中指定的硬件表示,所以其支持這種獨(dú)立于廠商的(即邏輯的)硬件表示。即使通過接口由系統(tǒng)暴露了特定于廠商的運(yùn)行時(shí)校準(zhǔn)實(shí)現(xiàn),例如通過接口類ICDVendRtCal,但實(shí)際的實(shí)現(xiàn)也可能是不同的。因此,每個(gè)特定于廠商的運(yùn)行時(shí)校準(zhǔn)部件具有關(guān)于其功能性的不同的訪問句柄。測試類開發(fā)者(即用戶)需要單獨(dú)地獲得與相同的邏輯硬件表示相關(guān)的特定于廠商的訪問句柄,并且單獨(dú)地處理每個(gè)訪問句柄(它們中的每個(gè)負(fù)責(zé)從相同的邏輯硬件表示中提取的具體的特定于廠商的硬件資源)。為了在測試類開發(fā)期間避免這種復(fù)雜性,C&D框架隱藏此復(fù)雜性,并且提供具有ICDRuntimeCal接口的代理實(shí)現(xiàn)。
圖4說明根據(jù)本發(fā)明一實(shí)施例的、在運(yùn)行時(shí)期間將特定于廠商的校準(zhǔn)信息集成到開放架構(gòu)測試設(shè)備框架中的UML類圖。該UML圖包括C&D廠商運(yùn)行時(shí)校準(zhǔn)(ICDVendRtCal)接口402,C&D運(yùn)行時(shí)校準(zhǔn)(ICDRuntimeCal)接口404和C&D運(yùn)行時(shí)系統(tǒng)(ICDRuntimeSys)接口406。ICDVendRtCal接口402包含這樣的機(jī)制,其允許框架獲得特定于廠商的運(yùn)行時(shí)校準(zhǔn)例程集的特定實(shí)現(xiàn)。ICDRuntimeCal接口404允許用戶訪問ICDVendRtCal運(yùn)行時(shí)校準(zhǔn)接口402的特定于廠商的不同實(shí)現(xiàn)。圖4的UML圖還包括位置控制器214、位置控制器C&D框架210、廠商運(yùn)行時(shí)校準(zhǔn)類408、運(yùn)行時(shí)校準(zhǔn)類410以及測試類412。
在一個(gè)實(shí)施例中,ICDVendRtCal接口402、ICDRuntimeCal接口404、和ICDRuntimeSys接口406包括下列方法中的一個(gè)或多個(gè)getSwModule(),getAlgRev(),isInitialized(),loadDCCalData(),loadACCalData(),getAttributeCache(),tdrCal(),getTdrCalDataFromFile(),putTdrCalDataToFile(),mergeCal(),以及l(fā)oadACCalData()。
getAlgRev()方法返回測試模塊支持的算法或數(shù)據(jù)類型名稱。C&D框架通過getAlgRev()方法請(qǐng)求默認(rèn)的修訂版本和支持的修訂版本。修訂版本的選擇由用戶在C&D GUI工具上作出??蚣芟驈S商模塊提供了實(shí)用程序,以讀取選擇的修訂版本。測試模塊使用選擇的修訂版本來支持捆綁(bundle)能力。
isInitialized()方法由C&D框架調(diào)用以確定測試模塊是否被初始化。
當(dāng)需要將DC校準(zhǔn)數(shù)據(jù)加載到硬件模塊上時(shí)調(diào)用loadDCCalData()方法,以準(zhǔn)備操作??蚣芡ㄟ^在廠商模塊上調(diào)用isInitialized()方法來查詢模塊是否準(zhǔn)備就緒,并且按要求來調(diào)用此函數(shù)以加載用于特定模塊的DC校準(zhǔn)對(duì)象。廠商模塊獲得用戶想要使用的算法修訂版本。用于此活動(dòng)的功能性由C&D框架提供。
當(dāng)需要將AC校準(zhǔn)數(shù)據(jù)加載到硬件模塊上時(shí)調(diào)用loadACCalData()方法,以準(zhǔn)備操作。框架通過在廠商模塊上調(diào)用isInitialized()方法來詢問模塊是否準(zhǔn)備就緒,并且按要求來調(diào)用此函數(shù)以加載用于特定模塊的AC校準(zhǔn)。廠商模塊獲得用戶想要使用的算法修訂版本。用于此活動(dòng)的功能性由C&D框架提供。標(biāo)準(zhǔn)AC校準(zhǔn)數(shù)據(jù)是針對(duì)默認(rèn)條件測量的校準(zhǔn)數(shù)據(jù)。此默認(rèn)條件是由廠商硬件模塊決定的。例如ADVANTEST DM250MHz模塊測量具有0v-3v的驅(qū)動(dòng)電壓擺動(dòng)的標(biāo)準(zhǔn)AC校準(zhǔn)數(shù)據(jù)。
getAttributeCache()方法獲得ICDCalAttributeCache對(duì)象。ICDCalAttributeCache是用Oasis測試編程語言(OTPL)在校準(zhǔn)塊中描述的參數(shù)值對(duì)的廠商模塊特定解釋器。該校準(zhǔn)塊針對(duì)在線校準(zhǔn)條件描述了條件。每個(gè)廠商硬件模塊需要具有不同參數(shù)集作為在線校準(zhǔn)條件。
這些在線校準(zhǔn)參數(shù)在資源文件中列出。如果由任意具體模塊支持的資源類型具有在線校準(zhǔn)參數(shù),則其需要在對(duì)應(yīng)的資源文件中列出。資源文件由系統(tǒng)讀取并且用于確定什么校準(zhǔn)模塊負(fù)責(zé)接受在校準(zhǔn)塊中指定的參數(shù)。
ICDCalAttributeCache是接口,用于提供方法以設(shè)置廠商硬件模塊特定在線校準(zhǔn)參數(shù)并還將其寫入到硬件模塊。校準(zhǔn)模塊開發(fā)者實(shí)現(xiàn)了該接口,如果硬件模塊根據(jù)用戶使用此特定模塊的條件而要求校準(zhǔn)數(shù)據(jù)補(bǔ)償,則此接口通過getAttributeCache()針對(duì)具體的資源類型返回一實(shí)例??蚣軐⒃诰€校準(zhǔn)參數(shù)傳遞給此實(shí)例,并且調(diào)用apply()方法將其寫入到硬件模塊。參數(shù)存儲(chǔ)在測試條件存儲(chǔ)器(TCM)中,并且框架將對(duì)實(shí)現(xiàn)測試條件的ICDCalAttributeCache對(duì)象集給出ID。
tdrCal()方法通過使用時(shí)域反射(TDR)方法來測量具體通道上線纜的長度以便補(bǔ)償校準(zhǔn)數(shù)據(jù)。對(duì)于要求此功能性的硬件模塊實(shí)現(xiàn)此方法。
getTdrCalDataFromFiIe()方法讀取由tdrCal()方法創(chuàng)建的TDR數(shù)據(jù)文件。廠商的實(shí)現(xiàn)需要針對(duì)功能板標(biāo)識(shí)符讀取TDR數(shù)據(jù)文件。此方法讀取數(shù)據(jù)文件中引腳的TDR數(shù)據(jù)。
putTdrCalDataToFile()方法寫入TDR數(shù)據(jù)文件。此方法由想要從其它面向用戶的數(shù)據(jù)文件創(chuàng)建TDR數(shù)據(jù)文件的用戶使用,或由想要補(bǔ)償由tdrCal()測量的TDR數(shù)據(jù)的用戶使用。
mergeCal()方法以TDR結(jié)果數(shù)據(jù)來補(bǔ)償標(biāo)準(zhǔn)AC校準(zhǔn)數(shù)據(jù)。在調(diào)用此方法之前需要加載標(biāo)準(zhǔn)AC校準(zhǔn)或任意校準(zhǔn)的數(shù)據(jù)。
當(dāng)用戶試圖加載來自數(shù)據(jù)文件的標(biāo)準(zhǔn)AC校準(zhǔn)或任意AC校準(zhǔn)或合并的AC校準(zhǔn)數(shù)據(jù)時(shí),調(diào)用loadACCalData()方法。當(dāng)目的地是測試條件存儲(chǔ)器時(shí),塊標(biāo)識(shí)符被指定為TcmID。所創(chuàng)建的測試條件存儲(chǔ)器塊將由selectTestCondition()方法來選擇。指定的TcmID可以被系統(tǒng)使用,以將校準(zhǔn)數(shù)據(jù)從在線校準(zhǔn)數(shù)據(jù)回返到在測試執(zhí)行時(shí)間由此方法加載的原始校準(zhǔn)數(shù)據(jù)。如果該用戶不使用此方法將數(shù)據(jù)加載到測試條件存儲(chǔ)器上,則系統(tǒng)以未知的TcmID在廠商模塊上調(diào)用selectTestCondition()。廠商模塊在此情形中返回一錯(cuò)誤。
測試條件存儲(chǔ)器的使用可以在測試計(jì)劃程序執(zhí)行期間執(zhí)行運(yùn)行時(shí)校準(zhǔn)活動(dòng)。例如,每次在檢測到可能導(dǎo)致系統(tǒng)精度損失的任意條件之后,可以進(jìn)行在線校準(zhǔn)。此在線校準(zhǔn)導(dǎo)致了測試執(zhí)行時(shí)間的開銷,而這又可以降低測試系統(tǒng)的效率。
為了減輕此開銷,根據(jù)本發(fā)明的另一實(shí)施例,測試系統(tǒng)預(yù)載了預(yù)定校準(zhǔn)數(shù)據(jù)集,并且將其存儲(chǔ)在測試條件存儲(chǔ)器中。測試條件存儲(chǔ)器(TCM)是用于存儲(chǔ)測試條件的條件數(shù)據(jù)高速緩存,并且其可以有效地將測試條件數(shù)據(jù)從TCM傳送到硬件寄存器。可以通過軟件或硬件來實(shí)現(xiàn)此測試條件存儲(chǔ)器。C&D框架將使用ITCMManipulator接口來創(chuàng)建、選擇、刪除測試條件,ITCMManipulator接口具有由廠商校準(zhǔn)模塊實(shí)現(xiàn)的下列方法。
OFCStatus openTCMEntry(TCMID_t condition);OFCStatus closeTCMEntry(TCMID_t condition);OFCStatus selectTCMEnfry(TCMID_tcondition);OFCStatus removeTCMEntry(TCMID_t condition);TCMID_t是測試條件的標(biāo)識(shí)符。該框架將為測試條件的創(chuàng)建(openTestCondition()和closeTestCondition()),選擇(selectTestCondition()),刪除(removeTestCondition())指定一標(biāo)識(shí)符。由ICDVendRtCal::getTCMManipulator()返回TCMManipulator。
在測試計(jì)劃程序執(zhí)行時(shí)期,C&D框架選擇適當(dāng)?shù)臏y試條件存儲(chǔ)器塊,并且將它們傳送到對(duì)應(yīng)的硬件模塊寄存器。圖5示出了根據(jù)本發(fā)明一實(shí)施例的用于實(shí)現(xiàn)測試條件存儲(chǔ)器的方法。該方法包括測試條件存儲(chǔ)器操縱接口(ITCMManipulator)502、C&D廠商運(yùn)行時(shí)校準(zhǔn)接口402、以及廠商運(yùn)行時(shí)校準(zhǔn)數(shù)據(jù)對(duì)象408。ITCMManipulator接口502由C&D框架使用,以操縱測試條件存儲(chǔ)器。通過實(shí)現(xiàn)此接口,任何廠商的測試條件數(shù)據(jù)都可以無縫地集成和加載到TCM中,從而減少測試系統(tǒng)的校準(zhǔn)開銷。
通過所公開的C&D框架得到一些好處。第一,其使得能夠開發(fā)多廠商(即第三方)的軟件和儀器、單獨(dú)驗(yàn)證并可靠地集成到測試系統(tǒng)中,而不需要針對(duì)儀器的校準(zhǔn)和/或診斷的任何特定于廠商的專有處理。另外,所公開的C&D框架將廠商供給的校準(zhǔn)和/或診斷模塊組織成單獨(dú)的部件,由此提供了針對(duì)特定的廠商供給部件的集成和使用的無縫支持。而且,所公開的C&D框架提供了通過模塊C&D部件來共享系統(tǒng)儀器的遠(yuǎn)程訪問方案。另外,C&D框架提供用于將校準(zhǔn)數(shù)據(jù)存儲(chǔ)在測試條件存儲(chǔ)器中的機(jī)制,這減少了典型地由于測試系統(tǒng)的重新校準(zhǔn)而在測試期間引起的測試程序運(yùn)行時(shí)開銷。
相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到可以使用所公開實(shí)施例的很多可能的修改和組合,而仍然采用相同的基本底層機(jī)制和方法。為了解釋,已經(jīng)參照特定實(shí)施例給出了前面的描述。然而,上面的說明性的討論不是窮舉的或是要將本發(fā)明限制到所公開的確切形式。鑒于上面的教導(dǎo),很多修改和變化都是可能的。選擇并描述實(shí)施例是為了解釋本發(fā)明的原理及其實(shí)際應(yīng)用,并使本領(lǐng)域技術(shù)人員能夠以適于所考慮的具體應(yīng)用的各種修改來最佳地利用本發(fā)明以及各個(gè)實(shí)施例。
權(quán)利要求
1.一種用于將測試模塊集成在模塊化的測試系統(tǒng)中的方法,包括創(chuàng)建用于集成廠商供給的測試模塊的部件類別;創(chuàng)建校準(zhǔn)和診斷(C&D)框架,其用于在所述廠商供給的測試模塊和所述模塊化的測試系統(tǒng)之間建立標(biāo)準(zhǔn)接口,其中所述C&D框架包括傳遞廠商供給的模塊集成信息的接口類;接收廠商供給的測試模塊;根據(jù)所述部件類別從所述廠商供給的測試模塊中檢索模塊集成信息;以及使用所述C&D框架基于所述模塊集成信息將所述廠商供給的測試模塊集成到所述模塊化的測試系統(tǒng)中。
2.如權(quán)利要求1的方法,其中所述部件類別包括選自包括驅(qū)動(dòng)軟件、校準(zhǔn)軟件和診斷軟件的組中的一個(gè)或多個(gè)元件。
3.如權(quán)利要求1的方法,其中所述接口類包括模塊管理器,用于獲得模塊配置數(shù)據(jù);廠商命令信息接口,用于獲得廠商校準(zhǔn)DLL和廠商診斷DLL;位置控制器框架,用于與一個(gè)或多個(gè)位置控制器接口;以及系統(tǒng)框架,用于與系統(tǒng)控制器接口。
4.如權(quán)利要求1的方法,其中所述接口類被定義為C++類。
5.如權(quán)利要求1的方法,還包括將所述模塊集成信息存儲(chǔ)在測試條件存儲(chǔ)器中;以及基于存儲(chǔ)在所述測試條件存儲(chǔ)器中的所述模塊集成信息來執(zhí)行所述廠商供給的測試模塊的校準(zhǔn)。
6.如權(quán)利要求1的方法,還包括將所述模塊集成信息存儲(chǔ)在測試條件存儲(chǔ)器中;以及基于存儲(chǔ)在所述測試條件存儲(chǔ)器中的所述模塊集成信息在所述廠商供給的測試模塊上執(zhí)行診斷。
7.如權(quán)利要求5的方法,其中執(zhí)行校準(zhǔn)包括提供運(yùn)行時(shí)校準(zhǔn)接口;以及基于所述運(yùn)行時(shí)校準(zhǔn)接口執(zhí)行所述廠商供給的測試模塊的運(yùn)行時(shí)校準(zhǔn)。
8.如權(quán)利要求7的方法,其中所述運(yùn)行時(shí)校準(zhǔn)接口包括系統(tǒng)接口,用于通過位置控制器與所述廠商供給的測試模塊通信;校準(zhǔn)接口,用于與用戶傳遞測試類信息;以及廠商接口,用于與廠商傳遞廠商供給的校準(zhǔn)信息。
9.如權(quán)利要求7的方法,其中執(zhí)行運(yùn)行時(shí)校準(zhǔn)包括獲得硬件模塊狀態(tài);加載校準(zhǔn)數(shù)據(jù);執(zhí)行時(shí)域反射;執(zhí)行定時(shí)校準(zhǔn)數(shù)據(jù)補(bǔ)償;以及執(zhí)行在線定時(shí)校準(zhǔn)數(shù)據(jù)補(bǔ)償。
10.如權(quán)利要求1的方法,其中檢索包括在運(yùn)行時(shí)期間動(dòng)態(tài)地加載所述模塊集成信息。
11.如權(quán)利要求1的方法,其中檢索包括在運(yùn)行時(shí)期間獨(dú)立地加載所述模塊集成信息。
12.如權(quán)利要求1的方法,其中集成包括基于所述模塊集成信息來校準(zhǔn)所述廠商供給的測試模塊。
13.如權(quán)利要求1的方法,其中集成包括基于所述模塊集成信息來診斷所述廠商供給的測試模塊。
14.一種模塊化的測試系統(tǒng),包括系統(tǒng)控制器;至少一個(gè)耦合到所述系統(tǒng)控制器的位置控制器;至少一個(gè)廠商供給的測試模塊以及其對(duì)應(yīng)的被測器件(DUT);用于集成廠商供給的測試模塊的部件類別;校準(zhǔn)和診斷(C&D)框架,用于在所述廠商供給的測試模塊和所述模塊化的測試系統(tǒng)之間建立標(biāo)準(zhǔn)接口,其中所述C&D框架包括傳遞廠商供給的模塊集成信息的接口類;用于接收廠商供給的測試模塊的裝置;用于根據(jù)所述部件類別從所述廠商供給的測試模塊中檢索模塊集成信息的裝置;以及用于使用所述C&D框架基于所述模塊集成信息來將所述廠商供給的測試模塊集成到所述模塊化的測試系統(tǒng)中的裝置。
15.如權(quán)利要求14的系統(tǒng),其中所述部件類別包括驅(qū)動(dòng)軟件;校準(zhǔn)軟件;以及診斷軟件。
16.如權(quán)利要求14的系統(tǒng),其中所述接口類包括模塊管理器,用于獲得模塊配置數(shù)據(jù);廠商命令信息接口,用于獲得廠商校準(zhǔn)DLL和廠商診斷DLL;位置控制器框架,用于與一個(gè)或多個(gè)位置控制器接口;以及系統(tǒng)框架,用于與系統(tǒng)控制器接口。
17.如權(quán)利要求14的系統(tǒng),其中所述接口類被定義為C++類。
18.如權(quán)利要求14的系統(tǒng),還包括測試條件存儲(chǔ)器,用于存儲(chǔ)所述模塊集成信息;以及用于基于存儲(chǔ)在所述測試條件存儲(chǔ)器中的所述模塊集成信息來在所述廠商供給的測試模塊上執(zhí)行校準(zhǔn)的裝置。
19.如權(quán)利要求14的系統(tǒng),還包括測試條件存儲(chǔ)器,用于存儲(chǔ)所述模塊集成信息;以及用于基于存儲(chǔ)在所述測試條件存儲(chǔ)器中的所述模塊集成信息來在所述廠商供給的測試模塊上執(zhí)行診斷的裝置。
20.如權(quán)利要求18的系統(tǒng),其中所述用于執(zhí)行校準(zhǔn)的裝置包括運(yùn)行時(shí)校準(zhǔn)接口;以及基于所述運(yùn)行時(shí)校準(zhǔn)接口執(zhí)行所述廠商供給的測試模塊的運(yùn)行時(shí)校準(zhǔn)的裝置。
21.如權(quán)利要求20的系統(tǒng),其中所述運(yùn)行時(shí)校準(zhǔn)接口包括系統(tǒng)接口,用于通過位置控制器與所述廠商供給的測試模塊通信;校準(zhǔn)接口,用于與用戶傳遞測試類信息;以及廠商接口,用于與廠商傳遞廠商供給的校準(zhǔn)信息。
22.如權(quán)利要求20的系統(tǒng),其中所述用于執(zhí)行運(yùn)行時(shí)校準(zhǔn)的裝置包括用于獲得硬件模塊狀態(tài)的裝置;用于加載校準(zhǔn)數(shù)據(jù)的裝置;用于執(zhí)行時(shí)域反射的裝置;用于執(zhí)行定時(shí)校準(zhǔn)數(shù)據(jù)補(bǔ)償?shù)难b置;以及用于執(zhí)行在線定時(shí)校準(zhǔn)數(shù)據(jù)補(bǔ)償?shù)难b置。
23.如權(quán)利要求14的系統(tǒng),其中所述用于檢索的裝置包括用于在運(yùn)行時(shí)期間動(dòng)態(tài)地加載所述模塊集成信息的裝置。
24.如權(quán)利要求14的系統(tǒng),其中所述用于檢索的裝置包括用于在運(yùn)行時(shí)期間獨(dú)立地加載所述模塊集成信息的裝置。
25.如權(quán)利要求14的系統(tǒng),其中用于集成的裝置包括用于基于所述模塊集成信息來校準(zhǔn)所述廠商供給的測試模塊的裝置。
26.如權(quán)利要求14的系統(tǒng),其中用于集成的裝置包括用于基于所述模塊集成信息來診斷所述廠商供給的測試模塊的裝置。
全文摘要
一種用于將測試模塊集成在模塊化的測試系統(tǒng)中的方法,包括創(chuàng)建用于集成廠商供給的測試模塊的部件類別,以及創(chuàng)建用于在所述廠商供給的測試模塊和所述模塊化的測試系統(tǒng)之間建立標(biāo)準(zhǔn)接口的校準(zhǔn)和診斷(C&D)框架,其中所述C&D框架包括傳遞廠商供給的模塊集成信息的接口類。該方法還包括接收廠商供給的測試模塊;根據(jù)所述部件類別從所述廠商供給的測試模塊中檢索模塊集成信息;以及使用所述C&D框架基于所述模塊集成信息將所述廠商供給的測試模塊集成到所述模塊化的測試系統(tǒng)中。
文檔編號(hào)G01R31/28GK1981203SQ20058001635
公開日2007年6月13日 申請(qǐng)日期2005年5月23日 優(yōu)先權(quán)日2004年5月22日
發(fā)明者足立敏明, 安康·普拉馬尼克, 馬克·埃爾斯頓 申請(qǐng)人:株式會(huì)社愛德萬測試