自動測試裝置及方法
2023-05-24 10:41:21 3
專利名稱:自動測試裝置及方法
技術領域:
本發明涉及自動測試技術,尤指一種低冗餘的自動測試裝置及方法。
背景技術:
測試是交付成功的優質的產品的保證,被測對象有硬體(如,晶片、單板等)也有軟體。以告警測試為例,具有告警功能的設備,能夠通過告警信息及時正確的反映出設備過去和當前的運行狀態,以便於用戶、維護工程師及時了解設備的運行狀態和採取適當的操作,確保設備的正常運行,因此具有完善、準確的告警檢測、診斷、隔離、保護、記錄、上報、查詢等功能是一個設備良好告警處理的特徵。這樣在測試中就必須採取有效的方法對設備的告警功能進行全面、深入和有效的測試,以充分驗證被測設備對告警功能穩定高質量的支持。
由於告警處理上的特徵,很便於用自動化測試的方法來實現,通過自動化測試的方法,能夠提高告警的測試的效率。
現有技術中的一種解決方案是從被測對象出發進行自動化測試,針對不同設備或設備中的某個單板單獨開發其告警功能的自動化測試用例,一個設備的某單板對應一個或多個測試用例,通過執行這個設備的對應的測試用例,完成相應的告警功能測試。請參照圖1所示,在320G設備中有一塊RWF(STM-64 Receiving Optical Wavelength Conversion Unit with FEC function,STM-64 FEC功能收端光波長轉換板)單板,其支持輸入光功率過高告警(IN_POWER_HIGH)的檢測和上報,在1600G設備中的LWF(STM-64Transmit-receive Line Wavelength Conversion Unit with FEC,STM-64標準FEC功能波長轉換單元)單板也支持這個告警。因為在自動化設計時是以設備和單板為被測對象,因此每種單板的輸入光功率過高告警測試是由每種單板的對應的輸入光功率過高告警自動化測試用例完成。
由圖1可知,每個單板對於相同的告警是由不同的自動化測試用例來完成測試,測試用例的數目將隨著設備和單板的增加而不斷增加,而實際上,不同單板的相同告警的測試步驟基本類似,新單板的測試腳本基本上是在已完成的其它單板的腳本上針對新單板進行極少量的修改,修改的工作量不大,例如輸入光功率過高告警對於RWC(STM-16 Receiving Optical WavelengthConversion Unit,STM-16接收端光波長轉換板)和RWF單板的不同之處在於告警的門限不一樣,對於RWF單板,是當輸入功率大於-3db時上報,而RWC則可能在-10db時就上報告警了,新寫的腳本只需根據單板的實際情況修改這些測試數據取值,其它部分都是不變的,因此測試用例之間存在很大部分冗餘。如果在完成測試用例後,當需要增加一些測試項,修改測試步驟,則所有類似的腳本都需要修改,大大加大了維護的工作量。
針對上述缺點,現有技術採用如下方案進行改進,設計時不再是從設置和單板的角度考慮,而是從告警這個功能角度去考慮,一個告警功能對應一個自動化測試用例,這樣多個單板的相同的告警功能就使用同一個測試用例來完成測試。請參照圖2所示,對於每種設備,則只需寫一個RLOS(ReceivingLoss Of Signal,接收線路側信號丟失)告警的自動化測試用例。而對於設備中各個單板的區別處理,則通過在測試腳本中定義一組變量來描述不同的單板的差異,測試人員在測試前先根據測試的單板不一樣,修改這些變量來完成,例如輸入光功率過高告警,只需在測試用例中定義一個表示告警門限的功率變量INPOWER_TH,測試人員在執行測試用例之前,需要通過手工修改該變量的取值,來適應TWF(STM-64 Transmitting Optical WavelengthConversion Unit,STM-64 FEC功能發端光波長轉換板)和TWC(STM-16Transmitting Optical Wavelength Conversion Unit,STM-16發端光波長轉換板)單板的測試。因為不同單板使用的是同一個測試用例,腳本的冗餘量降低了,也降低自動化測試用例的維護難度。
然而這個技術方案雖然減少了測試用例的冗餘,但是還是存在如下缺點首先測試用例僅僅通過的定義一些簡單的變量是不能完全避免不同被測對象之間的差異的,不同被測對象的命令差別,使其在不同產品進行移植時,需要做大量的修改。為了解決不同單板之間的差異性而定義的變量是定義測試腳本中的,就算有好的注釋,也必須要求測試用例的使用人員對腳本的體系結構和實現語言有一定的了解,知道測試腳本在哪裡定義了變量和怎麼修改這些變量。而測試用例在使用前必須針對不同設備和單板進行修改腳本中定義的各種變量後才能運行,大大增加使用的難度和降低了執行效率。
發明內容
本發明提供一種自動測試裝置及方法,解決測試用例冗餘的問題。
為解決上述問題,本發明一種自動測試裝置,包括至少一個用例層,用於針對測試功能而封裝的測試步驟,並指定所支持的被測對象和測試內容;至少一個設備接口層,用於被測對象對外提供控制和查詢設備信息的設備接口;支撐層,位於用例層和設備接口層之間,用於屏蔽被測對象的差異,對設備接口進行封裝,向用例層提供統一操作接口和統一數據訪問接口;根據用例層的調用,適配相應的測試數據及正確的被測對象設備接口層。
支撐層進一步包括公共層模塊,用於封裝與測試內容無關而涉及測試中公共處理接口;至少一個命令字模塊,用於根據測試內容封裝與設備接口層一致的命令行,並指定所支持的被測對象,且在被用例層中測試步驟調用時,經由公共層模塊,下發指令至被測對象相應的設備接口,並把測試結果返回給統一適配模塊;測試數據模塊,根據被測對象和測試內容為用例層執行測試時提供測試數據;統一適配模塊,用於針對用例層中測試步驟執行時的調用,適配相應的命令字模塊集合和測試數據,通過命令字模塊下發到被測對象的設備接口,並從命令字模塊中提取相應測試結果,返回給相應的用例層。
命令字模塊與設備接口層一致是指格式和參數一致。
所述被測對象的測試功能相同,共用一個命令字模塊。
統一適配模塊進一步包括至少一個統一操作適配模塊,用於獲取用例層中測試對象和測試內容相關信息,適配所有相應的命令字模塊;至少一個統一數據訪問模塊,用於獲取用例層中測試對象和測試內容相關信息,訪問測試數據模塊,適配相應的測試數據供測試步驟執行時使用。
公共層模塊進一步包括和被測對象進行通信的通信接口、對測試儀表統一訪問的訪問接口及對被測對象返回數據對有用信息提取的過濾接口。
相應地,本發明基於自動測試裝置的自動測試方法包括以下步驟(1)針對測試對象和測試內容,執行測試步驟;(2)根據測試步驟,統一匹配測試數據及相應設備接口調用;(3)根據測試步驟,返回相應測試用例的測試結果。
步驟(2)進一步包括如下步驟獲取用例層中測試對象和測試內容相關信息,適配所有相應的命令字模塊;適配相應的測試數據供測試步驟執行時使用;命令字模塊下發指令至被測對象相應的設備接口。
與現有技術相比,本發明具有以下優點1)降低自動化的成本。採用這種方法,可以很容易把已有的測試用例移植到其他產品;當設備的功能發生變化,而需要修改腳本時,一般只需修改支撐層的命令字模塊的腳本;當新增了設備和單板,需要增加其測試用例時,則只需在統一適配模塊中增加對新設備和單板的適配,以及在測試數據模塊中增加修改數據,就可以完成新增設備和單板的測試用例,不需要對測試用例進行修改,具有很好的重用性和可移植性,降低了自動化的成本。
2)降低自動化腳本的維護成本。當某個功能的測試流程或測試數據發生變化時,採用本發明技術方案只需要修改一個測試腳本,如果採用現有技術中的第一種方案則需要修改多個腳本。這樣大大降低了用例的維護的成本。
3)使測試用例更易於使用,提高測試執行效率。因為測試用例的執行的數據是通過測試數據模塊獲取的,測試數據和測試用例腳本是分離的,這樣測試數據容易修改,並且可以保存,下次測試時可以重用,如果採用現有方案二,則需要每次測試時都修改數據。同時因為統一封裝了測試需要的操作,不需要根據不同設備和單板修改測試用例,因此本發明技術方案,提高了用例的執行效率,也更容易使用。
圖1是現有技術一實施例示意圖。
圖2是現有技術另一實施例示意圖。
圖3是本發明自動測試裝置框圖。
具體實施例方式
本發明的實質是使測試用例的實現和設備及單板類型無關,構造一個低冗餘的能自動適配設備和單板變化的自動化測試腳本。
請參照圖3所示,本發明自動測試裝置包括至少一個用例層1、至少一個設備接口層2及位於用例層1和設備接口層2之間支撐層3。
用例層1用於針對測試功能而封裝的測試步驟,並指定所支持的被測對象和測試內容(例如,輸入光功率過高告警測試用例、RLOS告警測試用例、單板溫度越限告警)。而用例腳本是測試用例的腳本描述,是測試步驟和測試內容的具體體現。通過分層設計,測試用例的腳本不再和具體的被測對象的測試設備相關,所有和測試設備相關的處理都移到支撐層3處理,用例腳本變成了測試步驟的邏輯描述,在實現支撐層3後,用例腳本的開發將沒有多少難度,只需保證用例的描述全部使用設備操作命令字和數據訪問命令字即可(後文詳述),例如測試單板溫度越限告警,這個測試用例它的測試步驟如下步驟1查詢單板當前溫度;步驟2獲取單板溫度門限,並保存;步驟3修改單板的溫度門限,使門限低於當前溫度;步驟4查詢設備的告警,看是否有越限告警產生;步驟5恢復單板溫度告警門限;步驟6查詢設備的告警看告警是否結束。
所述設備接口層2用於被測對象(例如,1600G設備、320G設備等)對外提供控制和查詢設備信息的設備接口,這些設備接口的表現形式和設備相關,比較典型的是自定義的命令行、TL1(Transaction Language 1,交易處理語言)、網管使用Qx接口等。因為屬於現有技術,這裡不作詳細說明。
所述支撐層3用於屏蔽被測對象的差異,對設備接口進行封裝,向用例層1提供統一操作接口和統一數據訪問接口;根據用例層1的調用,適配相應的測試數據及正確的被測對象設備接口層2。其中,匹配時,可以根據指定的測試對象和測試內容的相關信息進行匹配。
所述支撐層3進一步包括公共層模塊31,用於封裝與測試內容無關而涉及測試中公共處理接口;至少一個命令字模塊32,是公共層模塊31的上層模塊,用於根據測試內容封裝與設備接口層一致的命令行,並指定所支持的被測對象,且在被用例層1中測試步驟調用時,經由公共層模塊31,下發指令至被測對象相應的設備接口(即設備接口層2),並把測試結果(按照定義好的格式)返回給統一適配模塊34;測試數據模塊33,根據被測對象和測試內容為用例層1執行測試時提供測試數據,本實施例以資料庫方式保存測試數據;統一適配模塊34,位於命令字模塊32的上層,用於針對用例層1中測試步驟執行時的調用,通過統一操作接口和統一數據訪問接口,適配相應的命令字模塊集合和測試數據,通過命令字模塊32下發到被測對象的設備接口,並從命令字模塊32中提取相應測試結果,返回給相應的測試層模塊1。
公共層模塊31在本發明中表現為可供命令字模塊32使用的基本公共函數,是整個自動測試的基礎,例如,和被測對象進行通信的通信接口(Send接口)、對測試儀表統一訪問的訪問接口及對被測對象返回數據對有用信息提取的過濾接口等。因為公共層模塊31一般是由測試工具提供,這裡不再細述。
命令字模塊32使用例腳本和具體的設備接口相隔離,設備接口就是上面所說的設備接口層2。各個命令字模塊32的實現就是使用腳本語言編寫一個函數,其參數及格式和設備接口的定義基本保持一致。例如,被測對象支持一個設置雷射器開關的命令行cfg-set-laser(設備接口),參數為光口、通道,則就可以把這個命令行封裝為一個命名為CfgSetLaser的命令字模塊,如果調用該CfgSetLaser的命令字模塊,則CfgSetLaser的命令字模塊就會通過調用下層的公共層模塊的提供的Send接口把cfg-set-laser命令下發到被測對象實際設備上,這樣可以避免上層腳本,特別是用例腳本,直接使用Send接口下發和設備相關的命令,而上層腳本使用這些經過封裝的命令字模塊編寫腳本,能大大降低用例因為設備提供的接口發生變化而導致的用例修改。
例如,原來的命令是使用cfg-set-laser命令的來進行開關雷射器,原來的命令可能沒有考慮到命令的可用性,使用1表示雷射器狀態為開,0表示雷射器狀態為關。後來用戶提意見說,數字很難記憶。於是把表示開光狀態的參數改為open,close,如果我們的測試用例是直接使用命令行接口編寫,則必須修改所有使用這個命令的腳本,但是如果使用命令字模塊封裝後,則只需對CfgSetLaser這個命令字模塊進行少量修改就可以繼續使用原來的用例了,減少了設備變化時對測試用例的影響。
採用命令字模塊還有一個好處就是可以減少移植的難度。例如,對於兩個被測對象設備之間相同的功能,一般儘量把其封裝成格式相同的命令字模塊,例如上面的CfgSetlaser,320G設備只有通道和開關狀態兩個參數,而1600G設備則有光口、通道、開關狀態三個參數,則可以統一定義為三個參數(如果參數的含義差異較大,也可以不統一),這樣可以即減少了命令字模塊的數目,又方便被測對象設備之間的測試用例移植。
被測對象1600G設備有自己的命令字模塊集合,320G也有自己的命令字模塊集合,這樣對於每個設備根據其支持的功能,會對應一個由不同命令字模塊組成的集合,為了防止函數重名和方便測試人員使用必須把其組織起來,方法有命名空間或者面向對象兩種。命名空間方式是對於不同的產品的命令字模塊使用不同命名空間進行封裝,防止命令字模塊命名重複。面向對象方式是把每個設備看作一個對象,它的每一個成員函數對應一個命令字模塊,採用這兩種方式各有各的優缺點,由於命名方式是現有技術且採用哪種方式對本方法影響不大,因此這裡不作詳細描述。
下面是一個使用TCL(Tool Command Language,工具命令語言)腳本語言編寫的命令字模塊32的例子,使用的面向對象的組織方法#!!============================#過程名CCfgDWDM::CfgSetLaser#程序包CMMLDWDM 1.0#功能類別 配置管理#功能描述 設置雷射器開關狀態#參數說明# bid單板板位# Port 光口號# Path 通道好# IsLaserSwitch雷射器狀態#返回值#作者XXX#生成日期2003-7-2 9:33:09#修改紀錄#!!================================::itcl::body CCfgDWDM::CfgSetLaser{Bid Port Path IsLaserSwitch}{#m_NeRef為設備對象的實例,設備對象是從公共層模塊的設備基類繼承
#Send接口就是公共層提供模塊的下發命令到設備的公共通信接口#ConvertKey是一個完成輸入參數和設備參數轉換的函數$m_NeRef Send″cfg-set-laser″$Bid $Port $Path [$m_NeRef ConvertKey laserswitch$IsLaserSwitch]set retObj[$m_NeRef cget-m_ObjResult]return[$retObj GetErrorCode]}統一適配模塊34進一步包括至少一個統一操作適配模塊,用於提供統一操作接口,通過傳入參數的和執行過程中使用命令字模塊32的命令動態獲取兩種方式,取得被測設備的信息,然後根據獲得的信息,把操作適配成相應的命令字模塊32的命令;至少一個統一數據訪問模塊,用於提供統一數據訪問接口,獲取用例層1中測試對象和測試內容相關信息,訪問測試數據模塊33,適配相應的測試數據供測試步驟執行時使用。
統一適配模塊34是從測試需求的角度上考慮,對某測試項測試過程中的某個和多個測試步驟的進行抽象得到的測試接口,其實現是一般是通過調用命令字模塊32或公共層模塊31完成。採用統一適配模塊34不需修改用例層就可以自動適配不同設備和單板的差異。
在設備的實際測試中會經常遇到就算是相同的功能對於不同單板和設備其實現方法也很不一樣的情況,這就是所說的設備差異性。還以測試單板溫度越限告警為例,這個測試用例測試步驟如下步驟1查詢單板當前溫度步驟2獲取單板溫度門限,並保存步驟3修改單板的溫度門限,使門限低於當前溫度步驟4查詢設備的告警,看是否有越限告警產生步驟5恢復單板溫度告警門限步驟6查詢設備的告警看告警是否結束對於步驟1查詢單板的當前溫度。對於TWC單板(STM-16 TransmittingOptical Wavelength Conversion Unit,STM-16發端光波長轉換板),由於是早期開發,沒有提供直接查詢單板環境溫度的命令行接口,只能通過查詢設備的性能來獲取單板的溫度。對於新開發的LWC單板(STM-16 Line WavelengthConversion Unit STM-16收發合一光波長轉換板),根據客戶的需求提供了查詢單板的環境溫度的命令。
如果不採用統一適配模塊34提供的統一操作接口,而是直接使用命令字模塊32編寫用例,則必須在用例腳本中對設備類型和測試單板類型(被測對象相關信息)進行判斷,如果是TWC單板時則調用查詢單板性能命令字模塊,如果是LWC單板則使用的查詢單板溫度命令字模塊。但是在用例腳本直接進行這些判斷適配的弊端很大,如果新增了一個被測對象(如單板),則必須在所有測試用例需要查詢單板溫度的測試步驟中增加對這個單板適配。
為了解決這個問題,可以通過定義一個名為GetBdtemp統一操作適配模塊來描述查詢單板當前溫度這個測試步驟,這個統一操作適配模塊負責完成對實際設備的適配處理,並返回當前的單板溫度,這樣測試用例腳本就不需要關注測試的設備是什麼設備了。當用例層1需要執行查詢單板溫度步驟時,調用GetBdtemp這個統一操作適配模塊,統一操作適配模塊首先是通過命令字模塊32的獲取設備的類型和單板類型(這些是所有設備都應該提供的設備接口)等信息,然後根據獲取的信息,判斷單板是TWC單板還是LWC單板,如果是TWC則調用查詢單板性能的命令字模塊32,如果是LWC則調用查詢單板溫度的命令字模塊32。下面就是統一操作適配模塊GetBdtemp的具體實現腳本。
#!!===============================#過程名CCfgDWDM::GetBdtmp#程序包CMMLDWDM 1.0#功能類別配置管理#功能描述查詢單板環境溫度#參數說明# Bid單板板位# Port光口# Path通道#返回值#作者XXX
#生成日期2003-7-2 17:48:08#!!===========================================::itcl::body CCfgDWDM::GetBdtmp{Bid Port Path}{#動態獲取測試單板類型set BdType[string toupper[CfgGetLogic $Bid]]switch $BdType{TWC-RWC-......
AS8D{#如果是支持查詢性能的單板通過,查詢單板性能命令字模塊獲取溫度return[CfgGetPerValue $Bid $Port 0 $Path envtmpcur]}default{#其它單板可以通過直接查詢單板溫度return[CfgGetBdtemp $Bid $Port $Path]}}}下面是使用統一操作適配模塊GetBdtemp描述的測試用例腳本#NE.Cfg是設備配置模塊對象的一個實例#NE.Alm是告警模塊對象的一個實例#步驟1查詢單板當前溫度set tmp[NE.Cfg GetBdtmp $Bid $Port $Path]#步驟2獲取單板溫度門限,並保存set oldth[NE.Cfg GetAlmth $Bid $Port $Path $ThType]set HighTh[lindex $oldth 0]set LowTh[lindex $oldth 1]#步驟3修改單板的溫度門限,使門限低於當前溫度set newHighTh[expr $tmp-10]set newLowTh[expr $tmp-20]#NE.Cfg SetAlmth $Bid $Port $Path $ThType $newHighTh $newLowTh#步驟4查詢設備的告警,看是否有越限告警產生NE.Alm AlmCheckCurdata*$Bid TEMP_ALARM MN**0x01 0xff 0xff**#步驟5恢復單板溫度告警門限,NE.Cfg SetAlmth $Bid $Port $Path $ThType $HighTh $newLowTh#步驟6查詢設備的告警看告警是否結束NE.Alm AlmCheckCurdata-mode nor-*$Bid TEMP_ALARM MN***0xff 0xff**從上面的腳本可以看出,所有測試步驟都使用定義好的統一操作適配模塊和命令字模塊描述,用例層就變成測試步驟的邏輯描述,不會因為測試設備和單板的不同而有較大差別。由於自動適配功能,因此執行前也就不需要針對不同設備和單板修改用例層的測試用例腳本。
統一數據訪問模塊,用於提供統一數據訪問接口,避免在用例層1直接定義數據。一個完整的測試用例除了測試步驟還需要測試數據,只有測試步驟的測試用例是無法執行的,測試數據是用例執行的關鍵,將影響測試的執行結果。統一數據訪問模塊數目是由測試用例的測試數據需求決定,把測試用例中用到的所有和設備相關的數據都通過調用這些統一數據訪問模塊來獲取。統一數據訪問模塊通過讀取測試數據模塊獲取測試用例需要的數據,然後返回給測試用例,避免在測試用例腳本中直接定義測試數據。這樣的好處是使測試數據可以重用,減少了測試人員在測試前修改測試數據的工作量,降低了測試用例的使用難度。
例如對於RWC單板,RLOS告警只有1光口可以產生,而對於LWF單板(STM-64 Transmit-receive Line Wavelength Conversion Unit with FEC,STM-64標準FEC功能波長轉換單元),1、2兩個光口都會產生該告警,在現有技術方案二中,是通過在腳本中定義一個Ports的變量表示需要測試的光口,在用例執行前,需要測試人員根據測試的是RWC還是LWF單板來給這個變量修改賦值。下面是具體的腳本1)本方案的腳本#存在硬編碼的測試數據#獲取單板支持RLOS告警的光口set Ports[NE GetPortList $BdType R_LOS]#遍歷測試單板支持RLOS告警的各光口進行測試foreach Port $Ports{#R_LOS告警測試的具體測試......
}
2)現有技術方案二中的腳本#這個例子中的Ports變量通過編碼賦值的,如果測試的單板只支持1光口,則#需要用例執行前把Ports的值修改為{1}set Ports{12}#遍歷測試單板支持RLOS告警的各光口進行測試foreach Port $Ports{#R_LOS告警測試的具體測試......
}從上面的例子可以看出,通過名為GetSupportPort的統一數據訪問模塊來獲取單板支持的光口,統一數據訪問模塊根據輸入的板類型和告警ID,在測試執行過程中,和統一操作適配模塊類似,首先動態獲取用例層的執行環境,如測試的單板類型,然後返回該單板支持該告警的光口,提供給用例層1執行使用。因為這些測試數據在用例調試時就已經完成,並且是保存在資料庫裡的,因此可以重複使用。這樣避免測試人員在測試前需要修改大量的執行數據的問題統一數據訪問模塊的具體實現和資料庫的存儲方式相關。不是本發明關注的重點,因此這裡不再作具體描述。
相應地自動測試方法包括以下步驟(1)針對測試對象和測試內容,執行測試步驟;(2)根據測試步驟,統一匹配測試數據及相應設備接口調用;(3)根據測試步驟,返回相應測試用例的測試結果。
步驟(2)進一步包括如下步驟獲取用例層中測試對象和測試內容相關信息,適配所有相應的命令字模塊;適配相應的測試數據供測試步驟執行時使用;命令字模塊下發指令至被測對象相應的設備接口。
本發明技術方案也可以適用於也存在方案描述的問題的其他方面的測試,例如設備的性能測試,設備的配置接口測試等的自動化測試。
綜上所述,本發明技術方案具有以下優點1)降低自動化的成本。採用這種方法,可以很容易把已有的測試用例移植到其他產品;當設備的功能發生變化,而需要修改腳本時,一般只需修改支撐層的命令字模塊的腳本;當新增了設備和單板,需要增加其測試用例時,則只需在統一適配模塊中增加對新設備和單板的適配,以及在測試數據模塊中增加修改數據,就可以完成新增設備和單板的測試用例,不需要對測試用例進行修改,具有很好的重用性和可移植性,降低了自動化的成本。
2)降低自動化腳本的維護成本。當某個功能的測試流程或測試數據發生變化時,採用本發明技術方案只需要修改一個測試腳本,如果採用現有技術中的第一種方案則需要修改多個腳本。這樣大大降低了用例的維護的成本。
3)使測試用例更易於使用,提高測試執行效率。因為測試用例的執行的數據是通過測試數據模塊獲取的,測試數據和測試用例腳本是分離的,這樣測試數據容易修改,並且可以保存,下次測試時可以重用,如果採用現有方案二,則需要每次測試時都修改數據。同時因為統一封裝了測試需要的操作,不需要根據不同設備和單板修改測試用例,因此本發明技術方案,提高了用例的執行效率,也更容易使用。
權利要求
1.一種自動測試裝置,其特徵在於,包括至少一個用例層,用於針對測試功能而封裝的測試步驟,並指定所支持的被測對象和測試內容;至少一個設備接口層,用於被測對象對外提供控制和查詢設備信息的設備接口;支撐層,位於用例層和設備接口層之間,用於屏蔽被測對象的差異,對設備接口進行封裝,向用例層提供統一操作接口和統一數據訪問接口;根據用例層的調用,適配相應的測試數據及正確的被測對象設備接口層。
2.如權利要求1所述的自動測試裝置,其特徵在於,支撐層進一步包括公共層模塊,用於封裝與測試內容無關而涉及測試中公共處理接口;至少一個命令字模塊,用於根據測試內容封裝與設備接口層一致的命令行,並指定所支持的被測對象,且在被用例層中測試步驟調用時,經由公共層模塊,下發指令至被測對象相應的設備接口,並把測試結果返回給統一適配模塊;測試數據模塊,根據被測對象和測試內容為用例層執行測試時提供測試數據;統一適配模塊,用於針對用例層中測試步驟執行時的調用,適配相應的命令字模塊集合和測試數據,通過命令字模塊下發到被測對象的設備接口,並從命令字模塊中提取相應測試結果,返回給相應的用例層。
3.如權利要求2所述的自動測試裝置,其特徵在於,命令字模塊與設備接口層一致是指格式和參數一致。
4.如權利要求2所述的自動測試裝置,其特徵在於,所述被測對象的測試功能相同,共用一個命令字模塊。
5.如權利要求2所述的自動測試裝置,其特徵在於,統一適配模塊進一步包括至少一個統一操作適配模塊,用於獲取用例層中測試對象和測試內容相關信息,適配所有相應的命令字模塊;至少一個統一數據訪問模塊,用於獲取用例層中測試對象和測試內容相關信息,訪問測試數據模塊,適配相應的測試數據供測試步驟執行時使用。
6.如權利要求1所述的自動測試裝置,其特徵在於,公共層模塊進一步包括和被測對象進行通信的通信接口、對測試儀表統一訪問的訪問接口及對被測對象返回數據對有用信息提取的過濾接口。
7.基於權利要求1自動測試裝置的自動測試方法,其特徵在於,包括以下步驟(1)針對測試對象和測試內容,執行測試步驟;(2)根據測試步驟,統一匹配測試數據及相應設備接口調用;(3)根據測試步驟,返回相應測試用例的測試結果。
8.如權利要求8所述的自動測試方法,其特徵在於,步驟(2)進一步包括如下步驟獲取用例層中測試對象和測試內容相關信息,適配所有相應的命令字模塊;適配相應的測試數據供測試步驟執行時使用;命令字模塊下發指令至被測對象相應的設備接口。
全文摘要
本發明公開一種自動測試裝置及方法,其中所述自動測試裝置包括至少一個用例層,用於針對測試功能而封裝的測試步驟,並指定所支持的被測對象和測試內容;至少一個設備接口層,用於被測對象對外提供控制和查詢設備信息的設備接口;支撐層,位於用例層和設備接口層之間,用於屏蔽被測對象的差異,對設備接口進行封裝,向用例層提供統一操作接口和統一數據訪問接口;根據用例層的調用,適配相應的測試數據及正確的被測對象設備接口層。所述自動測試方法包括以下步驟針對測試對象和測試內容,執行測試步驟;根據測試步驟,統一匹配測試數據及相應設備接口調用;根據測試步驟,返回相應測試用例的測試結果。
文檔編號G06F11/277GK1746694SQ20041007459
公開日2006年3月15日 申請日期2004年9月7日 優先權日2004年9月7日
發明者李剛 申請人:華為技術有限公司