朱林宇
聯芯科技有限公司,上海 201206
測試自動化/自動化測試,在英文中有Test Automation,Automated Testing/Test,Automation Test ,一般認為就是使用 (自動化測試)工具來進行的測試,一般不需要人干預.
手機是一種典型的嵌入式設備,其應用軟件、尤其是通信軟件如瀏覽器,短信、彩信等模塊,為避免由于3G通訊協議棧的不穩定阻礙通訊軟件的測試執行,我們設計了模擬處理協議通訊的過程。
本文介紹了如何使用軟件來控制測試的執行,通過協議代理實現通訊模塊隔離,完成實際輸出和預期輸出的對比等。
軟件測試自動化實現的基礎是可以通過設計的特殊程序模擬測試人員對測試對象的測試操作過程和操作行為。其方法主要有如下幾類:
代碼分析類似于高級編譯系統,一般針對不同的高級語言去構造分析工具,在工具中定義類、對象、函數、變量等定義規則、語法規則;在分析時對代碼進行語法掃描,找出不符合編碼規范的地方;根據某種質量模型評價代碼質量,生成系統的調用關系圖等。
代碼分析是一種白盒測試的自動化方法,錄制和回放則是一種黑盒測試的自動化方法。捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應的操作、狀態變化或是屬性變化。所有的記錄轉換為一種腳本語言所描述的過程,以模擬用戶的操作。
回放時,將腳本語言所描述的過程轉換為屏幕上的操作,然后將被測系統的輸出記錄下來同預先給定的標準結果比較。這可以大大減輕黑盒測試的工作量,在迭代開發的過程中,能夠很好地進行回歸測試。
腳本是一組測試工具執行的指令集合,也是計算機程序的一種形式。腳本可以通過錄制測試的操作產生,然后再做修改。腳本技術可以分為五類:
1)線性腳本;
2)結構化腳本;
3)共享腳本;
4)數據驅動腳本;
5)關鍵字驅動腳本。
主要是針對UE功能和界面進行的測試。APP位于UE系統中最高層,所以測試驅動相當于模擬用戶輸入,使用已完成測試的底層模塊與部分樁模塊進行集成,完成測試。
過程描述:
1)接通設備,打開用例庫,UE側開機;
2)選擇用例組成測試模塊;
3)運行初始用例,系統調用相應的測試腳本并逐級完成全部測試用例;
4)PC側工具收集UE側傳過來的圖片數據,并實時和標準圖片庫對比,分析對比結果,向用戶提供出現問題的step;
5)后續問題跟蹤及驗證。

圖1
1)PC端PXP工程發送按鍵信息
2)UE端接收到來自PC端的按鍵信息
3)UE處理按鍵信息
(1)向PC發送命令請求,如AT命令;
(2)UE端屏幕有相應的顯示;
(3)向PC發送屏幕數據,如果測試不涉及和高層交互,那么直接回到第一步,下一個測試開始。
4)PC端PXP工程接收到來自UE的數據
(1)接收來自UE的命令請求,如AT命令;
(2)接收來自UE的屏幕數據。
5)PC端處理來自UE端的數據
(1)PXP工程向UE發送命令響應;
(2)將屏幕數據組合成圖片,制作成視頻文件。
6)UE端接收到PC端模擬高層的命令響應
7)UE端處理來自PC端的命令回應
(1)在屏幕上有相應的顯示;
(2)發送屏幕數據到PC端。
8)PC端接收屏幕數據組合成圖片,制作成視頻文件
9)回到第一步,下一個測試用例開始
PXP是一個協議集成測試環境,其特點是:
1)工程化管理所有的數據;
2)采用ASN.1描述協議;
3)采用TCL作為控制腳本;
4)圖形化界面消息編解碼;
5)多個TCL引擎的可并發運行。
在PXP中所有的信息被一個工程有序組織,一個完整的工程包含一個ASN.1文件、測試用例集、TCL引擎配置信息、用戶創建的PDU信息等。簡單來說,PXP就像是一個模擬高層,來處理和響應PF發來的各種指令。
1)利用PXP進行腳本錄制
當整個自動測試環境搭建成功后,利用pxp提供的腳本錄制功能,可以在UE手機界面手動按鍵,pxp會自動保存按鍵順序結果,記錄在一個*.tcl。配合原來pxp的高層交互功能,可以替代現在app集成測試人員的手工操作。
2)測試用例管理功能
提供測試用例的生成、查看、刪除;基于測試用例,配置生成需要的腳本文件。

