朱林宇
聯(lián)芯科技有限公司,上海 201206
測試自動化/自動化測試,在英文中有Test Automation,Automated Testing/Test,Automation Test ,一般認為就是使用 (自動化測試)工具來進行的測試,一般不需要人干預(yù).
手機是一種典型的嵌入式設(shè)備,其應(yīng)用軟件、尤其是通信軟件如瀏覽器,短信、彩信等模塊,為避免由于3G通訊協(xié)議棧的不穩(wěn)定阻礙通訊軟件的測試執(zhí)行,我們設(shè)計了模擬處理協(xié)議通訊的過程。
本文介紹了如何使用軟件來控制測試的執(zhí)行,通過協(xié)議代理實現(xiàn)通訊模塊隔離,完成實際輸出和預(yù)期輸出的對比等。
軟件測試自動化實現(xiàn)的基礎(chǔ)是可以通過設(shè)計的特殊程序模擬測試人員對測試對象的測試操作過程和操作行為。其方法主要有如下幾類:
代碼分析類似于高級編譯系統(tǒng),一般針對不同的高級語言去構(gòu)造分析工具,在工具中定義類、對象、函數(shù)、變量等定義規(guī)則、語法規(guī)則;在分析時對代碼進行語法掃描,找出不符合編碼規(guī)范的地方;根據(jù)某種質(zhì)量模型評價代碼質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。
代碼分析是一種白盒測試的自動化方法,錄制和回放則是一種黑盒測試的自動化方法。捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應(yīng)的操作、狀態(tài)變化或是屬性變化。所有的記錄轉(zhuǎn)換為一種腳本語言所描述的過程,以模擬用戶的操作。
回放時,將腳本語言所描述的過程轉(zhuǎn)換為屏幕上的操作,然后將被測系統(tǒng)的輸出記錄下來同預(yù)先給定的標準結(jié)果比較。這可以大大減輕黑盒測試的工作量,在迭代開發(fā)的過程中,能夠很好地進行回歸測試。
腳本是一組測試工具執(zhí)行的指令集合,也是計算機程序的一種形式。腳本可以通過錄制測試的操作產(chǎn)生,然后再做修改。腳本技術(shù)可以分為五類:
1)線性腳本;
2)結(jié)構(gòu)化腳本;
3)共享腳本;
4)數(shù)據(jù)驅(qū)動腳本;
5)關(guān)鍵字驅(qū)動腳本。
主要是針對UE功能和界面進行的測試。APP位于UE系統(tǒng)中最高層,所以測試驅(qū)動相當于模擬用戶輸入,使用已完成測試的底層模塊與部分樁模塊進行集成,完成測試。
過程描述:
1)接通設(shè)備,打開用例庫,UE側(cè)開機;
2)選擇用例組成測試模塊;
3)運行初始用例,系統(tǒng)調(diào)用相應(yīng)的測試腳本并逐級完成全部測試用例;
4)PC側(cè)工具收集UE側(cè)傳過來的圖片數(shù)據(jù),并實時和標準圖片庫對比,分析對比結(jié)果,向用戶提供出現(xiàn)問題的step;
5)后續(xù)問題跟蹤及驗證。
圖1
1)PC端PXP工程發(fā)送按鍵信息
2)UE端接收到來自PC端的按鍵信息
3)UE處理按鍵信息
(1)向PC發(fā)送命令請求,如AT命令;
(2)UE端屏幕有相應(yīng)的顯示;
(3)向PC發(fā)送屏幕數(shù)據(jù),如果測試不涉及和高層交互,那么直接回到第一步,下一個測試開始。
4)PC端PXP工程接收到來自UE的數(shù)據(jù)
(1)接收來自UE的命令請求,如AT命令;
(2)接收來自UE的屏幕數(shù)據(jù)。
5)PC端處理來自UE端的數(shù)據(jù)
(1)PXP工程向UE發(fā)送命令響應(yīng);
(2)將屏幕數(shù)據(jù)組合成圖片,制作成視頻文件。
6)UE端接收到PC端模擬高層的命令響應(yīng)
7)UE端處理來自PC端的命令回應(yīng)
(1)在屏幕上有相應(yīng)的顯示;
(2)發(fā)送屏幕數(shù)據(jù)到PC端。
8)PC端接收屏幕數(shù)據(jù)組合成圖片,制作成視頻文件
9)回到第一步,下一個測試用例開始
PXP是一個協(xié)議集成測試環(huán)境,其特點是:
1)工程化管理所有的數(shù)據(jù);
2)采用ASN.1描述協(xié)議;
3)采用TCL作為控制腳本;
4)圖形化界面消息編解碼;
5)多個TCL引擎的可并發(fā)運行。
在PXP中所有的信息被一個工程有序組織,一個完整的工程包含一個ASN.1文件、測試用例集、TCL引擎配置信息、用戶創(chuàng)建的PDU信息等。簡單來說,PXP就像是一個模擬高層,來處理和響應(yīng)PF發(fā)來的各種指令。
1)利用PXP進行腳本錄制
當整個自動測試環(huán)境搭建成功后,利用pxp提供的腳本錄制功能,可以在UE手機界面手動按鍵,pxp會自動保存按鍵順序結(jié)果,記錄在一個*.tcl。配合原來pxp的高層交互功能,可以替代現(xiàn)在app集成測試人員的手工操作。
2)測試用例管理功能
提供測試用例的生成、查看、刪除;基于測試用例,配置生成需要的腳本文件。
圖2
1)PXP :腳本集成工具和引擎,主要作用是編寫測試腳本和發(fā)起指令。對于PXP,需要實現(xiàn)兩個通信接口,一個是面向PxpAgent的,一個是面向UE的UI 自動測試的。其他描述見表1。
表1
2)PxpAgent(代理工具):指令的發(fā)送和轉(zhuǎn)發(fā),是主要的代理工具;
3)Com Device:通訊端口,包括UART口和USBVCOM。Com Device是PxpAgent和PXP用來和UE側(cè)進行通信的設(shè)備。AT指令和UI自動測試的數(shù)據(jù)的分發(fā)是由Com Device來完成的,PxpAgent和PXP不需要考慮該問題。PXP只要設(shè)定哪種通信通道是哪種數(shù)據(jù),并進行對應(yīng)的處理即可;
4)Auto Test :嵌入在UE工程里面的自動測試模塊,負責端口配置、LCD驅(qū)動數(shù)據(jù)處理和按鍵信息處理等工作。流程圖如圖3。
圖3
注:Auto Test過程描述
(1)通信設(shè)備管理、按鍵信息處理和屏幕數(shù)據(jù)發(fā)送模塊。其中按鍵信息處理模塊包括接收按鍵信息、轉(zhuǎn)換按鍵信息、發(fā)送按鍵信息;
(2)通信設(shè)備管理就是對USB設(shè)備的打開和關(guān)閉;
(3)接收按鍵信息接收PC端發(fā)送過來的按鍵信息,通信方法就是讀USB數(shù)據(jù);
(4)轉(zhuǎn)換按鍵信息就是將從PC接收來的按鍵信息映射成通訊模塊能夠識別的消息;
(5)發(fā)送按鍵信息就是將轉(zhuǎn)換好的按鍵消息發(fā)送到按鍵消息隊列中;
(6)發(fā)送屏幕數(shù)據(jù)包括屏幕數(shù)據(jù)消息隊列和屏幕數(shù)據(jù)發(fā)送兩個部分:發(fā)送屏幕數(shù)據(jù)到屏幕數(shù)據(jù)隊列中,從屏幕圖片隊列中取出圖片數(shù)據(jù),向PC發(fā)送圖片數(shù)據(jù),通過寫USB發(fā)送數(shù)據(jù)到PC。
圖4
在測試的進行過程中,發(fā)送的按鍵信息和收到target的圖片數(shù)據(jù)都會顯示在pxp主視圖界面區(qū)。
對于測試結(jié)果的記錄,是保存成視頻文件的。在測試進行過程中,將發(fā)送的按鍵信息和接收到的圖片數(shù)據(jù)按順序組織保存成視頻文件。
自動測試結(jié)果觀察-批量圖片比對:首先要有一個正確結(jié)果的圖片集,然后使用圖片比較工具Pic_comp將自動測試執(zhí)行截取的圖片與之進行批量對比。比較結(jié)果會輸出到一個.txt文本中,告知測試人員哪些用例通過了,哪些用例Fail了,對于Fail的用例,會提示是哪些圖片不匹配(自動測試截取的圖片保存時都會自動按先后順序進行編號),測試人員就會根據(jù)這些信息去分析。
圖5
自動化測試是測試領(lǐng)域中的一個重要課題,因為只有適配于具體的測試對象,才能最大的發(fā)揮自動化測試的作用,所以在這方面的研究根本的還是要基于對測試對象的熟悉,然后在自動化測試的理念的指導(dǎo)下,設(shè)計和實現(xiàn)最合適的方案和工具,來進一步提高我們測試工作的效率,提高研發(fā)質(zhì)量。方案和工具的不斷完善改進,測試用例的不斷豐富擴大,是自動化測試工作不斷深入的方向和動力。沒有做不到,只有想不到。擴展思路,提高效率,控制質(zhì)量,合理有效的運用這一方法,才能把我們的測試工作推向新的高度。
[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]朱志剛.數(shù)字圖像處理[M].電子工業(yè)出版社.