[發(fā)明專利]一種基于Android的自動化軟件黑盒測試系統(tǒng)及方法有效
| 申請?zhí)枺?/td> | 201310305497.3 | 申請日: | 2013-07-18 |
| 公開(公告)號: | CN103336742A | 公開(公告)日: | 2013-10-02 |
| 發(fā)明(設計)人: | 姜博;王珂;高小鵬;沈彥鳴;陳鵬;萬寒;龍翔 | 申請(專利權)人: | 北京航空航天大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京科迪生專利代理有限責任公司 11251 | 代理人: | 成金玉;盧紀 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 android 自動化 軟件 黑盒 測試 系統(tǒng) 方法 | ||
技術領域
本發(fā)明屬于軟件測試技術領域,涉及一種基于模型的Android自動化軟件黑盒測試系統(tǒng)及方法,用于解決Android系統(tǒng)的軟件自動化測試問題。
背景技術
隨著Android應用的快速發(fā)展,Android測試的研究卻相對滯后,對整個軟件開發(fā)和測試過程都有著不可估量的影響。Android自動化測試應運而生,其中自動化測試用例生成問題是軟件測試的核心所在,所以針對Android而特有的自動化測試用例生成技術的研究具有極其重要的意義。
目前,基于Android系統(tǒng)的自動化測試生成技術主要包括:
基于Monkey工具的自動化測試生成技術。Monkey是Android系統(tǒng)中的一個命令行工具,可以運行在模擬器里或?qū)嶋H設備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應用程序進行壓力測試。Monkey測試是一種自動化的黑盒測試,可以快速生成大量的簡單隨機的測試輸入。但是,Monkey不能生成智能的測試用例,比如不能輸入正確的用戶名密碼。而且不能避免生成冗余測試用例。另外,Monkey只能生成Android?GUI事件,不能生成系統(tǒng)事件。
另外一種比較流行的自動化測試生成的技術是基于模型的測試生成技術。基于模型的測試生成技術很好的抽象了一個GUI程序的輸入空間,可以提高測試生成效率、減少冗余。主要的模型類型有狀態(tài)機模型及狀態(tài)機變種模型、GUI樹模型等。基于模型的自動化測試生成技術主要側(cè)重于測試基于GUI的應用程序。現(xiàn)有的基于模型的測試生成技術主要針對Android?GUI事件,而沒有考慮系統(tǒng)事件。最為重要的是,基于模型的自動生成技術的前提是需要一個適用性較高的模型,而現(xiàn)有的技術中建模的過程都是手動的,這樣需要的人力成本過高。
發(fā)明內(nèi)容
本發(fā)明技術解決問題:克服現(xiàn)有技術的不足,提供一種基于Android的自動化軟件黑盒測試系統(tǒng)及方法,保證軟件測試的完整性;還可以完全脫離應用程序的保密性限制,具備自動化程度相對較高、可重用性強、可擴展性優(yōu)良等特點。
本發(fā)明技術解決方案:一種基于Android的自動化軟件黑盒測試系統(tǒng),包括:事件注入模塊、事件動態(tài)執(zhí)行和過濾模塊、GUI信息自動化錄制模塊、GUI狀態(tài)轉(zhuǎn)換圖建立模塊,其中:
事件注入模塊:人工編寫訓練腳本,將應用程序的關鍵UI事件和系統(tǒng)intent事件全集發(fā)送到應用程序,為事件動態(tài)執(zhí)行和過濾模塊提供事件激勵;根據(jù)Android應用程序AndroidManifest.xml文件的所有intent事件描述,手動的構造intent事件,同時根據(jù)Android應用程序GUI控件信息構造關鍵UI事件,并且以自定制測試工具可識別的腳本命令形式,編寫訓練腳本,最終以訓練腳本為形式注入到定制測試工具,從而進一步發(fā)送到Android真實設備或者Android模擬器上,促使相應應用程序運行;
事件動態(tài)執(zhí)行和過濾模塊:執(zhí)行訓練腳本,并在訓練腳本執(zhí)行過程中,針對每一個應用程序窗口,根據(jù)過濾條件動態(tài)過濾無關系統(tǒng)intent事件,來避免GUI信息自動化錄制模塊錄制無關事件所觸發(fā)的GUI轉(zhuǎn)換;使用定制測試工具執(zhí)行訓練腳本,用來觸發(fā)Android真實設備或者Android模擬器上對應應用程序的運行;根據(jù)過濾條件將應用程序當前GUI窗口下的無關事件過濾掉。過濾條件為是否可以觸發(fā)Android應用程序GUI窗口的變化,將無法觸發(fā)窗口轉(zhuǎn)換的事件過濾掉。在訓練腳本的執(zhí)行過程中的動態(tài)執(zhí)行和過濾事件,必須加入Android應用程序GUI的狀態(tài)驗證,來判斷某事件是否應該被過濾掉;所述狀態(tài)驗證是在訓練腳本激勵應用程序執(zhí)行的過程中,通過比對某GUI的控件集屬性或具有代表性控件(比如TextView控件、控件樹的葉子控件等)的關鍵屬性來驗證該GUI窗口是否有變化;狀態(tài)驗證過程中,可以通過設定相應參數(shù)來選擇是比對GUI控件集屬性還是比對具有代表性控件的關鍵屬性;在比對GUI控件集屬性或者具有代表性控件關鍵屬性時,采用DUMPQ命令來獲取當前窗口所有的控件信息或者采用DUMPQ的改進命令DUMPW命令,只獲取指定控件的控件信息;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京航空航天大學,未經(jīng)北京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310305497.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:藥效持久的醫(yī)療耳貼
- 下一篇:一種天門冬混合制劑洗滌品
- 一種Android設備之間遠程桌面控制的方法
- 一種Android程序的執(zhí)行路徑的還原方法
- 基于ANCS協(xié)議兼容多平臺的通知消息獲取方法
- 基于字節(jié)碼插樁的Android程序監(jiān)控系統(tǒng)及方法
- 一種減少Android設備功耗的優(yōu)化方法及裝置
- 一種縮短無屏Android設備開機啟動時間的設置方法
- 一種基于Android雙系統(tǒng)的系統(tǒng)間通知同步方法
- 基于移動操作系統(tǒng)的Android兼容層實現(xiàn)方法和系統(tǒng)
- 一種Android智能設備APK安全管控方法
- 一種應用程序開發(fā)中創(chuàng)建Android庫模塊依賴關系的方法及裝置





