江南機電設計研究所 賈俊輝
?
基于Android平臺的動態行為檢測軟件的設計與實現
江南機電設計研究所 賈俊輝
【摘要】隨著Android系統的普及,新興的移動軟件產業獲得快速發展。然而,基于Android平臺的軟件檢測技術與方法卻相對滯后,原有的軟件測評方式不能很好地對Android平臺軟件進行各種指標檢測。本項目在Android 應用開發技術、多線程開發技術、Linux系統監測技術研究的基礎上,自主開發了Android檢測軟件“Android Scan”,該軟件具備App事件監聽、實時檢測數據、系統資源監聽、數據記錄等功能,該工具能夠作為Android軟件壓力檢測、臨界測試的測試輔助軟件,為測試人員提供數據分析支持。
【關鍵詞】動態檢測;Android應用技術;多線程
Android移動應用軟件檢測平臺在國內已經有了一部分研究成果,但是,普遍的研究成果都沒有對UI功能測試提供很好的支持;并且,對于一些尚未發布的移動設備或者軟件應用來說,采用商業檢測平臺,對商業私密性也不能得到很好的保護。
國外常見工具如Google提供的Android SDK中,給出了三種自動化測試工具,即Monkey、MonkeyRunner 和Instrumentation。其中,Monkey是一個隨機壓力測試工具。Monkey通過向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),對應用程序進行壓力測試。由于Monkey測試使用的事件流數據流是隨機不能進行自定義,因此Monkey不符合可控測試的要求。MonkeyRunner是由Python編寫的測試工具,可以通過編寫Python代碼調用Android的API,從而達到自動化測試的目的;Instrumentation可理解為一種沒有圖形界面的、具有啟動能力、用于監控其他類的工具類。然而,MonkeyRunner與Instrumentation框架對測試人員的代碼編寫能力較高,并且腳本編寫環境要求多變復雜,對于測試項目而言成本較高。
本項目在Android應用開發技術、多線程開發技術、Linux系統監測技術研究的基礎上,自主開發了Android檢測軟件“Android Scan”,該軟件具備App事件監聽、實時檢測數據、系統資源監聽、數據記錄等功能。該工具能夠作為Android軟件壓力檢測的測試輔助軟件,為測試人員提供數據分析支持。
Android系統是一個權限分離的系統。Android Scan利用Linux已有的權限管理機制,通過為每一個App分配不同的uid和gid,從而使得不同的App之間的私有數據和訪問達到隔離的目的。與此同時,利用Android提供的permission機制,用來對App可以執行的某些具體操作進行權限細分和訪問控制,進而利用Android的權限機制進行權限安全分析。
Android Scan主要采用進行輔助壓力測試。壓力測試通過接入外部設備在短時間內發送大量信息,同時并接收大量的信息,來驗證同一個軟件是否可以同時多個窗口進行操作,操作時軟件對該情況進行的處理及響應等。并且,通過長時間使軟件持續運行,檢測溫度、電壓等數據等,用來評估系統與軟件可靠性。
Android Scan采用JAVA語言在Eclipse 3.5.1、Android Development Tools平臺上開發,可以實時監視目標App、采集目標動態數據,包括:硬件信息、 App權限、App包數據信息、內存消耗、CPU使用信息、網絡流量數據、電量數據、溫度、存儲消耗、電壓等數據信息。并且,通過記錄監測數據,保存原始數據,為評價與統計分析提供數據依據。Android Scan的設計架構方法如圖1所示。

圖1 Android Scan的設計架構
Android Scan啟動以后,會通過App事件監聽線程實時監測目標手機軟件的目標動態信息,并將目標動態信息如 App權限、App包數據信息、內存消耗、CPU使用信息、網絡流量數據、反饋到Android Scan實時檢測數據界面之中,再將其傳入數據記錄模塊。同時,系統資源監聽線程將Android系統總內存消耗、總CPU使用、總網絡流量數據、電量數據、溫度、存儲消耗、電壓等信息記錄到數據記錄模塊中。最后,退出Android Scan后會將數據記錄器中的數 據生成文本文件,測試人員可以利用腳本工具將數據文本生成報表。
本項目在Android 應用開發技術、多線程開發技術、Linux系統監測技術研究的基礎上,自主開發了Android檢測軟件“Android Scan”,該軟件具備App事件監聽、實時檢測數據、系統資源監聽、數據記錄等功能。該工具能夠作為Android軟件壓力檢測、臨界測試的測試輔助軟件,為測試人員提供數據分析支持。Android Scan在UI上進行實時檢測,解決了國內普遍的研究成果都沒有對UI功能測試提供很好的支持的問題;同時,該軟件為自主開發,可以很好地保護用戶商業私密性。并且,在實際應用之中結合FindBugs、LogCat、MonkeyRunner、LoadRunner等,可以搭建成為Android軟件測試工具平臺。通過該平臺,實現Android軟件靜態、動態、并發、負載性能、異常處理等方面的檢測。
參考文獻
[1]盧建軍,蘇寧.淺談手機軟件測試的流程與策略[J].制造業自動化,2012(15):12-17.
[2]尤永康,劉乃琦.自動化回歸測試在 Java 項目中的實現[J].計算機應用,2005,25(1).
[3]謝紅霞,吳紅梅.基于Android 的自動化測試的設計與實現[J].Computer Era,2012(2).
賈俊輝(1987—),男,貴州貴陽人,碩士,現供職于江南機電設計研究所,助理工程師,研究方向:軟件測試。
作者簡介: