新四季網

一種自動生成單元測試例的方法和裝置的製作方法

2023-10-09 16:34:14 2

專利名稱:一種自動生成單元測試例的方法和裝置的製作方法
技術領域:
本發明涉及單元測試技術,特別是涉及一種自動生成單元測試例的方法和裝置。
背景技術:
在軟體設計的過程中,為了保證軟體的質量和可靠性,通常需要進行軟體測試。軟體測試包括單元測試、集成測試、系統測試和驗收測試。其中,單元測試是對源程序代碼中每一個程序單元進行測試。而需求覆蓋和代碼覆蓋等則是對測試本身進行評估的重要指標。其中,需求覆蓋是測試程序本身需要達到的功能是否可以達到,代碼覆蓋則是測試源程序代碼是否都被運行過。
在單元測試過程中,每一個程序單元都必須獨立進行測試,需要事先確定用於測試的單元測試例。這裡所述的單元測試例指運行某個程序單元時,該程序單元所必需的值,比如函數的入口參數值、函數的出口參數值、全局變量值等。
實際應用中,如果程序本身的算法或功能比較複雜,一個測試例可能無法使程序的全部功能在一次測試過程中都被測試到,也可能無法使所有的源程序代碼在一次測試過程中都被運行到。在這種情況下,通常需要確定大量的測試例,並通過大量的測試來滿足需求覆蓋和代碼覆蓋的要求。
在上述的評估要求下,如何確定單元測試例就是單元測試的一個關鍵因素了。現有技術中,單元測試例通常採用人工的方式實現。也就是說,技術人員需要了解源程序代碼,並根據源程序代碼的內容來確定單元測試例。在這種方式下,技術人員需要花費大量的時間才能確定單元測試例,大大增加了技術人員的工作負擔。另外,人工方式也容易造成錯誤或不合理的單元測試例,難以保證後續單元測試的順利完成,也難以保證需求覆蓋和代碼覆蓋的要求。

發明內容
本發明的主要目的是提供一種自動生成單元測試例的方法和裝置,可以大大減少技術人員的工作量,節約人工資源。
為了達到上述目的,本發明提出的技術方案為一種自動生成單元測試例的方法,預先設置程序單元的詳細設計文檔,該方法為讀取詳細設計文檔中接口規格部分,並從接口規格部分解析出所有針對程序單元參數的參數值,然後將各參數的參數值組合生成單元測試例。
上述方案中,所述讀取詳細設計文檔中接口規格部分並解析出所有參數的參數值的方法為讀取詳細設計文檔內容,識別接口規格的開始標誌;從接口規格的開始標誌開始提取針對程序單元的所有參數的參數值,直至接口規格的結束標誌。
上述方案中,所述針對程序單元參數的參數值為正向條件參數值,或者為正向條件參數值和負向條件參數值。
上述方案中,如果針對程序單元參數的參數值為正向條件參數值,所述單元測試例為正向單元測試例,則將各參數的參數值組合生成正向單元測試例的方法為採用笛卡兒積方法將所有參數的正向條件參數值組合生成正向單元測試例。
上述方案中,如果針對程序單元的參數的參數值為正向條件參數值和負向條件參數值,所述單元測試例為正向單元測試例和負向單元測試例,則將各參數值組合生成正向單元測試例和負向單元測試例的方法為採用笛卡兒積方法將所有參數的正向條件參數值組合生成正向單元測試例;再將負向條件參數值替換正向單元測試例中對應的正向條件參數值,生成負向單元測試例。
本發明還提出一種技術方案一種自動生成單元測試例的裝置,該裝置包括文檔存儲單元,用於保存針對程序單元的詳細設計文檔;解析單元,用於從詳細設計文檔中解析出所有針對程序單元的參數的參數值;組合單元,用於將解析出的各參數的參數值組合生成單元測試例。
上述方案中,所述解析單元包括解析執行單元,用於從詳細設計文檔中識別接口規格的開始標誌,提取接口規格的開始標誌和結束標誌之間的所有參數的參數值,將提取出的參數值保存到參數存儲單元;參數存儲單元,用於保存由識別單元提取出的參數值。
上述方案中,所述參數存儲單元存儲有正向條件參數值和負向條件參數值,所述組合單元生成的單元測試例為採用笛卡兒積方法生成的正向單元測試例,該裝置進一步包括參數替換單元,用於將負向條件參數值替換由組合單元生成的正向單元測試例中對應的正向條件參數值,生成負向單元測試例。
綜上所述,本發明提出一種自動生成單元測試例的方法和裝置,通過讀取詳細設計文檔中接口規格部分,並從接口規格部分解析出所有針對程序單元的參數的參數值,然後將各參數的參數值組合生成單元測試例,不但可以達到生成單元測試例的目的,而且大大減少了技術人員的工作負擔,節約了人工資源。


