• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    ANDROID適配性自動化測試系統(tǒng)的分析與設(shè)計

    2015-10-10 08:34:24高博
    華東科技 2015年10期
    關(guān)鍵詞:測試用例腳本工程師

    文 高博

    Android系統(tǒng)的廣泛傳播得益于其開源的特性,但這一特性同時也帶來了一個比較嚴(yán)重的問題,就是設(shè)備的碎片化。

    隨著我國經(jīng)濟的持續(xù)發(fā)展以及我國一些手機研發(fā)公司的崛起,尤其近年來中興、華為、聯(lián)想、酷派等公司的發(fā)展,加上新興的小米、OPPO等手機設(shè)備公司,逐步參與手機研發(fā)體系,并期望在世界手機行業(yè)中占領(lǐng)自己一席之地。我國工信部4G牌照的發(fā)放,也使得我國手機行業(yè)迎來較快的發(fā)展。Android作為一款主流的智能設(shè)備的操作系統(tǒng),憑借開源性、拓展性、可移植性等特點席卷全球。我國已經(jīng)掌握了Android手機的基本設(shè)計與制造技術(shù),形成了一定的研發(fā)能力,近年來華為、小米等公司投入巨大的研發(fā)資源,取得了一系列創(chuàng)新成果。如由本土公司自行設(shè)計、自行研發(fā)的一些手機,正在逐步打破蘋果、三星等高端手機的壟斷。

    Android系統(tǒng)的廣泛傳播得益于其開源的特性,但這一特性同時也帶來了一個比較嚴(yán)重的問題,就是設(shè)備的碎片化。和同類產(chǎn)品相比,運行蘋果公司的iOS系統(tǒng)的設(shè)備截至目前不超過20種,而且所有的設(shè)備都是從軟件到硬件高度統(tǒng)一的。而運行Android系統(tǒng)的設(shè)備卻多達(dá)數(shù)千種,并且軟件和硬件都經(jīng)過深度定制,甚至同一廠商制造的設(shè)備都會有多達(dá)幾十種不同的軟硬件定制版本。對于Android應(yīng)用的開發(fā)者而言,這樣數(shù)量眾多的軟硬件環(huán)境,是一個巨大的挑戰(zhàn)。而應(yīng)對這種挑戰(zhàn)的重要手段,就是規(guī)?;倪m配性測試。適配性測試就是指使用同樣的一批測試用例,針對同一個測試對象,運行在不同的軟硬件平臺上,收集和分析測試結(jié)果的測試方法。

    與歐美等國家相比,我國的Android應(yīng)用程序研發(fā)水平存在一些差距,其中差距最大的就是適配性測試技術(shù)。由于多種原因,測試,特別是自動化測試受成本和技術(shù)的約束,在我國受重視程度遠(yuǎn)遠(yuǎn)不及歐美一些國家。上海盛大創(chuàng)新院等公司近年來大力推廣Android智能設(shè)備自動化測試,使得Android智能設(shè)備測試體系與技術(shù)含量等方面已經(jīng)具有一定的基礎(chǔ)。尤其是在Android智能設(shè)備適配性自動化測試取得一些成績,為此,本文將針對Android設(shè)備適配性自動化測試進(jìn)行理論研究與開發(fā)探索,力爭在Android設(shè)備適配性測試關(guān)鍵技術(shù)上有所創(chuàng)新,主要是在設(shè)備自動化管理,和測試用例的撰寫、執(zhí)行等方面取得了經(jīng)過驗證的成果,達(dá)到了Android設(shè)備適配性測試技術(shù)領(lǐng)域的先進(jìn)水平。

    系統(tǒng)功能需求分析

    本文以上海盛大研究院的Android適配性自動化測試的實際業(yè)務(wù)和項目為背景,對Android適配性自動化測試的業(yè)務(wù)需求以及系統(tǒng)功能進(jìn)行分析與定義。

    Android適配性自動化測試平臺一般由雙層Web Server系統(tǒng)、圖片比對自動化測試系統(tǒng)和可錄制編程的自動化測試系統(tǒng)組成,本文針對用戶使用習(xí)慣和邏輯,歸納總結(jié)系統(tǒng)的最主要的五個業(yè)務(wù)進(jìn)行重點討論:用戶登錄功能需求、Lab Server的功能需求、Web Server的功能需求、錄制編譯腳本模塊的功能需求、圖片比對自動化測試模塊其他相關(guān)業(yè)務(wù)也將進(jìn)行簡單分析。

    從實現(xiàn)質(zhì)量屬性可分為可用性、易用性、可測試性戰(zhàn)術(shù),主要功能具有可擴展性、穩(wěn)定性、可維護(hù)性和可操作性。

    在Android適配性自動化測試系統(tǒng)中,定義的用戶有測試工程師、測試經(jīng)理兩種身份。每個用戶有自己的職責(zé)和范圍,根據(jù)職責(zé)和范圍可對Android適配性自動化測試系統(tǒng)的相關(guān)功能進(jìn)行操作與管理。

    測試工程師

    測試工程師的用例圖如圖1所示。

    測試經(jīng)理

    測試經(jīng)理的用例圖如圖2所示。

    系統(tǒng)功能實現(xiàn)分析

    用戶登錄功能的實現(xiàn)分析

    用戶通過瀏覽器輸入IP地址,然后輸入用戶名和密碼登錄Lab Server,再由Lab Server通過Web Server登錄到Agent Server上,進(jìn)行配置Agent對應(yīng)的Android設(shè)備,根據(jù)測試用例進(jìn)行操作,然后記錄測試結(jié)果,測試結(jié)束后進(jìn)行退出當(dāng)前的測試登錄。

    用戶登錄主要功能需求是測試能否正確識別用戶輸入用戶名和密碼能登錄系統(tǒng),輸入任一錯誤的用戶名和密碼都不能登錄系統(tǒng)。另一個功能需求是測試管理員能否增刪查改等功能,對不同的用戶設(shè)置不同的權(quán)限。用戶登錄功能需求的流程如圖3所示。

    Lab Server的功能實現(xiàn)分析

    用戶通過瀏覽器輸入IP地址,然后輸入正確用戶名和密碼登錄Lab Server,再由Lab Server通過Web Server登錄到Agent Server上,進(jìn)行配置Agent對應(yīng)的Android設(shè)備,根據(jù)測試用例進(jìn)行操作,然后記錄測試結(jié)果,測試結(jié)束后進(jìn)行退出當(dāng)前的測試登錄。

    雙層Web Server模式系統(tǒng)主要體現(xiàn)為用戶通過網(wǎng)頁登錄到Lab Server之后,然后去選擇對應(yīng)連接的手機,同時通過Agent方式來訪問對應(yīng)的手機設(shè)備,而訪問Agent對應(yīng)的手機設(shè)備也是通過網(wǎng)頁方式打開,這樣做的目的就是可以通過網(wǎng)頁登錄增加手機的無限擴展,理論上只需要Server性能足夠強大。

    基于Lab server功能需求的過程如圖4所示。

    Web Server功能實現(xiàn)分析

    在雙層Web Server模式系統(tǒng),它采用了一系列的技術(shù)手段,實現(xiàn)了將觸控手機屏幕和實體按鍵的操作轉(zhuǎn)化為采用鍵盤和鼠標(biāo)操作Web上的回顯界面,并且這種操作是全雙工的(Multiplex)。全雙工的意思是,在Web界面上的操作會反饋到手機界面上,而手機上的界面變化也會反饋到Web界面上。這個功能的實現(xiàn),依賴于在內(nèi)層Web服務(wù)器上運行的一個守護(hù)進(jìn)程,這個進(jìn)程會做兩件事,一是把Web上的Web鍵盤和鼠標(biāo)事件,通過Python調(diào)用Robotium來轉(zhuǎn)化成手機觸控事件,這是從Web到手機;二是把手機屏幕不斷截屏,發(fā)回內(nèi)層Web服務(wù)器以供Web界面顯示,這個守護(hù)進(jìn)程和內(nèi)層Web服務(wù)器是兩個程序,但它們運行在同一個機器上,流程如圖5所示。

    錄制編譯腳本模塊的功能實現(xiàn)分析

    由于測試用列比較多,測試工程師手動測試耗費大量人力物力,系統(tǒng)要解決的核心問題,主要是適配性測試中的兩個問題:設(shè)備管理問題,還有測試用例數(shù)量眾多而且重復(fù)的問題。解決的手段就是自動化,這個自動化和傳統(tǒng)意義上的自動化有所不同。傳統(tǒng)意義上的自動化,僅僅指把手工執(zhí)行的用例落實成腳本,然后用執(zhí)行腳本來代替手工執(zhí)行。而本系統(tǒng)的自動化,卻是全方位的自動化。

    腳本自動化錄制傳統(tǒng)意義上的自動化測試對測試人員的要求很高,核心是要求會寫腳本,而本系統(tǒng)提供了腳本錄制功能,用戶可以執(zhí)行一些操作,這些操作就會自動地被錄制成腳本,還可以針對腳本中的任何指定部分,加上條件判斷和循環(huán)。這樣幾點加在一起就解決了測試用例眾多的問題,因為可以同時對N部設(shè)備執(zhí)行同一批腳本,還可以隨時查看結(jié)果,腳本本身還可以通過錄制而不是手寫實現(xiàn)。

    安裝和腳本運行自動化這個功能也是通過內(nèi)層Web服務(wù)器提供給用戶的,用戶只要上傳一個APK文件,這個文件就會被自動安裝,并執(zhí)行指定的一系列冒煙測試,如安裝、啟動、退出、升級和卸載等。只要上傳一個python腳本,就可以執(zhí)行這個腳本包含的任意內(nèi)容,實現(xiàn)傳統(tǒng)意義上的自動化測試功能。還可以指定運行腳本的時間點,這樣就可以在夜間實現(xiàn)無人值守的自動化測試。我們首先要連接測試工程師已經(jīng)打開調(diào)試模式的ANDROID設(shè)備或模擬器,然后運行一些腳本,例如在cmd窗口中執(zhí)行命令:Monkeyrunner Monkeyrecoder.py,執(zhí)行一定的代碼后,將運行錄制腳本的程序。我們還根據(jù)總結(jié)測試工程師常用的函數(shù),寫好之后,再次編譯和嵌套錄制腳本,這樣就可以循環(huán)運行腳本,達(dá)到一些回歸測試和壓力測試的需求。流程如圖6所示。

    圖片自動比對模塊功能實現(xiàn)分析

    在手機的自動化測試,對結(jié)果的判斷是難點,最初級的辦法無非是基于圖像比對了,Monkeyrunner自身提供了一套圖像比對的機制,加載一個正確結(jié)果的圖片MonkeyRunner.LoadImageFromfile(“filepath”)。然后用sameAs來比對,當(dāng)然也可以用局部圖像比對。得到局部圖像的方法getSubImage。

    Monkey和Monkeyruner是Android提供的兩個自動化UI測試工具。它們的測試原理都通過編寫腳本,模擬用戶按鍵然后記錄響應(yīng)結(jié)果。它們最大的價值是可以做無人值守的自動化測試。具體流程如圖7所示。

    其他的功能實現(xiàn)分析

    基站衰落自動化測試系統(tǒng)除了上述主要業(yè)務(wù)以外,還有重啟基站業(yè)務(wù)、獲取基站配置數(shù)據(jù)等業(yè)務(wù)。

    測試UE在極端情況下,比如UE在運動旋轉(zhuǎn)的支架上進(jìn)行測試,測試能夠忽略電源變化的狀態(tài)圖。

    測試忽略電源變化,主要是實際測試工作的需要,不必比較,主要在圖像比較的時候,剔除電源區(qū)域的比較。

    第一步找到設(shè)備圖片的電源的位置;

    第二步進(jìn)行圖片比較時,找到設(shè)備圖片的電源的位置,進(jìn)行忽略此圖片的變化。

    區(qū)分游戲主、輔界面

    在游戲界面我們設(shè)定了游戲主界面和輔界面之分,針對主界面判定之后,我們集中比對輔界面變化和操作,這樣比對相應(yīng)會更準(zhǔn)確和更快,更能完成測試用例的操作。

    第一步在游戲測試過程中,根據(jù)圖片變化的幅度確定主、輔界面;

    第二步確定游戲界面的主、輔界面之后,同時監(jiān)控主輔界面,如主界面變化幅度不大,則會忽略主界面的比較,直接比較輔界面變化;

    第三步直到主界面變化幅度過大,則重新比較主、輔界面,進(jìn)入下一個比較流程。流程如圖8所示:

    非功能性需求的功能實現(xiàn)分析

    系統(tǒng)把手動操作變成腳本之后,需要進(jìn)行一定的修改,編譯通過之后才能運行,在實際運用過程中,由于測試工程師的自動化腳本水平參差不齊,導(dǎo)致腳步格式眾多,即使同一個功能,不同的工程師編寫風(fēng)格也不一樣,導(dǎo)致腳本不統(tǒng)一,運行效果也不一樣。同時一些函數(shù)腳本寫起來對于沒有編程背景的人來說也是比較困難的。

    本系統(tǒng)除了具備滿足功能性需求時提供的特性之外,同時通過制定測試的操作規(guī)程,盡量減少干擾,來避免非正常腳本編寫錯誤和腳本編寫不統(tǒng)一的情況的發(fā)生。

    由于適配性測試需要不同的手機或者平板等設(shè)備,同時不同的手機或者平板的生產(chǎn)廠商,系統(tǒng)版本也不相同,選擇適配性自動化操作的業(yè)務(wù)也有所不同。隨著適配性自動化業(yè)務(wù)的增長,還有會測試不同的手機或平板等設(shè)備,測試不同手機或平板等設(shè)備版本的功能。在適配性自動化測試的系統(tǒng)設(shè)計時,不僅要考慮使系統(tǒng)滿足測試工程師自動執(zhí)行用例的需求,更需要從易于擴展的思維來規(guī)劃,根據(jù)不同的手機或平板的差異,在不需要更改平臺的服務(wù)器的大的設(shè)備情況下,只需要增加被測試設(shè)備和增加外圍系統(tǒng)配置,就可以達(dá)到橫向擴展的目的。為不同手機設(shè)備的選擇和同一手機不同的手機系統(tǒng)版本,降低上層系統(tǒng)和不同手機之間的操作的耦合程度。

    基于適配性測試自動化測試系統(tǒng)是自己寫腳本開發(fā)的,不需要多指令化界面,對于測試工程師來說只需要掌握界面操作,所以對于測試工程師來說,提供配置參數(shù)較少、容易操作的界面,針對其他用戶,第一次配置好參數(shù)后,再次配置時,有數(shù)據(jù)記憶功能,符合測試工程師操作習(xí)慣,省去測試工程師的精力和時間,同時也減少測試工程師的操作失誤的可能。

    針對同一手機不同的系統(tǒng)版本,只需要參考自動化系統(tǒng)配置的手機系統(tǒng)的版本,就可以在界面上選擇對應(yīng)的系統(tǒng)版本,這樣不需要更換手機設(shè)備就能測試多個手機軟件系統(tǒng)??紤]到測試工程師操作測試任務(wù)繁重性,一般使用測試時間戳來記錄測試時間,并記錄測試log,增加便利性。同時對于測試結(jié)果,更多的讓測試工程師用圖形化界面來展示出來,一眼就看出測試結(jié)果和與歷史測試結(jié)果進(jìn)行比對。因此系統(tǒng)還需要在不增加系統(tǒng)開發(fā)工作量的前提下,需要滿足測試工程師易用性的需要。

    在增加大量的手機或平板等設(shè)備之后,需要大量的通信去調(diào)度,需要很多線程來完成多個任務(wù)的調(diào)度。在開發(fā)系統(tǒng)之前,需要充分考慮系統(tǒng)穩(wěn)定性,如果多個手機或平臺等設(shè)備線程增多等,會很耗費內(nèi)存,這樣會導(dǎo)致測試不準(zhǔn)確,系統(tǒng)和手機或平板等設(shè)備之間進(jìn)行通信,傳輸時間和傳輸效果需要考量,因此對通信過程的穩(wěn)定性要求較高,需要防止通信指令傳輸失敗,產(chǎn)生意外的后果。除此之外,圖片比較也需要一定的穩(wěn)定性,系統(tǒng)的穩(wěn)定需求對系統(tǒng)設(shè)計來說也是很重要的一個方面。

    系統(tǒng)架構(gòu)設(shè)計與實現(xiàn)

    系統(tǒng)的體系結(jié)構(gòu)

    Android適配性自動化測試系統(tǒng)的體系結(jié)構(gòu)可分為如圖9所示的四層。

    系統(tǒng)的第一層為應(yīng)用層,主要是用戶通過瀏覽器輸入IP地址,通過HTTP協(xié)議登錄到Server上,進(jìn)行測試相關(guān)操作。也可以在Server上瀏覽和查看測試結(jié)果。

    第二層為Server層,主要接受到應(yīng)用層的指令和操作,來進(jìn)行響應(yīng)和回應(yīng),這一層是系統(tǒng)的核心,主要用到的協(xié)議有HTTP,TCP,TELNET等協(xié)議。

    第三層Agent層,此層主要是橋梁連接作用,把Server層的指令通過Agent代理傳到具體制定的任一Android設(shè)備上,然后Android設(shè)備響應(yīng)再通過Agent代理傳到Server。

    第四層就是Android設(shè)備連接層,主要通過USB連接器或者直接連接到測試工程師的電腦上進(jìn)行測試的Android設(shè)備。此層主要的好處在于,在系統(tǒng)性能可以承受的許可下,擴展到許多個Android設(shè)備。

    系統(tǒng)的軟件架構(gòu)

    Android適配性自動化測試系統(tǒng)的軟件系統(tǒng)包括Lab Server、Web Server、Agent Server、圖片比對系統(tǒng)、自動化錄制編譯系統(tǒng)。Android適配性自動化測試系統(tǒng)的軟件系統(tǒng)結(jié)構(gòu)如圖10所示。

    Lab Server子系統(tǒng),用戶通過瀏覽器輸入IP地址,然后輸入正確用戶名和密碼登錄Lab Server,再由Lab server通過Web Server登錄到Agent Server上,進(jìn)行配置Agent對應(yīng)的Android設(shè)備,根據(jù)測試用例進(jìn)行操作,然后記錄測試結(jié)果,測試結(jié)束后退出當(dāng)前的測試登錄。

    雙層Web Server模式系統(tǒng)主要體現(xiàn)為用戶通過網(wǎng)頁登錄到Lab Server之后,然后去選擇對應(yīng)連接的手機,同時通過Agent方式來訪問對應(yīng)的手機設(shè)備,而訪問Agent對應(yīng)的手機設(shè)備也是通過網(wǎng)頁方式打開,這樣做的目的就是通過網(wǎng)頁登錄可以增加手機的無限擴展,理論上只要Server性能足夠強大。

    Agent Server子系統(tǒng),此系統(tǒng)主要是橋梁連接作用,把Server層的指令通過Agent代理傳到具體制定的任一Android設(shè)備上,然后Android設(shè)備響應(yīng)再通過Agent代理傳到Server。

    圖片比對子系統(tǒng)功能主要采用了Monkeyrunner技術(shù),利用Java Script與Python互相轉(zhuǎn)換的功能來達(dá)到所設(shè)計的需求和功能,用戶通過Web Server進(jìn)行操作一個動作,Web把操作的一個動作轉(zhuǎn)換成一個指令;轉(zhuǎn)換成一個指令后,傳給Executor,而傳給Executor通過Agent server來控制設(shè)備UE;設(shè)備UE接到Executor傳輸?shù)闹噶詈?,進(jìn)行執(zhí)行指令的操作,并把操作后的結(jié)果通過Agent傳給Executor;操作后的結(jié)果通過Agent傳給Executor之后,Executor通過截圖軟件,把設(shè)備UE的操作和響應(yīng)結(jié)果的圖片返回給Web Server;Web Server接到操作和響應(yīng)結(jié)果的圖片之后進(jìn)行比對,然后進(jìn)行下一個操作。

    自動化編譯子系統(tǒng),主要分腳本錄制器和自動編輯功能。測試工程師搭建測試環(huán)境;測試工程師手動操作,這個時候錄制手動操作并記錄代碼;根據(jù)手動操作的測試用例,推薦匹配的函數(shù),如重啟多少次等;如果不使用推薦函數(shù),則需要測試工程師手動完成編譯,并生產(chǎn)測試用例;如使用推薦函數(shù),可以自動編譯,自動運行腳本,開始編譯,編譯通過之后并生產(chǎn)測試用例;腳本錄制完成后,開始下一個錄制腳本的測試用例。設(shè)定的測試用例錄制完成。結(jié)束。等待自動化測試。

    結(jié)論

    本文對Android適配性自動化測試系統(tǒng)的功能需求進(jìn)行了細(xì)致地分析,確定具體的功能方面的設(shè)計、開發(fā)與實現(xiàn)的要求與標(biāo)準(zhǔn);之后對重點設(shè)計了Android適配性自動化測試系統(tǒng)的體系架構(gòu)、軟件架構(gòu)進(jìn)行了詳細(xì)分析與設(shè)計。

    猜你喜歡
    測試用例腳本工程師
    酒駕
    《機械工程師》征訂啟事
    Kenoteq的工程師研發(fā)環(huán)保磚塊
    英語文摘(2021年10期)2021-11-22 08:02:40
    安奇奇與小cool 龍(第二回)
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    青年工程師
    安徽建筑(2020年4期)2020-05-23 01:37:12
    數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
    電子測試(2018年14期)2018-09-26 06:04:24
    基于混合遺傳算法的回歸測試用例集最小化研究
    快樂假期
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    佛学| 资源县| 准格尔旗| 西安市| 宿松县| 北碚区| 汪清县| 同德县| 井研县| 公主岭市| 将乐县| 湖州市| 若尔盖县| 武清区| 含山县| 玉溪市| 根河市| 东乡县| 惠来县| 亚东县| 西贡区| 紫云| 库车县| 怀来县| 偏关县| 固阳县| 固安县| 汉沽区| 凤山市| 山阳县| 兴和县| 万年县| 涪陵区| 凤翔县| 同心县| 汉源县| 秦安县| 鹤峰县| 泽州县| 子洲县| 广东省|