專利名稱:用于合成測試數(shù)據(jù)流的狀態(tài)事件的系統(tǒng)、方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于合成測試數(shù)據(jù)流的狀態(tài)事件的系統(tǒng)、方法和設(shè)備。
背景技術(shù):
測試數(shù)據(jù),例如由對多個被測試器件(DUT)執(zhí)行測試的測試器所產(chǎn)生的測試數(shù)據(jù),報告?zhèn)€體數(shù)據(jù)事件和將所述數(shù)據(jù)事件放入適當(dāng)?shù)纳舷挛闹械臓顟B(tài)事件?,F(xiàn)在的測試器和數(shù)據(jù)處理設(shè)備被證實具有高可靠性,然而,仍然會出現(xiàn)導(dǎo)致測試數(shù)據(jù)包含錯誤的問題。
發(fā)明內(nèi)容
在一個實施方式中,一種方法,包括A)訪問測試數(shù)據(jù)流,所述測試數(shù)據(jù)包括1)更新當(dāng)前測試狀態(tài)的多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件中的一些狀態(tài)事件的多個數(shù)據(jù)事件;B)當(dāng)訪問所述多個數(shù)據(jù)事件中的一個數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否與所述當(dāng)前測試狀態(tài)一致;C)如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)一致,則發(fā)布所述數(shù)據(jù)事件;并且D)如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)不一致,則1)緩存多個附加數(shù)據(jù)事件;并且2)如果所述多個附加數(shù)據(jù)事件隱含在訪問所述數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則i)遵照所述被隱含的狀態(tài)改變,合成并發(fā)布所述應(yīng)當(dāng)被接收的狀態(tài)事件;ii)根據(jù)所述被隱含的狀態(tài)改變更新所述當(dāng)前測試狀態(tài);并且iii)然后,發(fā)布所述數(shù)據(jù)事件。
在另一個實施方式中,一種用于合成測試數(shù)據(jù)流的狀態(tài)事件的系統(tǒng),包括A)可操作用于訪問測試數(shù)據(jù)流的接口,所述測試數(shù)據(jù)包括1)更新當(dāng)前測試狀態(tài)的多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件中的一些狀態(tài)事件的多個數(shù)據(jù)事件;B)數(shù)據(jù)存儲器;和C)與所述接口和數(shù)據(jù)存儲器通信的處理器,其可操作用于,1)當(dāng)訪問所述多個數(shù)據(jù)事件中的一個數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否與所述當(dāng)前測試狀態(tài)一致;2)如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)一致,則發(fā)布所述數(shù)據(jù)事件;并且3)如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)不一致,則i)使所述數(shù)據(jù)存儲裝置緩存多個附加數(shù)據(jù)事件;并且ii)如果所述多個附加數(shù)據(jù)事件隱含在訪問所述數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則a)遵照所述被隱含的狀態(tài)改變,合成并發(fā)布所述應(yīng)當(dāng)被接收的狀態(tài)事件;b)根據(jù)所述被隱含的狀態(tài)改變更新所述當(dāng)前測試狀態(tài);并且c)然后,發(fā)布所述數(shù)據(jù)事件。
在另一個實施方式中,一個或多個在其上存儲有指令序列的機器可讀介質(zhì),當(dāng)機器執(zhí)行所述指令序列時能夠使機器執(zhí)行下列操作A)訪問測試數(shù)據(jù)流,所述測試數(shù)據(jù)包括1)更新當(dāng)前測試狀態(tài)的多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件中的一些狀態(tài)事件的多個數(shù)據(jù)事件;B)當(dāng)訪問所述多個數(shù)據(jù)事件中的一個數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否與所述當(dāng)前測試狀態(tài)一致;C)如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)一致,則發(fā)布所述數(shù)據(jù)事件;并且D)如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)不一致,則1)緩存多個附加數(shù)據(jù)事件;并且2)如果所述多個附加數(shù)據(jù)事件隱含在訪問所述數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則i)遵照所述被隱含的狀態(tài)改變,合成并發(fā)布所述應(yīng)當(dāng)被接收的狀態(tài)事件;ii)根據(jù)所述被隱含的狀態(tài)改變更新所述當(dāng)前測試狀態(tài);并且iii)然后,發(fā)布所述數(shù)據(jù)事件。
其它實施方式也被公開。
附圖中示出了本發(fā)明的示例性實施例,其中圖1示出了用于合成測試數(shù)據(jù)流的狀態(tài)事件的第一示例流程圖;圖2示出了用于合成測試數(shù)據(jù)流的狀態(tài)事件的第二示例流程圖;以及圖3示出了一種可操作用于執(zhí)行圖1和圖2所示的步驟的系統(tǒng)。
具體實施例方式
測試器是用于對多個被測試的器件(DTUs)執(zhí)行測試的高可靠性的設(shè)備,但是復(fù)雜的測試環(huán)境仍然會使測試器所產(chǎn)生的測試結(jié)果包含錯誤。例如測試數(shù)據(jù)流中被誤放的數(shù)據(jù)事件。測試器產(chǎn)生包含狀態(tài)事件和數(shù)據(jù)事件本身的測試數(shù)據(jù)流,所述狀態(tài)事件例如用于給后續(xù)數(shù)據(jù)事件提供上下文。數(shù)據(jù)事件提供測試結(jié)果自身(例如,”pin14=3.2v”,”continuity=false”)并且可以是單個數(shù)據(jù)元素或復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。如果狀態(tài)事件提供了給定的上下文而后續(xù)測試數(shù)據(jù)并不屬于該上下文,則導(dǎo)致錯誤。當(dāng)狀態(tài)事件本應(yīng)被接收并從而觸發(fā)對于當(dāng)前測試狀態(tài)的更新,但是該狀態(tài)事件并不存在于測試數(shù)據(jù)中時,將會發(fā)生另一潛在錯誤。
在不調(diào)整測試數(shù)據(jù)的情況下,如果數(shù)據(jù)事件在不合適的位置被測試數(shù)據(jù)的使用者(例如格式化者,分析者,報告者)所接收,例如當(dāng)1)與不正確的狀態(tài)事件相關(guān)聯(lián)的數(shù)據(jù)事件被接收,或者2)沒有任何相關(guān)聯(lián)的狀態(tài)事件的數(shù)據(jù)事件被接收時,則后面的測試數(shù)據(jù)將被認為是錯誤和不可用的。不可用的測試數(shù)據(jù)的量可能是后面的直至測試器被重啟為止的所有測試數(shù)據(jù),并且可能會出現(xiàn)在若干小時甚至若干天的測試中。
通過分析數(shù)據(jù)事件,測試數(shù)據(jù)可以被調(diào)整以修復(fù)多個錯誤數(shù)據(jù)事件以增加測試數(shù)據(jù)的利用。如果大部分測試數(shù)據(jù)丟失,則數(shù)據(jù)事件仍然可能被舍棄,但是更可能的情況是在將狀態(tài)事件插入測試數(shù)據(jù)中的適當(dāng)位置時的小“故障(glitch)”。那些與不正確的狀態(tài)事件相關(guān)聯(lián)的數(shù)據(jù)事件可以具有被合成并且在適當(dāng)位置插入到測試數(shù)據(jù)中的合適的狀態(tài)事件。因此,測試數(shù)據(jù)的使用者可以看到他們想要的測試數(shù)據(jù)。
圖1示出了用于合成測試數(shù)據(jù)流的狀態(tài)事件的第一示例流程圖100。步驟102訪問測試數(shù)據(jù)。步驟104確定該測試數(shù)據(jù)是否是數(shù)據(jù)事件,如果是,則進行步驟106,或者如果該測試數(shù)據(jù)不是數(shù)據(jù)事件(例如,狀態(tài)事件),則流程圖100結(jié)束。步驟106確定數(shù)據(jù)事件是否與當(dāng)前測試狀態(tài)相一致,如果是,則進行步驟108,如果不是,則進行步驟110。一旦從步驟106到達步驟108,步驟108發(fā)布與當(dāng)前測試狀態(tài)一致的數(shù)據(jù)事件。在步驟108發(fā)布數(shù)據(jù)事件之后,流程圖100結(jié)束。
步驟110緩存附加數(shù)據(jù)事件,然后步驟112確定附加數(shù)據(jù)事件是否隱含狀態(tài)事件丟失并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,如果是,則進行步驟114,如果不是,則流程圖100結(jié)束。步驟114合成狀態(tài)事件。步驟116發(fā)布狀態(tài)事件。步驟118根據(jù)所隱含的狀態(tài)事件更新當(dāng)前測試狀態(tài),并且步驟108發(fā)布包括數(shù)據(jù)事件和在步驟110中被緩存的附加數(shù)據(jù)事件在內(nèi)的數(shù)據(jù)事件。
步驟110緩存附加數(shù)據(jù)事件。在一個實施例中,固定數(shù)目的數(shù)據(jù)事件被緩存,該固定數(shù)目與設(shè)計的選擇有關(guān)。在另一實施例中,在狀態(tài)事件之前的全部數(shù)據(jù)事件都被緩存。在又一實施例中,步驟110和步驟112被反復(fù)執(zhí)行,其中一個附加數(shù)據(jù)事件被緩存并且被估計,以確定在給定的可靠度級別內(nèi)能否得出一個關(guān)于狀態(tài)事件是否丟失的結(jié)論。如果達不到該可靠度級別,則第二個附加數(shù)據(jù)事件被緩存。該循環(huán)一直重復(fù)到確定了足夠的可靠度級別或者確定該可靠度級別肯定能夠達到為止。在后面的情況中,數(shù)據(jù)事件可以被認為是不隱含狀態(tài)事件丟失并且處理結(jié)束。
在一個實施例中,如圖所示,用于發(fā)布狀態(tài)事件的步驟116在用于更新當(dāng)前測試狀態(tài)的步驟118之前。在另一實施例中,步驟116和118被顛倒。
流程圖100可以被重復(fù),例如直至沒有未訪問的測試數(shù)據(jù)為止。
圖2示出了用于合成測試數(shù)據(jù)流的狀態(tài)事件的第二示例流程圖200。步驟202訪問測試數(shù)據(jù)。步驟204確定該測試數(shù)據(jù)是否是數(shù)據(jù)事件,如果是,則執(zhí)行步驟210,如果不是,則該測試數(shù)據(jù)是狀態(tài)事件并執(zhí)行步驟206。
步驟206更新當(dāng)前測試狀態(tài),然后步驟208發(fā)布狀態(tài)事件。在另一個實施方式中,步驟206和208被顛倒。
步驟210確定當(dāng)前測試狀態(tài)是否已知。如果當(dāng)前測試狀態(tài)未知,即當(dāng)數(shù)據(jù)事件在當(dāng)前測試狀態(tài)的初始設(shè)置之前被接收時,則執(zhí)行步驟222。如果狀態(tài)已知,則執(zhí)行步驟212。
如果步驟210確定當(dāng)前測試狀態(tài)是未知的,則執(zhí)行步驟222來確定數(shù)據(jù)事件是否指示當(dāng)前測試狀態(tài),如果是,則執(zhí)行步驟224,如果不是,則執(zhí)行步驟214。
回到步驟212來確定數(shù)據(jù)事件是否與當(dāng)前測試狀態(tài)相一致,如果是,則步驟218發(fā)布該數(shù)據(jù)事件,如果不是,則執(zhí)行步驟214來緩存附加數(shù)據(jù)事件。
在緩存附加數(shù)據(jù)事件之后,步驟216確定附加數(shù)據(jù)事件是否隱含狀態(tài)事件丟失并且狀態(tài)更新應(yīng)當(dāng)已發(fā)生。
步驟214緩存多個數(shù)據(jù)事件。在一個實施例中,固定數(shù)目的數(shù)據(jù)事件被緩存,該固定數(shù)目與設(shè)計的選擇有關(guān)。在另一實施例中,以一個狀態(tài)事件結(jié)束的全部數(shù)據(jù)事件被緩存。在又一實施例中,步驟214和216重復(fù)進行,其中一個附加數(shù)據(jù)事件被緩存并且被估計,以確定在所給定的可靠度級別內(nèi)能否得出一個關(guān)于數(shù)據(jù)事件是否丟失的結(jié)論。如果達不到該可靠度級別,則第二個附加數(shù)據(jù)事件被緩存。該循環(huán)一直重復(fù)到確定了足夠的可靠度級別或者確定該可靠度肯定可以達到為止。在后面的情況中,則數(shù)據(jù)事件被認為是不隱含狀態(tài)事件丟失并且處理結(jié)束。
如果步驟216確定附加事件不隱含丟失的狀態(tài)事件并且狀態(tài)更新應(yīng)當(dāng)沒有發(fā)生,則執(zhí)行步驟220來清除數(shù)據(jù)事件。在一個實施例中,步驟220通過從測試數(shù)據(jù)中刪除數(shù)據(jù)事件來清除數(shù)據(jù)事件。在另一實施例中,步驟220省略了發(fā)布數(shù)據(jù)事件的步驟,從而允許之前用于存儲數(shù)據(jù)事件的存儲器和/或存儲器空間可以用于其它用途。
如果步驟216確定附加事件確實隱含丟失的狀態(tài)事件并且狀態(tài)更新應(yīng)當(dāng)已發(fā)生,則步驟224合成狀態(tài)事件,步驟226發(fā)布狀態(tài)事件,步驟228根據(jù)所隱含的狀態(tài)事件更新當(dāng)前測試狀態(tài),并且步驟218發(fā)布數(shù)據(jù)事件。如果經(jīng)緩存步驟214執(zhí)行到步驟218,則步驟218發(fā)布數(shù)據(jù)事件和在步驟214中緩存的附加數(shù)據(jù)事件,否則步驟218發(fā)布已經(jīng)被確定為與當(dāng)前測試狀態(tài)一致(參見步驟212)或指示當(dāng)前測試狀態(tài)(參見步驟222)的數(shù)據(jù)事件。在一個實施例中,如圖所示,步驟226在步驟228之前。在另一實施例中,步驟226與228被顛倒。
在一個實施例中,步驟216根據(jù)附加事件中的狀態(tài)事件來確定附加事件隱含丟失的狀態(tài)事件。附加事件中的狀態(tài)事件清楚地指示第二個狀態(tài)改變并且隱含丟失的狀態(tài)事件。
步驟218發(fā)布數(shù)據(jù)事件,步驟208和步驟226發(fā)布狀態(tài)事件。在一個實施例中,發(fā)布步驟包括向測試數(shù)據(jù)的使用者傳送要被發(fā)布的數(shù)據(jù)事件或狀態(tài)事件。在另一實施例中,發(fā)布步驟存儲數(shù)據(jù)事件和狀態(tài)事件,然后這些事件可以被所存儲的數(shù)據(jù)事件和狀態(tài)事件的使用者所訪問。在另一實施例中,發(fā)布步驟設(shè)置屬性(例如,標(biāo)記、索引、指針)來指示數(shù)據(jù)事件和狀態(tài)事件中的一些是有效的。該屬性可以被結(jié)合到上述一些數(shù)據(jù)事件和狀態(tài)事件之中,或者與這些數(shù)據(jù)事件和狀態(tài)事件分開。使用者隨后訪問該屬性來確定哪些數(shù)據(jù)事件和狀態(tài)事件將被使用。
步驟202訪問測試數(shù)據(jù)。在一個實施例中,步驟202可以讀取測試數(shù)據(jù)。在另一實施例中,步驟202接收測試數(shù)據(jù)。
步驟216確定附加數(shù)據(jù)事件是否隱含狀態(tài)事件以及狀態(tài)更新是否應(yīng)當(dāng)已發(fā)生。在一個實施例中,與附加數(shù)據(jù)事件相關(guān)聯(lián)的屬性確定是否發(fā)生所隱含的狀態(tài)改變。例如,數(shù)據(jù)事件本身內(nèi)的數(shù)據(jù)可能隱含狀態(tài)改變,例如作為參數(shù)測試事件(例如電壓、電流強度、電阻、計數(shù)器、時間延遲等的測量值)的數(shù)據(jù)事件可以指示一個狀態(tài),而作為功能測試事件(例如總結(jié),真/假指示符)的數(shù)據(jù)事件可以指示其他類型的狀態(tài)。在另一實施例中,該附加屬性可以更清楚地隱含狀態(tài)改變。例如,一個數(shù)據(jù)事件可以包括清楚地標(biāo)識狀態(tài)的屬性,并且后續(xù)的數(shù)據(jù)事件清楚地標(biāo)識另一狀態(tài)。
圖3示出了可操作用于執(zhí)行圖1和圖2所示的步驟的系統(tǒng)300。接口302訪問測試數(shù)據(jù)。在一個實施例中,該被訪問的測試數(shù)據(jù)來自對DUT 310執(zhí)行測試的測試器308。在另一實施例中,測試器308是多個測試器。在又一實施例中,DUT310是多個DUT。
在另一實施例中,被訪問的測試數(shù)據(jù)來自測試數(shù)據(jù)存儲器312。測試數(shù)據(jù)存儲器312存儲有來自于例如對DUT 310執(zhí)行測試的測試器308的測試數(shù)據(jù)。
處理器304與接口302和數(shù)據(jù)存儲器306通信。當(dāng)訪問一個數(shù)據(jù)事件時,處理器304確定該數(shù)據(jù)事件是否與當(dāng)前測試狀態(tài)相一致,參見前面所述的步驟106和步驟212。如果處理器304確定該數(shù)據(jù)事件與當(dāng)前測試狀態(tài)一致,則發(fā)布該數(shù)據(jù)事件。參見前面所述的步驟108和步驟218。
如果處理器304確定該數(shù)據(jù)事件與當(dāng)前測試狀態(tài)不一致,則處理器304使數(shù)據(jù)存儲器306緩存多個附加數(shù)據(jù)事件。參見前面所述的步驟110和步驟214。如果處理器304確定多個附加數(shù)據(jù)事件隱含在訪問一個數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生(參見前面所述的步驟112和步驟216),則遵照所隱含的狀態(tài)改變,合成并且發(fā)布應(yīng)當(dāng)已被接收的狀態(tài)事件(參見前面所述的步驟114、116和步驟224、226)。處理器304根據(jù)狀態(tài)事件更新當(dāng)前測試狀態(tài)。參見前面所述的步驟118和步驟228。然后發(fā)布數(shù)據(jù)事件。參見前面所述的步驟108和步驟228。
在另一實施例中,處理器304執(zhí)行狀態(tài)機程序。該狀態(tài)機確定從一個測試狀態(tài)到另一測試狀態(tài)的可接受的轉(zhuǎn)換,所述轉(zhuǎn)換由當(dāng)前測試狀態(tài)的值來確定。例如,該狀態(tài)機器可以使數(shù)據(jù)存儲器306緩存測試數(shù)據(jù)并確定被緩存的測試數(shù)據(jù)是否包括1)有效的狀態(tài)事件,或2)有效的被隱含的狀態(tài)事件。當(dāng)確定狀態(tài)事件或被隱含的狀態(tài)事件有效時,允許相應(yīng)地更新當(dāng)前測試狀態(tài)。如果狀態(tài)事件或者被隱含的狀態(tài)事件無效,則舍棄在下一個有效的狀態(tài)事件或被隱含的狀態(tài)事件之前的數(shù)據(jù)事件。
例如,如果有效的狀態(tài)事件把當(dāng)前測試狀態(tài)更新為“組(lot)”,并且被緩存的狀態(tài)事件或被隱含的狀態(tài)事件將把當(dāng)前測試狀態(tài)更新為“器件”,則該狀態(tài)機將允許該更新。然而,如果當(dāng)前測試狀態(tài)為“測試組(testsuite)”,并且即將出現(xiàn)的狀態(tài)事件為“晶圓”,則該轉(zhuǎn)換是無效的并且更新被拒絕。在另一實施例中,在無效更新之前的全部測試數(shù)據(jù)均被清除。在又一實施例中,清除所有測試數(shù)據(jù),直到出現(xiàn)有效的狀態(tài)事件為止。
權(quán)利要求
1.一種方法,包括訪問測試數(shù)據(jù)流,所述測試數(shù)據(jù)包括1)更新當(dāng)前測試狀態(tài)的多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件中的一些狀態(tài)事件的多個數(shù)據(jù)事件;當(dāng)訪問所述多個數(shù)據(jù)事件中的一個數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否與所述當(dāng)前測試狀態(tài)一致;如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)一致,則發(fā)布所述數(shù)據(jù)事件;并且如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)不一致,則緩存多個附加數(shù)據(jù)事件;并且如果所述多個附加數(shù)據(jù)事件隱含在訪問所述數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則(A)遵照所述被隱含的狀態(tài)改變,合成并發(fā)布所述應(yīng)當(dāng)已被接收的狀態(tài)事件;(B)根據(jù)所述被隱含的狀態(tài)改變更新所述當(dāng)前測試狀態(tài);并且(C)隨后,發(fā)布所述數(shù)據(jù)事件。
2.如權(quán)利要求1所述的方法,還包括,如果所述多個附加數(shù)據(jù)事件未隱含狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則清除所述數(shù)據(jù)事件。
3.如權(quán)利要求1所述的方法,還包括當(dāng)訪問所述多個狀態(tài)事件中的一個狀態(tài)事件時,根據(jù)所述狀態(tài)事件更新所述當(dāng)前測試狀態(tài);并且發(fā)布所述狀態(tài)事件。
4.如權(quán)利要求1所述的方法,其中發(fā)布所述數(shù)據(jù)事件還包括使所述數(shù)據(jù)事件對于所述測試數(shù)據(jù)的使用者是可用的。
5.如權(quán)利要求1所述的方法,其中所述數(shù)據(jù)事件在所述當(dāng)前測試的初始更新之前被訪問,所述方法還包括確定所述數(shù)據(jù)事件是否指示狀態(tài);并且如果所述數(shù)據(jù)事件指示所述狀態(tài),則合成與所述被指示的狀態(tài)相對應(yīng)的狀態(tài)事件;根據(jù)所述被指示的狀態(tài)更新所述當(dāng)前測試狀態(tài);并且隨后,發(fā)布所述被合成的狀態(tài)事件并發(fā)布所述數(shù)據(jù)事件。
6.如權(quán)利要求1所述的方法,其中訪問所述測試數(shù)據(jù)還包括接收所述測試數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其中確定所述多個附加數(shù)據(jù)事件是否隱含狀態(tài)改變還包含確定所述附加數(shù)據(jù)事件是否包含屬性,其中所述屬性與不同于所述當(dāng)前測試狀態(tài)的測試狀態(tài)相一致。
8.一種用于合成測試數(shù)據(jù)流的狀態(tài)事件的系統(tǒng),包括,可操作用于訪問測試數(shù)據(jù)流的接口,所述測試數(shù)據(jù)包括1)更新當(dāng)前測試狀態(tài)的多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件中的一些狀態(tài)事件的多個數(shù)據(jù)事件;數(shù)據(jù)存儲器;和與所述接口和數(shù)據(jù)存儲器通信的處理器,其可操作用于,當(dāng)訪問所述多個數(shù)據(jù)事件中的一個數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否與所述當(dāng)前測試狀態(tài)一致;如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)一致,則發(fā)布所述數(shù)據(jù)事件;并且如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)不一致,則(A)使所述數(shù)據(jù)存儲裝置緩存多個附加數(shù)據(jù)事件;并且(B)如果所述多個附加數(shù)據(jù)事件隱含在訪問所述數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則(I)遵照所述被隱含的狀態(tài)改變,合成并發(fā)布所述應(yīng)當(dāng)被接收的狀態(tài)事件;(II)根據(jù)所述被隱含的狀態(tài)改變更新所述當(dāng)前測試狀態(tài);并且(III)隨后,發(fā)布所述數(shù)據(jù)事件。
9.如權(quán)利要求8所述的系統(tǒng),其中所述處理器還可操作用來執(zhí)行下列操作,如果所述多個附加數(shù)據(jù)事件未隱含狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則清除所述數(shù)據(jù)事件。
10.如權(quán)利要求8所述的系統(tǒng),其中所述處理器還可操作用來執(zhí)行下列操作,當(dāng)訪問所述多個狀態(tài)事件中的一個狀態(tài)事件時,A)根據(jù)所述狀態(tài)事件更新所述當(dāng)前測試狀態(tài);并且B)發(fā)布所述狀態(tài)事件。
11.如權(quán)利要求8所述的系統(tǒng),其中所述處理器可操作用于通過使所述數(shù)據(jù)事件和數(shù)據(jù)事件對于所述測試數(shù)據(jù)的使用者是可用的來發(fā)布數(shù)據(jù)事件和狀態(tài)事件。
12.如權(quán)利要求8所述的系統(tǒng),其中所述處理器可操作用于通過使所述接口輸出所述數(shù)據(jù)事件和數(shù)據(jù)事件來發(fā)布數(shù)據(jù)事件和狀態(tài)事件。
13.如權(quán)利要求8所述的系統(tǒng),其中在所述當(dāng)前測試狀態(tài)的初始更新之前,當(dāng)訪問所述數(shù)據(jù)事件時,所述處理器還可操作用于確定所述數(shù)據(jù)事件是否指示狀態(tài);并且如果所述數(shù)據(jù)事件指示所述狀態(tài),則合成與所述被指示的狀態(tài)相對應(yīng)的狀態(tài)事件;并且根據(jù)所述被指示的狀態(tài)更新所述當(dāng)前測試狀態(tài);并且隨后,發(fā)布所述被合成的狀態(tài)事件并發(fā)布所述數(shù)據(jù)事件。
14.如權(quán)利要求8所述的系統(tǒng),其中所述處理器通過進一步操作用于確定所述附加數(shù)據(jù)事件是否包含屬性來確定所述多個附加數(shù)據(jù)事件是否隱含狀態(tài)改變,其中所述屬性與不同于所述當(dāng)前測試狀態(tài)的測試狀態(tài)相一致。
15.如權(quán)利要求8所述的系統(tǒng),還包括至少一個測試器,用于生成與對多個被測試器件的測試相關(guān)聯(lián)的測試數(shù)據(jù),所述測試數(shù)據(jù)可由所述接口訪問。
16.如權(quán)利要求8所述的系統(tǒng),還包括測試數(shù)據(jù)存儲裝置,其包括先前生成的測試數(shù)據(jù),所述測試數(shù)據(jù)可作為所述測試數(shù)據(jù)流由所述接口訪問。17.在其上存儲指令序列的一個或多個機器可讀介質(zhì),當(dāng)所述指令序列被機器執(zhí)行時,所述機器執(zhí)行如下操作訪問測試數(shù)據(jù)流,所述測試數(shù)據(jù)包括1)更新當(dāng)前測試狀態(tài)的多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件中的一些狀態(tài)事件的多個數(shù)據(jù)事件;當(dāng)訪問所述多個數(shù)據(jù)事件中的一個數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否與所述當(dāng)前測試狀態(tài)一致;如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)一致,則發(fā)布所述數(shù)據(jù)事件;并且如果所述數(shù)據(jù)事件與所述當(dāng)前測試狀態(tài)不一致,則緩存多個附加數(shù)據(jù)事件;并且如果所述多個附加數(shù)據(jù)事件隱含在訪問所述數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則(A)遵照所述被隱含的狀態(tài)改變,合成并發(fā)布所述應(yīng)當(dāng)已被接收的狀態(tài)事件;(B)根據(jù)所述被隱含的狀態(tài)改變更新所述當(dāng)前測試狀態(tài);并且(C)隨后,發(fā)布所述數(shù)據(jù)事件。
18.如權(quán)利要求17所述的機器可讀介質(zhì),還包括用于執(zhí)行以下操作的指令,所述操作即如果所述多個附加數(shù)據(jù)事件未隱含狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則清除所述數(shù)據(jù)事件。
19.如權(quán)利要求17所述的機器可讀介質(zhì),還包括用于執(zhí)行以下操作的指令,所述操作即當(dāng)訪問所述多個狀態(tài)事件中的一個狀態(tài)事件時,根據(jù)所述狀態(tài)事件更新所述當(dāng)前測試狀態(tài);并且發(fā)布所述狀態(tài)事件。
20.如權(quán)利要求17所述的機器可讀介質(zhì),其中所述用于發(fā)布所述數(shù)據(jù)事件的指令還包括用于使所述數(shù)據(jù)事件對所述測試數(shù)據(jù)的使用者可用的指令。
21.如權(quán)利要求17所述的機器可讀介質(zhì),所述指令還包括用于執(zhí)行以下操作的指令當(dāng)在所述當(dāng)前測試的初始更新之前訪問所述數(shù)據(jù)事件時,確定所述數(shù)據(jù)事件是否指示狀態(tài);并且如果所述數(shù)據(jù)事件指示所述狀態(tài),則A)合成與所述被指示的狀態(tài)相對應(yīng)的狀態(tài)事件;B)根據(jù)所述被指示的狀態(tài)更新所述當(dāng)前測試狀態(tài);并且C)隨后,發(fā)布所述被合成的狀態(tài)事件并發(fā)布所述數(shù)據(jù)事件。
22.如權(quán)利要求17所述的機器可讀介質(zhì),其中所述用于確定所述多個附加數(shù)據(jù)事件是否隱含狀態(tài)改變的指令,還包括用于確定所述附加數(shù)據(jù)事件是否包含屬性的指令,其中所述屬性與不同于所述當(dāng)前測試狀態(tài)的測試狀態(tài)相一致。
全文摘要
本發(fā)明提供了用于合成測試數(shù)據(jù)流的狀態(tài)事件的系統(tǒng)、方法和設(shè)備。在一個實施例中,一種方法包括如下步驟A)訪問測試數(shù)據(jù)流,該測試數(shù)據(jù)流包括1)多個狀態(tài)事件和2)其間散布著所述多個狀態(tài)事件的多個數(shù)據(jù)事件;B)當(dāng)訪問一個數(shù)據(jù)事件時,確定該數(shù)據(jù)事件是否與當(dāng)前測試狀態(tài)相一致;C)如果不一致,則1)緩存多個附加數(shù)據(jù)事件,并且2)如果所述多個附加數(shù)據(jù)事件隱含在訪問數(shù)據(jù)事件之前狀態(tài)事件應(yīng)當(dāng)已被接收并且狀態(tài)改變應(yīng)當(dāng)已發(fā)生,則i)遵照所隱含的狀態(tài)改變,合成并發(fā)布應(yīng)當(dāng)已被接收的狀態(tài)事件,ii)更新當(dāng)前測試狀態(tài),iii)然后,發(fā)布數(shù)據(jù)事件。
文檔編號G06F11/22GK101075257SQ200710101689
公開日2007年11月21日 申請日期2007年4月5日 優(yōu)先權(quán)日2006年4月7日
發(fā)明者瑞德·F·哈郝, 羅伯特·S·庫爾曼 申請人:韋瑞吉(新加坡)私人有限公司