手機軟件自動化測試研究報告_第1頁
手機軟件自動化測試研究報告_第2頁
手機軟件自動化測試研究報告_第3頁
手機軟件自動化測試研究報告_第4頁
手機軟件自動化測試研究報告_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、手機軟件自動化測試研究報告一、引言手機軟件的自動化測試一直困擾著手機軟件測試從業人員,本文將最近的一些研究新發現及具體思路作詳盡闡述,希望能給予大家更多的參考萌發新的思路。通過長期的手工測試得出如下可以以自動化測試來解決的問題:1. 壓力測試:一些連續不斷的操作,比如反復切換歌曲播放及聯網操作等;2. 極限臨界測試:一些極限條件的構造(創建多個列表)及輸入字符個數等;3. 兼容及中斷:比如在播放或下載歌曲的時候來電話或者信息;4. 基本功能回歸測試:這樣大大的節約了時間和人力成本。對于以上的測試很多也是可以通過手工來完成,但部分測試采用手工測試是不可靠的,比如最近發現一個Bug(在聯網的一瞬間

2、如果來一個信息等中斷操作出現死機),類似這種Bug出現條件非常苛刻和臨界的情況在手工測試中是很難發現和構造這種測試環境的,即使發現了在很大程度上也屬于一種偶然,同時給開發人員定位這個問題也帶來了很大的困難。面對諸多因素,我們不得不重視手機軟件的自動化測試研究。其實如果掌握了一些自動化測試要領,從簡單入手,逐步實現和突破,相信一定能夠解決手機軟件自動化測試的難題。二、自動化測試原理【自動化測試原理圖】1. Test AgentTest Agent為嵌入在手機軟件系統中的一個測試代理模塊,解決PC端與手機端交互處理及互聯消息通訊問題,這是區別于其他桌面軟件自動化測試的關鍵點,也是嵌入式軟件自動化測

3、試的主要特征之一。通過串口或藍牙設備與PC端中的Test Tool建立通訊,其具備的主要功能如下:1) 接收Test Tool發送的消息并向手機端軟件系統分發消息及任務2) 監控手機端軟件運行情況并根據相應的約束反饋給PC端的Test Tool3) 被測軟件的功能(接口)封裝及消息響應2. Test ToolTest Tool自動化測試工具在PC端用于測試控制及測試操作實體,與Test Agent對應,該工具與常規的自動化測試軟件一樣,其具備的主要功能如下:1) 向手機端Test Agent發送可識別的消息及任務2) 接收來自手機端Test Agent的反饋結果3) 對來自手機端Test Ag

4、ent的反饋進行測試業務的處理4) 將測試業務的處理結果呈現給測試人員三、測試業務1. 主動式測試Test Tool主動式測試是根據我們的測試需求比如(壓力、性能、極限)在Test Tool中編寫測試腳本控制手機端軟件進行測試,或者構造一些手工很難實現的測試場景,通過運行腳本向Test Agent發送消息及任務,Test Agent再向被測軟件分發消息及任務,并將結果原路返回給Test Tool,Test Tool再通過數據處理分析得出測試結果。關鍵點:發送和分發消息、接收及處理反饋結果(結果判斷)。2. 回歸式測試基本功能的回歸測試最為簡單的方法就是錄制和回放機制,通過運行錄制的測試腳本達到

5、按照先前的操作順序、步驟、輸入數據等再次測試被測軟件以此達到回歸測試的目的。1) 錄制:就是在執行手工測試時將手工測試的任何操作及返回結果(預期正確的結果)通過Test Agent在Test Tool中保存下來,并進行分析處理形成一個可執行的腳本。錄制的關鍵點:按鍵或觸屏消息、坐標、響應結果(GUI界面)。2) 回放:與錄制相對應,運行錄制時產生的腳本,與主動式測試方式不同的是回歸式測試是事先要錄制腳本,通過錄制腳本來代替人工編寫腳本。回放關鍵點:發送和分發消息、接收及處理反饋結果(結果判斷)。四、關鍵技術1. 消息傳送機制利用手機Modem中提供的AT Command通過串口向手機端建立命令

6、消息通訊,目前手機廠商提供了常用的AT Command,基本滿足普通的自動化測試需求,另外廠商還提供了用戶自定義AT Command的功能,當標準的AT Command不能滿足自動化測試需求時,我們可以利用自定義AT Command來實現我們自動化測試中所需要的消息通訊。如下為MTK平臺上實現自定義AT Command的關鍵樣例代碼:view plain copy to clipboard print?/customer_at_command.c #include "kal_non_specific_general_types.h" #include "stdio

