• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      移動APP測試方法綜述

      2017-09-09 04:41:46鐘葉
      軟件導(dǎo)刊 2017年8期
      關(guān)鍵詞:移動APP移動平臺軟件測試

      鐘葉

      摘 要:隨著移動互聯(lián)網(wǎng)的迅猛發(fā)展,移動APP應(yīng)用逐漸深入。其大多采用迭代開發(fā)模式,版本更新速度快,留給測試人員的時間非常有限,使其難以在短時間內(nèi)對APP進行全面測試。對移動APP測試方法進行梳理與總結(jié),重點從圖形用戶界面測試、系統(tǒng)性測試、基模測試等方面介紹移動APP的測試方法。

      關(guān)鍵詞:移動平臺;軟件測試;移動APP

      DOIDOI:10.11907/rjdk.171344

      中圖分類號:TP301

      文獻標識碼:A 文章編號文章編號:1672-7800(2017)008-0211-03

      0 引言

      移動通信技術(shù)的不斷完善進一步推動了移動設(shè)備的迅速發(fā)展,其靈活、方便、易攜帶的特點,使人們對移動設(shè)備依賴程度日益提高。中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)近期發(fā)布的第39次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》顯示,截至2016年12月,我國手機網(wǎng)民規(guī)模達6.95億人,較2015年底增加7 550萬人[1]。

      龐大的用戶數(shù)量吸引著越來越多的IT企業(yè)涉足移動APP領(lǐng)域,市場所投放的APP數(shù)量也與日俱增,選擇范圍的擴大使用戶的要求也隨之提高。但現(xiàn)實情況是很多APP的質(zhì)量并不過關(guān)、運行不流暢、響應(yīng)速度慢,甚至于經(jīng)常崩潰閃退,讓用戶體驗大打折扣。種種問題的出現(xiàn)使開發(fā)者對于APP測試給予了越來越多的重視,而APP的測試和傳統(tǒng)測試相比,無論是技術(shù)層面還是理論層面也都將面臨更多挑戰(zhàn)。本文通過文獻分析法,對近年來移動APP測試方法進行梳理總結(jié)。

      1 圖形用戶界面測試

      圖形用戶界面測試,又稱為GUI測試。目前,國內(nèi)外移動APP測試過程主要是模擬用戶通過圖形用戶界面(GUI)對移動設(shè)備的使用過程,比如模擬用戶的誤操作、模擬用戶同時使用手機中多個應(yīng)用程序時對手機性能的影響等[2]。用戶界面的不斷改進使得用戶操作更為方便,但也使得GUI軟件變得更加復(fù)雜,大大增加了測試難度。圖形用戶界面測試日益受到學術(shù)界和工業(yè)界的重視。然而,目前關(guān)于GUI軟件測試的研究還處于初級階段,各種標準和規(guī)范也在不斷完善中。GUI測試如表1所示。

      D.Amalfitano等[3]于2012年提出了一種使用GUI Ripping的測試方式——AndroidRipper。AndroidRipper基于一種叫作Ripper的用戶界面驅(qū)動,該驅(qū)動能夠自動地搜索應(yīng)用程序的圖形界面,其最終目標在于以一種結(jié)構(gòu)化的方式去訓練這些應(yīng)用程序。不久之后,C S Jensen等[4]于2013年提出了一種雙相的測試技術(shù),它能夠有效地在應(yīng)用程序中自動地找到事件序列并且達到測試之前所給定的目標。測試步驟為:首先建立一個應(yīng)用程序中獨立事件處理程序的索引信息;然后根據(jù)該索引信息并借助該應(yīng)用程序的一個UI模型建立事件序列。

      很多安卓GUI測試在產(chǎn)生一些隨機或是一般的測試用例方面是有效果的,但是GUI測試始終面臨著一個嚴峻的挑戰(zhàn):就是如何去發(fā)現(xiàn)一個測試用例,它在測試中很難被覆蓋但是又有很大可能出現(xiàn)問題路徑。針對這一挑戰(zhàn),Ting Su[5]于2016年提出了FSMdroid,這是一種基于模型的安卓GUI測試方法。特別是FSMdroid采用了“馬爾可夫鏈蒙特卡洛(MCMC)取樣算法”迭代地改變隨機模型,最終產(chǎn)生高代碼覆蓋率的多樣化測試用例。

      隨著自動化GUI測試要求的不斷提高,盡管人們可以通過枚舉方式列出所有可能進行組合測試。但通常是不可行的,因為這必將導(dǎo)致測試用例的數(shù)目快速膨脹。為了解決該問題,Nariman Mirzaei等[6]于同年開發(fā)了TrimDroid這一測試工具,這是一種安卓應(yīng)用的GUI測試框架,能夠以組合化可擴展方式產(chǎn)生測試用例,同時可以進行自動化程序分析。

      2 系統(tǒng)性測試

      系統(tǒng)性地分析、測試一個應(yīng)用程序是其在推出前必須經(jīng)歷的階段,如果一個應(yīng)用沒有進行較全面的系統(tǒng)測試,一些潛在問題就很有可能導(dǎo)致應(yīng)用程序運行故障。大部分測試也要求批量地采用實際設(shè)備而非模擬設(shè)備進行測試,以確保功能的完善性。

      之前很多研究主要集中在對安卓應(yīng)用程序的單元測試上,并沒有從一個體系的角度出發(fā),對其進行端對端的系統(tǒng)測試。由此,R·Mahmood等[7]開發(fā)了EvoDroid,它是一種采用演化式測試方法對Android應(yīng)用程序進行系統(tǒng)性測試的工具。演化測試(Evolutionary Testing)是搜索式測試的一種形式,其核心在于將測試用例的生成過程轉(zhuǎn)化為一個利用遺傳算法進行啟發(fā)式搜索的數(shù)值優(yōu)化問題[8]。但是其局限性在于是本地測試或是單元測試。而EvoDroid很好地克服了此問題,最終取得了較好的測試效果。

      當采用實際設(shè)備進行測試時,一些非確定性的不標準的控制流、可升縮性以及開銷限制通常使得測試過程十分艱難。并且有的測試人員并不能接觸到所有源碼,以及測試用例的覆蓋率并不高。為了解決這些問題,Tanzirul Azim等[9]開發(fā)了一種叫作A3E的測試工具,該工具可以進行強目標性的深度優(yōu)先搜索測試。這種測試的亮點在于它們在應(yīng)用程序的字節(jié)碼層,采用了一種平穩(wěn)的、感染性的數(shù)據(jù)流分析,以此來構(gòu)建一個高標準的、能夠捕捉活動切換過程中正確轉(zhuǎn)換的控制流圖,再根據(jù)該控制流圖制定出一種能夠快速地、直接地找到各種活動的策略;同時,還制定了一種深度優(yōu)先探索策略(Depth-first Exploration)以提高測試用例的覆蓋率。

      3 基于模型的移動APP測試

      一般而言,應(yīng)用程序主要依靠手動測試,這些測試通常依賴于手工創(chuàng)建和執(zhí)行測試用例來模擬應(yīng)用程序的實際使用情況。根據(jù)每種情況,測試人員必須手動輸入數(shù)據(jù),手動滑動屏幕,點擊按鈕,手動比較實際結(jié)果和預(yù)期行為。這些都帶來巨大的時間和人工成本,從而促使研究者們開始提出自動化測試的概念,因為種種技術(shù)難點,并沒有真正地實現(xiàn)“自動化”。有學者提出一種“基于模型的應(yīng)用測試”的觀點,正是因為基于模型的測試(MBT)在非移動端的測試取得了良好效果,因此很多學者認為其在移動端可能也具有獨特優(yōu)勢。endprint

      在基模測試的流程里,主要步驟不再是測試設(shè)計,而是如何設(shè)計一個高效合理的測試模型。因為最終基模測試工具將從一個由用戶指定的測試模型中生成測試用例[10]。如果要得到測試覆蓋率高的測試用例,就必須在測試模型的設(shè)計上進行更為全面的考量?;y試主要流程如圖1所示,首先根據(jù)需求設(shè)計建立模型,這需要花費較長時間,之后模型將自動生成測試用例,包括測試序列和期望輸出,然后用這些測試用例去檢測和核實待測系統(tǒng),每次嘗試都及時予以反饋,這里也體現(xiàn)了基模測試的優(yōu)勢,即只需要將失敗的結(jié)果反饋給模型或是需求,再對模型進行修正即可,降低了維護成本。

      Vignir Gudmundsson等[11]也就此方面也做了一些研究佐證,他們挑選了一個最具代表性的Android應(yīng)用程序QuizUp進行測試,最終結(jié)果顯示,基模測試也能很好地適應(yīng)于移動端,并且能夠發(fā)現(xiàn)一些用傳統(tǒng)測試方法很難發(fā)現(xiàn)的問題。Guilherme de Cleva Farto等[12]在2015年提出了結(jié)合ESG(Event Sequence Graph)建模技術(shù)的基模測試方法,他們采用ESG設(shè)計測試模型很好地表現(xiàn)了手機應(yīng)用在被測試時所體現(xiàn)的特性。Janne Merilinna等[13]利用基模測試方法對手機應(yīng)用產(chǎn)生測試用例的可能性進行了深入研究,他們開發(fā)了一種特定領(lǐng)域的建模語言以及一個咖啡機代碼生成器的實例,并應(yīng)用基模測試為其產(chǎn)生測試用例,最終結(jié)果顯示這種可能性是存在的。

      4 其它測試方法

      除了上文所提及的測試方法,還有許多學者就移動APP測試提出了自己的觀點。Joseph Chan Joo Keng等[14]提出了MAMBA,即一種檢查Android應(yīng)用隱私的測試手段。MAMBA根據(jù)程序字節(jié)碼的靜態(tài)分析,執(zhí)行路徑搜索用戶事件回調(diào)函數(shù)生成的控制流圖?;谝呀?jīng)發(fā)現(xiàn)的路徑,它可以生成由觸發(fā)應(yīng)用執(zhí)行的用戶事件所組成的測試用例,并迅速轉(zhuǎn)換應(yīng)用程序的活動,揭示應(yīng)用程序中潛在的隱私數(shù)據(jù)訪問。

      當前,Android設(shè)備的型號眾多,如何從龐大的設(shè)備型號中選出適合特定應(yīng)用程序的設(shè)備,常讓開發(fā)者們?yōu)殡y。針對這一問題,Xuan Lu等[15]提出了PRADA,它是一種能夠為每個應(yīng)用程序選擇適合它的安卓設(shè)備,并采用優(yōu)先排序方法,該方法主要是基于大規(guī)模用戶數(shù)據(jù)的挖掘。PRADA采用協(xié)同過濾技術(shù)去預(yù)測一個應(yīng)用程序在不同設(shè)備上的使用情況,盡管此應(yīng)用程序可能還沒有真正地投入市場使用。

      Android設(shè)備硬件資源有限,過度消費資源可能會導(dǎo)致系統(tǒng)崩潰、響應(yīng)性差、電池消耗過度以及消極的用戶體驗等問題。由此,Hailong Zhang等[16]提出了一種自動探測安卓應(yīng)用資源缺陷的方法。

      5 結(jié)語

      移動平臺用戶基數(shù)的不斷擴大和市場準入規(guī)則的參差不齊,導(dǎo)致大量具有質(zhì)量問題,乃至于安全隱患的移動應(yīng)用產(chǎn)品涌入市場,將對用戶的隱私、財產(chǎn)造成威脅。這時,對移動應(yīng)用的質(zhì)量把控就被提升到了一個舉足輕重的地位。有別于PC端應(yīng)用,移動APP對網(wǎng)絡(luò)條件、適配、用戶體驗等方面提出了更高的要求。總結(jié)現(xiàn)有文獻發(fā)現(xiàn),移動APP測試未來的發(fā)展趨勢可能是:①為了解決需求更新速度快、各種軟件版本管難度大的問題,敏捷測試的方式將更為合適;②目前的移動APP測試尚未實現(xiàn)完全自動化,為了節(jié)約資源成本,實現(xiàn)全面自動化測試需要提上日程;③當前很多應(yīng)用在不同網(wǎng)絡(luò)環(huán)境、設(shè)備型號上運行所產(chǎn)生的差異性也是測試的一個難點。本文主要對圖形用戶界面測試、系統(tǒng)性測試、基模測試等方面的測試方法進行了分析總結(jié),以期為之后的移動引用測試提供理論基礎(chǔ)和新的思考方向。

      參考文獻:

      [1] 中國互聯(lián)網(wǎng)絡(luò)信息中心.中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告[EB/OL].[2017-1].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201701/P020170123364672657408.pdf.

      [2] 葉強.基于無縫移動引擎(SME)的手機自動測試接口技術(shù)的研究與實現(xiàn)[D].北京:北京交通大學,2007.

      [3] AMALFITANO D,F(xiàn)ASOLINO A R,TRAMONTANA P,et al.Using gui ripping for automated testing of android APPlications[J].Ase,2012,43(9):258-261.

      [4] JENSEN C S,PRASAD M R.Automated testing with targeted event sequence generation[C].Proceedings of the 2013 International Symposium on Software Testing and Analysis International Symposium on Software Testing and Analysis,2013:67-77.

      [5] SU T.FSM droid:guided gui testing of android APPs[C].Proceedings of the 38th International Conference on Software Engineering Companion,2016:689-691.

      [6] MIRZAEI N,GARCIA J,BAGHERI H,et al.Reducing combinatorics in gui testing of android APPlications[C].Proceedings of the 38th International Conference on Software Engineering,2016:559-570.endprint

      [7] MAHMOOD R,MIRZAEI N,MALEK S.Evodroid:segmented evolutionary testing of android APPs[C].Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering,2014:599-609.

      [8] 謝曉園,許蕾,徐寶文.演化測試技術(shù)的研究[J].計算機科學與探索,2008,2(5):449-466.

      [9] AZIM T,NEAMTIU I.Targeted and depth-first exploration for systematic testing of android APPs[J].Acm Sigplan Notices,2013,48(10):641-660.

      [10] 馬云云,王金波,張弢,等.基于模型的方法在軟件測試領(lǐng)域的應(yīng)用與發(fā)展[J].計算機系統(tǒng)應(yīng)用,2016,25(6):274-278.

      [11] GUDMUNDSSON V,LINDVALL M,ACETO L,et al.Model-based testing of mobile systems[Z].an empirical study on quizup android APP,2016:16-30.

      [12] FARTO G D C,ENDO A T.Evaluating the model-based testing approach in the context of mobile applications[J].Electronic Notes in Theoretical Computer Science,2015,314(C):3-21.

      [13] MERILINNA J,PUOLITAIVAL O P.Using model-based testing for testing application models in the context of domain-specific modelling[J].Oopsla Workshop on Domain,2009.

      [14] KENG J C J,JIANG L,WEE T K,et al.Graph-aided directed testing of android applications for checking runtime privacy behaviours[C].Proceedings of the 11th International Workshop on Automation of Software Test,2016:57-63.

      [15] LU X,LIU X,LI H,et al.Prada:prioritizing android devices for APPs by mining large-scale usage data[C].Proceedings of the 38th International Conference on Software Engineering,2016:3-13.

      [16] ZHANG H,WU H,ROUNTEV A.Automated test generation for detection of leaks in android applications[C].Proceedings of the 11th International Workshop on Automation of Software Test,2016:64-70.endprint

      猜你喜歡
      移動APP移動平臺軟件測試
      基于OBE的軟件測試課程教學改革探索
      計算機教育(2020年5期)2020-07-24 08:53:20
      EXCEL和VBA實現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      基于移動式培訓評估系統(tǒng)的培訓閉環(huán)管理研究與探索
      信息技術(shù)環(huán)境下會計專業(yè)教學模式的構(gòu)建
      基于移動平臺的電力營銷系統(tǒng)應(yīng)用探析
      數(shù)字化校園中統(tǒng)一移動平臺的實踐與探索
      基于互聯(lián)網(wǎng)+環(huán)境下大學生自主學習移動平臺設(shè)計的研究
      軟件測試工程化模型及應(yīng)用研究
      高校學習者對日語學習APP使用狀況的研究調(diào)查
      考試周刊(2016年33期)2016-05-28 17:47:04
      盘锦市| 淄博市| 合阳县| 项城市| 东乡| 文水县| 寿光市| 那坡县| 安龙县| 大安市| 五河县| 蕲春县| 双峰县| 常德市| 平顶山市| 龙南县| 威海市| 祁东县| 德令哈市| 封开县| 湘乡市| 光泽县| 木兰县| 沧州市| 临西县| 苗栗县| 阜城县| 河北省| 陇南市| 台湾省| 肃宁县| 昌宁县| 岑巩县| 南丹县| 托克逊县| 离岛区| 久治县| 鄯善县| 中江县| 梁山县| 永寿县|