[發明專利]基于事件處理器的Android自動化測試工具及測試方法有效
| 申請號: | 201610016174.6 | 申請日: | 2016-01-11 |
| 公開(公告)號: | CN105677569B | 公開(公告)日: | 2018-02-02 |
| 發明(設計)人: | 宋巍;錢祥星;黃青青 | 申請(專利權)人: | 南京理工大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京理工大學專利中心32203 | 代理人: | 朱顯國 |
| 地址: | 210094 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 事件 處理器 android 自動化 測試 工具 方法 | ||
技術領域
本發明涉及軟件測試領域,特別是一種基于事件處理器的Android自動化測試工具及測試方法。
背景技術
目前國內外對Android App測試的研究主要集中在事件輸入的生成。根據研究探索方式的不同,現有工作主要分為兩類:模糊測試(fuzzing testing)和基于GUI模型測試。模糊測試又稱為隨機測試,其核心思想是自動或半自動地生成隨機數據輸入到程序中,監視程序的異常情況,如崩潰,斷言失敗等,以發現程序中可能的錯誤。基于GUI模型的測試是指基于App的GUI模型,測試工具去系統地探索App,觸發App中的事件;這類測試方法首先生成App的GUI模型,GUI模型反映了App中狀態之間的聯系,直觀地表達狀態的傳遞關系;基于App的GUI模型,測試工具使用狀態覆蓋作為測試準則,探索GUI模型中的所有狀態。
上述兩類測試方法各有其優點,如模糊測試適合壓力測試,基于GUI模擬的測試能夠系統地探索App,達到較高的覆蓋率。然而這兩類測試方法也都存在各自的不足:模糊測試無法生成特殊的測試輸入,并且無法保證測試的完整性;基于GUI模型的測試依賴完整的GUI模型,現有的GUI模型獲取方式,無論是靜態分析獲取還是動態執行獲取都無法保證模型的完整性。
另外,上述工具都是基于UI測試的工具,都沒有考慮系統事件和Inter-App事件。因此,Android測試的難點總結為以下兩點:一是包含豐富的事件輸入,如UI事件、系統事件和Inter-App事件,部分事件難以模擬;二是缺少系統的探索方法。
發明內容
本發明的目的在于提供一種基于事件處理器的Android自動化測試工具及測試方法。
實現本發明目的的技術方案為:一種基于事件處理器的Android自動化測試工具,包括事件插樁模塊、代碼分析工具Soot和App探索模塊;
事件插樁模塊包括XML解析器、識別器、分發器、語句構造器和語句管理器;
XML解析器用于收集在XML中定義的事件,解析器的輸入是Apk的XML文件,包括App的資源文件和AndroidManifest.xml,資源文件包含UI事件,AndroidManifest.xml包含系統事件和Inter-App事件;XML解析器的輸出是在資源文件和AndroidManifest.xml中定義的UI事件、系統事件和Inter-App事件;
識別器用于識別在代碼中定義的事件,識別器的輸入是Apk的Dex文件,Dex文件包含App所有的源代碼,識別器采用程序靜態分析方法,查找在代碼中定義的UI事件和系統事件;識別器的輸出是在代碼中定義的UI事件和系統事件;
分發器用于將XML解析器和識別器收集到的事件分發給事件所屬的活動;
語句構造器用于構造事件處理器的調用語句;語句構造器的輸入是收集的事件,輸出是事件處理器調用語句,調用語句用于驗證事件處理器的正確性;
語句管理器用于管理事件處理器調用語句,語句管理器的輸入是事件處理器調用語句,輸出是“Test”事件,“Test”事件的事件處理器封裝所有事件處理器的調用語句;
代碼分析工具Soot將插樁的調用語句、“Test”事件和Apk的源 代碼重新打包成一個新的Apk文件;
App探索模塊對重新打包后的Apk文件進行自動化測試。
一種基于事件處理器的Android自動化測試工具的測試方法,包括以下步驟:
步驟1、解壓縮Apk文件,獲得Apk中的XML文件和Dex文件;
步驟2、使用XML解析器解析XML文件,查找并獲取在XML中定義的UI事件、系統事件和Inter-App事件;
步驟3、使用識別器分析Dex文件,查找在代碼中定義的UI事件和系統事件;
步驟4、分發器對XML解析器和識別器收集到的事件統一處理,獲取事件的事件源和事件處理器,將事件信息分發給各自的活動;
步驟5、活動獲得事件處理器后,語句構造器構造事件處理器的調用語句;
步驟6、語句管理器創建“Test”事件,將調用語句插樁在“Test”事件的事件處理器中;
步驟7、代碼分析工具Soot將插樁的調用語句、“Test”事件和Apk的源 代碼重新打包成一個新的Apk文件;
步驟8、App探索模塊啟動App,執行自動化測試;
步驟9、測試結束后,輸出測試結果,包括本次測試的耗時、代碼覆蓋率、發現的bug數目和bug類型。
本發明與現有技術相比,其顯著優點為:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京理工大學,未經南京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610016174.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種內科檢查床
- 下一篇:一種甲狀腺手術定位裝置