圖2
1)PXP :腳本集成工具和引擎,主要作用是編寫測試腳本和發起指令。對于PXP,需要實現兩個通信接口,一個是面向PxpAgent的,一個是面向UE的UI 自動測試的。其他描述見表1。

表1
2)PxpAgent(代理工具):指令的發送和轉發,是主要的代理工具;
3)Com Device:通訊端口,包括UART口和USBVCOM。Com Device是PxpAgent和PXP用來和UE側進行通信的設備。AT指令和UI自動測試的數據的分發是由Com Device來完成的,PxpAgent和PXP不需要考慮該問題。PXP只要設定哪種通信通道是哪種數據,并進行對應的處理即可;
4)Auto Test :嵌入在UE工程里面的自動測試模塊,負責端口配置、LCD驅動數據處理和按鍵信息處理等工作。流程圖如圖3。

圖3
注:Auto Test過程描述
(1)通信設備管理、按鍵信息處理和屏幕數據發送模塊。其中按鍵信息處理模塊包括接收按鍵信息、轉換按鍵信息、發送按鍵信息;
(2)通信設備管理就是對USB設備的打開和關閉;
(3)接收按鍵信息接收PC端發送過來的按鍵信息,通信方法就是讀USB數據;
(4)轉換按鍵信息就是將從PC接收來的按鍵信息映射成通訊模塊能夠識別的消息;
(5)發送按鍵信息就是將轉換好的按鍵消息發送到按鍵消息隊列中;
(6)發送屏幕數據包括屏幕數據消息隊列和屏幕數據發送兩個部分:發送屏幕數據到屏幕數據隊列中,從屏幕圖片隊列中取出圖片數據,向PC發送圖片數據,通過寫USB發送數據到PC。

圖4
在測試的進行過程中,發送的按鍵信息和收到target的圖片數據都會顯示在pxp主視圖界面區。
對于測試結果的記錄,是保存成視頻文件的。在測試進行過程中,將發送的按鍵信息和接收到的圖片數據按順序組織保存成視頻文件。
自動測試結果觀察-批量圖片比對:首先要有一個正確結果的圖片集,然后使用圖片比較工具Pic_comp將自動測試執行截取的圖片與之進行批量對比。比較結果會輸出到一個.txt文本中,告知測試人員哪些用例通過了,哪些用例Fail了,對于Fail的用例,會提示是哪些圖片不匹配(自動測試截取的圖片保存時都會自動按先后順序進行編號),測試人員就會根據這些信息去分析。

圖5
自動化測試是測試領域中的一個重要課題,因為只有適配于具體的測試對象,才能最大的發揮自動化測試的作用,所以在這方面的研究根本的還是要基于對測試對象的熟悉,然后在自動化測試的理念的指導下,設計和實現最合適的方案和工具,來進一步提高我們測試工作的效率,提高研發質量。方案和工具的不斷完善改進,測試用例的不斷豐富擴大,是自動化測試工作不斷深入的方向和動力。沒有做不到,只有想不到。擴展思路,提高效率,控制質量,合理有效的運用這一方法,才能把我們的測試工作推向新的高度。
[1]3GPP TS 22.011.Service accessibility.
[2]3GPP TS 23.122.Non Access Stratum functions related to Mobile Station (UE) in idle mode.
[3]朱志剛.數字圖像處理[M].電子工業出版社.