7、.h" #include "string.h" #define CUSTOM_SYMBOL '' / '+' and '/' and ' 'is NOT allowed #define MAX_UART_LEN 128 /* * customer command */ #define PLAY "play" #define STOP "stop" kal_uint8 custom_get_atcmd_symbol(void); void custom_comma

8、nd_hdlr(char *full_cmd_string); extern void rmmi_write_to_uart(kal_uint8 * buffer, kal_uint16 length, kal_bool stuff); /* * FUNCTION * custom_command_hdlr() * DESCRIPTION * This function should parse the custom AT command and do correspondent action. * Customer should maintain and modify the code. *

9、 PARAMETERS * kal_uint8 * cmd_string * RETURNS * none */ void custom_command_hdlr(char *full_cmd_string) char bufferMAX_UART_LEN; char cmd_name15; kal_uint8 index = 3; / we start parsing index after the CUSTOM_SYMBOL kal_uint8 tmp_idx = 0; while (full_cmd_stringindex != '=' ) && /mig

10、ht be TEST command or EXE command (full_cmd_stringindex != '?' ) && / might be READ command (full_cmd_stringindex != 13 ) /carriage return cmd_nametmp_idx = full_cmd_stringindex ; tmp_idx +; index +; cmd_nametmp_idx = '0' ; /* just a very basic example : customer can implemen

11、t their own */ if (strcmp(cmd_name, PLAY) = 0) /* BEGIN: do the following parsing and correspondent action */ /* */ /* */ /* */ /* END: do the following parsing and correspondent action */ /* generate final result code: "OK" */ /Todo 實現消息分發或功能調用 sprintf(buffer, "Hello Play"); pri

12、ntf("%sn", "Hello Play"); rmmi_write_to_uart(kal_uint8*)buffer, (kal_uint16)strlen(buffer), KAL_TRUE); else if (strcmp(cmd_name, STOP) = 0) /* BEGIN: do the following parsing and correspondent action */ /* */ /* */ /* */ /* END: do the following parsing and correspondent action *

13、/ /* generate final result code: "OK" */ /Todo 實現消息分發或功能調用 sprintf(buffer, "Hello Stop"); printf("%sn", "Hello Stop"); rmmi_write_to_uart(kal_uint8*)buffer, (kal_uint16)strlen(buffer), KAL_TRUE); else /* unrecognized command */ /* generate final result code: &

14、quot;ERROR" */ sprintf(buffer, "ERROR"); printf("%sn", "ERROR"); rmmi_write_to_uart(kal_uint8*)buffer, (kal_uint16)strlen(buffer), KAL_TRUE); return; kal_uint8 custom_get_atcmd_symbol(void) return (CUSTOM_SYMBOL); 2. 圖像識別 圖像識別主要通過抓取LCD屏幕顯示圖像進行智能識別來模擬測試工程師的雙眼辨識文字或圖像

15、信息,以此判斷測試結果。主要涉及圖像的獲取和對比分析,智能識別是一個比較專業的研究領域,更進一步的研究需要進行調研,目前我們可以考慮是否能夠通過第三方工具來實現,比如借助目前已經成熟的測試工具QTP等。對于圖像獲取在手機平臺上應該具備這樣的接口,或者自行開發這個接口。3. 錄制回放錄制的信息及相應的實現方式如下:1) 按鍵消息:由Test Agent捕獲該消息并同步給PC端的Test Tool2) 筆點消息:由Test Agent捕獲該消息并同步給PC端的Test Tool3) 坐標:由Test Agent捕獲該坐標信息并同步給PC端的Test Tool4) 響應結果(GUI界面回放的預期結果):通過圖像抓取接口抓取圖像并同步給PC端的Test Tool(如果做到極致的話在PC端所呈現的GUI界面與實際手機GUI界面同步一致,等同于PC機上的顯示為手機GUI的一個鏡像)5) 時鐘同步:操作步驟的時間點、操作的先后順序、輸出結果響應時間6) 錄制腳本組裝:Test Tool將所有的錄制信息進行處理并組裝成一套可運行的測試腳本,要求運行該腳本后能夠與錄制時的操作完全一樣,并能將回放時的實際結果與預期結果進行比較從而得出執行結果。7) 回放:主要是運行組裝好的測試腳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論