圖1是本發明自動生成單元測試例方法的流程圖;圖2是應用本發明方案的方法實施例的流程圖;
圖3是應用本發明方案的裝置實施例的基本結構示意圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖及具體實施例對本發明作進一步地詳細描述。
圖1為本發明的流程圖。如圖1所示,本發明實現自動生成單元測試例的方法包括以下步驟步驟101讀取預先設置的詳細設計文檔中接口規格部分;本發明中,所述詳細設計是軟體設計過程中軟體接口級別的分解設計,可以詳細地表示程序單元的各個參數,以及每一個參數的取值情況,即接口規格。這裡所述的程序單元可以為函數,而程序單元參數的參數值則為運行該函數所需要的參數值,可以包括函數的入口參數值、函數的出口參數值等。實際應用中,不同的函數可以有不同的參數。比如,某函數涉及某全局變量,則針對該函數的詳細設計還應該包括該全局變量值。也就是說,在測試涉及全局變量的函數時,不僅需要該函數的入口參數值和出口參數值等,還需要所涉及的全局變量值。又比如,某函數A中需要調用另一個函數B,則針對函數A的詳細設計還應該包括函數B的返回值。也就是說,在測試函數A時,不僅需要函數A的入口參數值和出口參數值,還需要被調用函數B的返回值。
為了滿足需求覆蓋和代碼覆蓋等方面的測試要求,詳細設計中參數的取值可以採用邊界分析、等價類劃分、路徑分析等方法確定。比如,某函數的入口參數為X,該函數包括關於參數X的條件語句「IF 0<=X<=9......;ELSE......」,那麼,可以先將X根據取值範圍進行分類,分為X<0,X=0,0<X<9,X=9,X>9共5類,再從每一類任意取值作為該函數入口參數值。在此例中,可以從X<0這一類中取值-3,從X=0這一類中取值0,從0<X<9這一類中取值5,從X=9這一類中取值9,從X>9這一類中取值20。當然,實際應用中也可以不這樣取值,而從每一類取其它等價的值。比如,從0<X<9這一類中取值6,其它類的取值與上述情況相同。這樣,確定每一類的取值後,就可以將所有取值的集合,即{-3,0,5,9,20}或者{-4、0,6,9,12}作為參數X的參數值。在單元測試過程中,當X取{0,5,9}或{0,6,9}的任何一個值時,函數就執行「IF」語句所對應的分支;當X取{-3,20}或{-4,12}中任何一個值時,函數則執行「ELSE」語句所對應的分支。
在設置詳細設計文檔的過程中,應該將哪些值作為參數值可以由設計人員自行確定。比如,在上述關於入口參數X的例子中,如果X=4是實際應用中一個特殊的值,還可以將4也作為該函數入口參數值。也就是說,可以設置該函數的入口參數X的參數值為{-3,0,4,5,9,20}或者{-4、0,4,6,9,12}等。
另外,程序單元參數的參數值可以分為正向條件參數值和負向條件參數值。這裡所述正向條件參數值可以使程序正常運行,以實現程序自身的功能;而負向條件參數值則是一個錯誤的參數值,不能實現程序自身的功能。但為了保證軟體的健壯性等因素,還可以將負向條件參數值作為程序單元參數的值對程序單元進行測試,以測試軟體在執行錯誤參數值是否出現死機等故障。
當然,如何確定參數值應該由具體情況決定,只要儘量滿足需求覆蓋和代碼覆蓋即可。
步驟102從接口規格部分解析出所有針對程序單元的參數的參數值;本步驟中,接口規格中所有參數的參數值都將解析出。比如程序單元入口參數X的參數值為{-3,0,5,9,20},本步驟將從接口規格部分解析出{-3,0,5,9,20}。
步驟103將解析出的各參數的參數值組合生成單元測試例。
實際應用中,程序單元通常包括一個以上參數,每一個參數可能有一個或一個以上參數值。在這種情況下,為了可以生成大量的正確的單元測試例,可以將所有參數的參數值進行組合,以生成單元測試例。比如,某函數包括入口參數X和入口參數Y,入口參數X的參數值為{2,3,4},入口參數Y的參數值為{1,4}。將入口參數X的第一個參數值和Y的第一個參數值進行組合,可以獲得{2,1},即測試該函數的一個單元測試例。也就是說,在測試該函數時,可以將該函數的入口參數X的值設置為2,將入口參數Y的值設置為1,以完成單元測試。
為了更好地說明本發明方案,下面用一個較佳實施例進行詳細描述。
本實施例中,為了正確地解析出詳細設計文檔中接口規格部分,可以在詳細設計文檔中設置接口規格的開始標誌和結束標誌。接口規格開始標誌和結束標誌之間為程序單元所有參數,以及每一個參數的參數值。
本實施例中,假設程序單元為某函數,該函數的函數名為DRV_Transmit,包括3個入口參數,即X1,X2,X3;1個全局變量,即RX;2個可以調用的函數,其函數名分別為drv_transmit_send和drv_statistic;1個出口參數,即Y1;1個DRV_Transmit函數自身的返回值。
本實施例中,針對程序單元的詳細設計文檔格式可以為@@PROC DRV_TransmitDRV_Transmit input X1{-2,5,16,68,104}{65535}DRV_Transmit input X2{0,3,8}{65535,10}DRV_Transmit input X3{1,8}{0,65535}DRV_Transmit update RX{46,5}DRV_Transmit dependent drv_transmit_send{VOS_OK}{VOS_ERR}DRV_Transmit dependent drv_statistic{VOS_OK}{VOS_ERR}DRV_Transmit output Y1{25,34,76}{-65535}DRV_Transmit result{VOS_OK}{VOS_INVALID_PARAMETER,VOS_ERR}DRV_Transmit end其中,「@@PROC」表示接口規格的開始標誌,「end」表示接口規格的結束標誌;「DRV_Transmit」表示此詳細設計所針對的程序單元,即函數名;「input」表示函數的入口參數,其後第一部分為入口參數的參數名,第二部分為2個參數列表,分別為正向條件參數值和負向條件參數值;另外,「updata」、「output」、「dependent」、「result」分別表示全局變量、出口參數、調用函數和函數自身返回結果等,其表示方式與「input」的表示方式相似,此處不再贅述。
圖2是本實施例的流程圖。如圖2所示,本實施例可以包括以下步驟步驟201讀取詳細設計文檔內容,識別接口規格的開始標誌;步驟202從接口規格的開始標誌開始提取針對程序單元的所有參數的參數值,直至接口規格的結束標誌;執行完步驟201和步驟202後,可以完成讀取詳細設計文檔的接口規格部分並解析出參數值的步驟,從詳細設計文檔中讀取所有針對程序單元的參數,每一個參數包括正向條件參數值和負向條件參數值。
步驟203採用笛卡兒積方法將所有正向條件參數值組合生成正向單元測試例;本步驟中,可以調用實現笛卡兒積的函數,將所有正向條件參數值輸入實現笛卡兒積的函數,獲得經過組合的正向單元測試例。所述笛卡兒積方法為一種將集合進行組合的方法,具體實現有很多方法,比如可以將輸入的各參數的參數值保存在不同數組中,同一個參數的參數值保存在同一個數組中,並將各數組的第一個數組單元指定為當前組合單元;將各數組當前組合單元的值組合為一個集合,然後將其中一個數組的當前組合單元更改為下一個數組單元,並重新將各數組當前組合單元的值組合為一個集合,依此類推,直到組合完所有的數組單元。
在本實施例中,由於入口參數X1正向條件參數值的集合為{-2,5,16,68,104},入口參數X2正向條件參數值的集合為{0,3,8},入口參數X3正向條件參數值的集合為{1,8},全局變量RX正向條件參數值的集合為{46,5},函數drv_transmit_send正向條件參數值的集合為{VOS_OK},函數drv_statistic正向條件參數值的集合為{VOS_OK},出口參數Y1正向條件參數值的集合為{25,34,76},函數DRV_Transmit自身返回的正向條件參數值的集合為{VOS_OK}。將上述所有參數的參數值用不同的數組保存起來,將各數組的第一個數組單元的值組合起來,可以獲得一個正向單元測試例,即{-2,0,1,46,VOS_OK,VOS_OK,25,VOS_OK},其它正向單元測試例依次類推,此處不再一一列舉。
這裡,由於程序單元包括8個參數,每個參數的正向條件參數值個數分別為5,3,2,2,1,1,3,1,利用笛卡兒積方法可以獲得5×3×2×2×1×1×3×1=180個正向單元測試例。
當然,實際應用中,也可以不用笛卡兒積的方法進行組合,而採用其它的組合方式,只要可以將參數的參數值組合為一個單元測試例即可。比如參數可能包括多個同類的參數值,就可以在詳細設計過程中先對參數值進行分類,並將同一類參數值進行標記。當執行組合參數值的步驟時,可以先根據參數值的標記判斷是否存在同一類的參數值,如果存在,就從同一類的參數值中任意選取一個參與組合。以入口參數X1為例,如果入口參數X1的正向條件參數值的集合為{-2,5,16,68,104},但5,16,68為同一類取值。可以先在詳細設計過程中,為5,16,68這一類參數值設置一個標記。此後,當執行組合參數值步驟時,就可以從5,16,68中任意選取一個參與組合,忽略其它兩個取值。
步驟204用負向條件參數值替換正向單元測試例中對應的正向條件參數值,生成負向單元測試例。
本步驟中,生成負向單元測試例無需進行笛卡兒積組合,只要將已經生成的正向單元測試例中的一個或一個以上正向條件參數值替換為對應的負向條件參數值即可。比如生成的正向單元測試例為{-2,0,1,46,VOS_OK,VOS_OK,25,VOS_OK},其中第一個參數值為入口參數X1的正向條件參數值。如果將第一個參數值替換為入口參數X1的負向條件參數值65535,就可以生成一個負向單元測試例,即{65535,0,1,46,VOS_OK,VOS_OK,25,VOS_OK}。
實際應用中,如果某參數的負向條件參數值有多個,可以從中任意選擇一個替換正向單元測試例中對應的正向條件參數值即可。當然,如果程序單元無需利用負向單元測試例進行測試,就可以不必生成負向單元測試例,即省略步驟204。
應用本實施例方案後,可以利用詳細設計自動生成大量的針對程序單元的正向單元測試例和負向單元測試,並可以在後續的單元測試過程中直接利用所生成的單元測試例,大大減少了技術人員的工作負擔。
針對上述方法,本發明還提出一種自動生成單元測試例的裝置。圖3是本發明裝置的基本結構示意圖。如圖3所示,該裝置包括文檔存儲單元301,用於保存針對程序單元的詳細設計文檔;解析單元302,用於從詳細設計文檔中解析出所有針對程序單元的參數的參數值;組合單元303,用於將解析出的各參數的參數值組合生成單元測試例。
其中,所述解析單元302可以包括解析執行單元3021,用於從詳細設計文檔中識別接口規格的開始標誌,提取接口規格的開始標誌和結束標誌之間的所有參數的參數值,將提取出的參數值保存到參數存儲單元3022;參數存儲單元3022,用於保存由識別單元提取出的參數值。
當需要生成單元測試例時,解析執行單元3021可以從詳細設計文檔中識別接口規格的開始標誌,提取接口規格的開始標誌和結束標誌之間的所有參數的參數值,將提取出的參數值保存到參數存儲單元3022中;組合單元303再將參數存儲單元3022中的參數進行組合,生成單元測試例。
上述文檔存儲單元301中可以僅保存正向條件參數值,組合單元303可以採用笛卡兒積方法將提取出的正向條件參數值組合生成正向單元測試例。實際應用中,如果文檔存儲單元301中還有負向條件參數值,解析執行單元3021就可以提取負向條件參數值並保存在參數存儲單元3022中。當需要生成負向單元測試例時,該裝置還可以進一步包括參數替換單元304,用負向條件參數值替換由組合單元303生成的正向單元測試例中對應的正向條件參數值,生成負向單元測試例。
應用本發明方案,由於可以讀取詳細設計文檔中接口規格部分,並從接口規格部分解析出所有針對程序單元的參數值,然後將各參數值組合生成單元測試例,不但可以達到生成單元測試例的目的,還可以大大減少技術人員的工作負擔。另外,本發明方案是利用詳細設計文檔,而沒有直接分析源程序代碼,生成單元測試例的算法複雜度低,有利於進一步推廣。
綜上所述,以上僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種自動生成單元測試例的方法,其特徵在於,預先設置程序單元的詳細設計文檔,該方法為讀取詳細設計文檔中接口規格部分,並從接口規格部分解析出所有針對程序單元的參數的參數值,然後將各參數的參數值組合生成單元測試例。
2.根據權利要求1所述的方法,其特徵在於,所述讀取詳細設計文檔中接口規格部分並解析出所有參數的參數值方法為讀取詳細設計文檔內容,識別接口規格的開始標誌;從接口規格的開始標誌開始提取針對程序單元的所有參數的參數值,直至接口規格的結束標誌。
3.根據權利要求1或2所述的方法,其特徵在於,所述針對程序單元的參數的參數值為正向條件參數值,或者為正向條件參數值和負向條件參數值。
4.根據權利要求3所述的方法,其特徵在於,如果針對程序單元的參數的參數值為正向條件參數值,所述單元測試例為正向單元測試例,則將各參數的參數值組合生成正向單元測試例的方法為採用笛卡兒積方法將所有參數的正向條件參數值組合生成正向單元測試例。
5.根據權利要求3所述的方法,其特徵在於,如果針對程序單元的參數的參數值為正向條件參數值和負向條件參數值,所述單元測試例為正向單元測試例和負向單元測試例,則將各參數的參數值組合生成正向單元測試例和負向單元測試例的方法為採用笛卡兒積方法將所有參數的正向條件參數值組合生成正向單元測試例;再將負向條件參數值替換正向單元測試例中對應的正向條件參數值,生成負向單元測試例。
6.一種自動生成單元測試例的裝置,其特徵在於,該裝置包括文檔存儲單元,用於保存針對程序單元的詳細設計文檔;解析單元,用於從詳細設計文檔中解析出所有針對程序單元的參數的參數值;組合單元,用於將解析出的各參數的參數值組合生成單元測試例。
7.根據權利要求6所述的裝置,其特徵在於,所述解析單元包括解析執行單元,用於從詳細設計文檔中識別接口規格的開始標誌,提取接口規格的開始標誌和結束標誌之間的所有參數的參數值,將提取出的參數值保存到參數存儲單元;參數存儲單元,用於保存由識別單元提取出的參數值。
8.根據權利要求7所述的裝置,其特徵在於,所述參數存儲單元存儲有正向條件參數值和負向條件參數值,所述組合單元生成的單元測試例為採用笛卡兒積方法生成的正向單元測試例,該裝置進一步包括參數替換單元,用於將負向條件參數值替換由組合單元生成的正向單元測試例中對應的正向條件參數值,生成負向單元測試例。
全文摘要
本發明提出一種自動生成單元測試例的方法和裝置,具體為預先設置程序單元的詳細設計文檔,讀取詳細設計文檔中接口規格部分,並從接口規格部分解析出所有針對程序單元的參數的參數值,然後將各參數的參數值組合生成單元測試例。應用本發明方案,可以利用詳細設計自動生成針對程序單元的單元測試例,大大減少了技術人員的工作負擔,節約人工資源。
文檔編號G06F9/44GK101055522SQ20071009989
公開日2007年10月17日 申請日期2007年5月31日 優先權日2007年5月31日
發明者辛軍 申請人:杭州華三通信技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