韋卉 呂金華
【摘要】本文主要探討一類嵌入式終端設備的自動化測試技術。鑒于嵌入式軟件依賴硬件運行的特殊性,本文提出一種自動化測試的模型——U模型,本模型提供了嵌入式系統(tǒng)自動控制和自動測試的一種解決方案。
【關鍵詞】嵌入式系統(tǒng);自動化測試;U模型
1.自動化測試概況
1.1 趨勢
自動化測試實際上是軟件測試的一種,以往的測試工作都是通過測試工程師手工執(zhí)行測試用例完成的,而自動化測試則是通過執(zhí)行測試程序自行完成并自動檢驗測試結果。隨著當前測試技術的發(fā)展,自動化測試越來越多的出現(xiàn)在人們的視野里,越來越多的吸引更多的科技人員的目光。由于自動化測試可以大大節(jié)省測試勞動力,節(jié)約測試時間,大量縮短項目周期,為公司節(jié)約很多研發(fā)成本,對企業(yè)經營帶來極大的效益。因此,越來越多的企業(yè)開始重視和發(fā)展自己的自動化測試技術。
1.2 現(xiàn)狀
我們工作中接觸的嵌入式終端為無線通信領域終端,具備語音通信、數(shù)據通信等業(yè)務功能。該種設備對于極限距離的業(yè)務測試要求非常嚴苛,需要經過成百上千甚至成千上萬次的測試和長時間(往往是連續(xù)七天以上)連續(xù)不間斷的運行,來驗證產品的可靠性和穩(wěn)定性,如果僅依靠人工操作,將會非常消耗人力,而且?guī)缀跏遣豢赡芡瓿傻娜蝿?。因此探求一種自動化測試方法迫在眉睫。我們所研發(fā)的通信設備屬于嵌入式終端設備,對于嵌入式系統(tǒng)的自動化測試,在業(yè)界也是非常少見。在此,我們提出一種自動化測試模型——U模型,來實現(xiàn)嵌入式終端設備的自動化測試。
2.自動化測試模型
2.1 U模型提出
圖1 U模型
根據我們的研究,提出了一種命名為U模型的自動化測試技術。如圖1所示,左邊框圖屬于控制系統(tǒng),控制PC為一臺工作中使用的個人電腦,上面安裝著windows操作系統(tǒng)。處于頂層的業(yè)務測試程序是根據測試被測系統(tǒng)功能、性能、各種質量屬性等測試用例編寫的測試腳本。處于第二層的控制臺軟件自行開發(fā)編寫的軟件。右邊框圖屬于被測系統(tǒng),處于頂層是被測業(yè)務是我們將要測試軟件特性,處于第二層的是被測軟件的應用程序,處于第三層的是被測系統(tǒng)所使用的操作系統(tǒng)。再往底層一點則是控制系統(tǒng)和被測系統(tǒng)都支持的通信接口驅動和通信硬件接口。
2.2 U模型原理
接下來我們來介紹一下U模型的工作原理:
(1)業(yè)務測試程序負責下發(fā)測試指令以及檢驗被測系統(tǒng)的表現(xiàn)是否符合預期,相當于軟件測試中的測試用例的一樣。
(2)控制臺軟件是一款在PC上自行開發(fā)的軟件,它包括對業(yè)務測試程序的解釋執(zhí)行功能、腳本工程的管理功能和腳本編輯等功能。另外,還負責把測試程序下發(fā)的指令通過調用成windows操作系統(tǒng)API的方式,封裝成底層通信接口能使用的數(shù)據幀。
(3)Windows操作系統(tǒng),控制臺軟件運行在其之上,使用它提供的各種操作系統(tǒng)服務,特別是I/O管理服務。
(4)通信接口驅動實現(xiàn)通信接口硬件初始化、數(shù)據存儲、數(shù)據發(fā)送、數(shù)據傳輸和數(shù)據接收等。
(5)通信硬件接口是PC機上的通信接口支持類型,一般為串口、網口、USB口等。被測系統(tǒng)上也需要有同樣的接口類型。
(6)在被測系統(tǒng)中,各層軟件的作用其實與PC控制系統(tǒng)上差不多,在此就不再贅述。值得注意的是,被測系統(tǒng)的業(yè)務應用處理程序或者被測功能模塊,在接收到控制系統(tǒng)下發(fā)的命令后,會給予一定響應(比如某些設備狀態(tài)、參數(shù)的改變,或者返回指定的數(shù)值給控制系統(tǒng))。這些響應的信息通過被測系統(tǒng)的通信接口返回給控制系統(tǒng)。這樣就完成了控制系統(tǒng)和被測系統(tǒng)的交互。
另外,還需要事先定義好一個命令集以及各條命令所帶來的所有可能的預期結果。這個命令集和它們所返回的預期結果是業(yè)務測試程序需要使用和檢驗的,正是這些命令集和結果集構成了自動化測試用例集。
通過以上的系統(tǒng)建模,我們就可以通過測試腳本與被測系統(tǒng)完成交互、監(jiān)控和測試了。由此,可以達到測試被測系統(tǒng)的目的。
基于以上的討論我們可以看到,U模型中各層完成的功能各自不同,缺一不可,每個系統(tǒng)中都是高層使用底層提供的服務完成本層的工作??刂葡到y(tǒng)和被測系統(tǒng)上運行著兩個不一樣的操作系統(tǒng),實際上也完成了不同操作系統(tǒng)之間的數(shù)據通信。
3.項目應用
根據上面提出的U模型,我們搭建了一個自動化測試平臺,硬件上包括個人工作電腦PC機和待測終端設備A,兩者通過通信接口——串口來完成通信及數(shù)據交換。如圖2所示:
圖2 應用組網圖
同時,我們開發(fā)了一個控制臺軟件,其操作界面如圖3所示。
從圖3中可以看到,左邊紅色框中的“業(yè)務測試腳本列表”是一系列測試腳本文件的樹狀圖,實現(xiàn)的是腳本工程的管理,在腳本執(zhí)行完成后,到底是成功還是失敗,會有結果狀態(tài)顯示在被執(zhí)行腳本的后面。中間紅色框為“腳本編輯和查看區(qū)”,實現(xiàn)的是腳本編輯和查看功能。最右邊的框是“腳本輸出區(qū)”,是調試腳本的輸出和執(zhí)行結果輸出顯示的地方,這里也有一個結果統(tǒng)計功能,比如本次測試執(zhí)行了多少個腳本,成功了多少個,失敗了多少個,都會在這里有所體現(xiàn)。在這個控制臺軟件界面上,我們開發(fā)了語音業(yè)務測試腳本,實現(xiàn)了語音通話的各種業(yè)務的自動化測試。
圖3 控制臺軟件界面
另外,在被測的終端設備上,我們定義好一套命令集以及返回值列表,命令集比如重啟命令、讀取工作模式命令、設置音量大小等等,約100多條命令。返回值列表是對一系列命令的返回值定義了特殊的含義,比如0表示操作失敗,1表示操作成功等。這樣一個命令集以及返回值列表來自于測試工程師,由測試工程師提供所需要使用的測試命令及返回值,由控制臺軟件開發(fā)工程師和終端軟件開發(fā)工程師來共同實現(xiàn)。
完成以上的工作,一個嵌入式終端設備的自動化測試平臺就搭建完成了。在這個測試平臺上,我們的測試工程師開發(fā)了語音業(yè)務測試腳本,實現(xiàn)了語音通話的各種業(yè)務的自動化測試。在完成業(yè)務測試腳本編寫和調試之后,就可以根據測試任務勾選上所需要執(zhí)行的腳本,直接執(zhí)行就可以了。
4.推廣意義
U模型這種測試技術,具有通用性,可以廣泛應用到各種嵌入式系統(tǒng)終端設備的自動化測試中去。把自動化測試引入的項目中去,既可以大大節(jié)省人力成本,又可以完成手工無法完成的窮盡測試,對產品的質量把控可以更嚴格,對于提升產品質量具有偉大的意義。
參考文獻
[1]黃鵬,廖紅華,嵌入式系統(tǒng)綜述[J].電工技術,2006.
[2](美)DanielJ.Mosley,(美)BruceA.Posey.軟件測試自動化[M].鄧波等,譯.機械工業(yè)出版社,2003.
作者簡介:
韋卉(1981—),女,廣西梧州人,大學本科,軟件測試師,現(xiàn)供職于廣州海格通信集團股份有限公司,研究方向:嵌入式軟件測試。
呂金華(1982—),女,廣東江門人,大學本科,軟件設計師,現(xiàn)供職于廣州海格通信集團股份有限公司,研究方向:嵌入式軟件設計。