敬宗儒
(德勤勤躍數(shù)字科技(上海)有限公司,上海 200120)
隨著移動互聯(lián)網(wǎng)的高速發(fā)展,人們對于移動應(yīng)用軟件的需求呈現(xiàn)爆發(fā)式增長。近幾年來,我國的移動應(yīng)用軟件開發(fā)能力大大提高,層出不窮的各類移動應(yīng)用軟件在各行業(yè)領(lǐng)域都得到了廣泛的應(yīng)用。移動應(yīng)用軟件市場的成熟在創(chuàng)造機(jī)遇的同時也對應(yīng)用軟件質(zhì)量以及用戶使用體驗提出了更高的要求。面對應(yīng)用軟件同質(zhì)化嚴(yán)重問題,市場亟須通過提升應(yīng)用及服務(wù)質(zhì)量來形成差異化競爭,提高生存能力。根據(jù)相關(guān)數(shù)據(jù)顯示,2015 年,我國的移動應(yīng)用軟件的市場規(guī)模突破了200億美元;2017 年,移動應(yīng)用下載量達(dá)到了1600 億次。依據(jù)移動應(yīng)用市場報告統(tǒng)計與預(yù)測數(shù)據(jù)顯示,2021 年,全球移動應(yīng)用市場規(guī)模達(dá)到7893.29 億元(人民幣)。在2021-2027 預(yù)測期間內(nèi),預(yù)計全球移動應(yīng)用市場將以8.63%的復(fù)合年增長率增長,并預(yù)測至2027 年全球移動應(yīng)用市場總規(guī)模將會達(dá)到12970.5 億元。開發(fā)移動應(yīng)用所面臨主要問題是開發(fā)成本、開發(fā)周期及工作量,利用自動化測試技術(shù)可以大大縮短移動應(yīng)用軟件開發(fā)周期,加快版本的更新速度。本文將從手機(jī)應(yīng)用測試的類型、兼容性測試面臨的挑戰(zhàn)以及兩種自動化測試方法三方面展開闡述。
手機(jī)應(yīng)用軟件測試大致包括以下幾類測試:功能測試;兼容性測試;交叉事件測試,PUSH 推送測試;穩(wěn)定性測試;性能測試等,下面將列舉幾種進(jìn)行說明。
1.應(yīng)用軟件功能測試,即對移動應(yīng)用的各項功能進(jìn)行全面測試,以確定其能否通過驗證。軟件功能測試應(yīng)當(dāng)依據(jù)開發(fā)設(shè)計文檔,并結(jié)合產(chǎn)品需求來開展相關(guān)工作。例如:測試微博發(fā)布功能,應(yīng)當(dāng)考慮是否添加話題、圖片、文字長度等;發(fā)布操作的用戶體驗是否達(dá)到預(yù)期要求,圖片選擇等操作是否合理等;另外,發(fā)布微博必須與服務(wù)器發(fā)生交互,所以網(wǎng)絡(luò)因素也是要考慮的。
2.移動應(yīng)用軟件的兼容性,即為系統(tǒng)內(nèi)部發(fā)生改變、不同的環(huán)境下是否可以正常運行。例如:安卓應(yīng)用程序的兼容性能細(xì)分為兩個部分,一個是向前兼容,另一個是向后兼容[1]。若出現(xiàn)兼容性問題,會引起運行異常、功能失效、程序崩潰或卡頓等,導(dǎo)致程序無法正常的運行。所以,移動應(yīng)用軟件測試需要考慮手機(jī)分辨率、系統(tǒng)版本和手機(jī)型號等因素,另外還要考慮到不同網(wǎng)絡(luò)制式、手機(jī)硬件(手機(jī)按鈕及耳機(jī)藍(lán)牙設(shè)備)和手機(jī)軟件(定位、地圖APP 等)的兼容性。
3.APP 穩(wěn)定性測試。因為APP 是在手機(jī)操作系統(tǒng)中安裝使用,為確保軟件可以穩(wěn)定地、無差錯地運行,必須要開展穩(wěn)定性測試,這里一般都會用到Monkey 軟件,該軟件是在命令的基礎(chǔ)上運行,利用這項工具進(jìn)行長時間的運行APP,以此來檢測APP 會不會出現(xiàn)假死(ANR)或者崩潰的問題。此外,還需進(jìn)行弱網(wǎng)測試,也就是在運行軟件在網(wǎng)絡(luò)不佳的情況下,通過這種方式驗證軟件是否發(fā)出異常信號、閃退等,通常會模擬各種弱網(wǎng)環(huán)境開展測試工作,目前模擬弱網(wǎng)環(huán)境所用到的工具主要有fiddler、charles 等。
在移動APP 的各項測試中,兼容性測試尤其重要。兼容性測試,即不同應(yīng)用程序、硬件產(chǎn)品、操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境中,測試移動應(yīng)用軟件的運行情況。開展兼容性測試的目的是為確保開發(fā)出的應(yīng)用軟件能夠正常的運行,同時確保其安裝和卸載的順利。兼容性測試主要分為兩大方面:硬件和軟件。簡單來說,在硬件方面,主要測試應(yīng)用軟件與目標(biāo)硬件之間的兼容性;軟件方面,主要測試應(yīng)用軟件與主流操作版本之間的兼容性。硬件平臺是軟件運行的基礎(chǔ),無論是計算機(jī)還是嵌入式產(chǎn)品,都需要硬件平臺支持。但即使是同一類硬件(如顯卡),也有不同的生產(chǎn)廠商,因此在軟件設(shè)計的時候必須考慮如何兼容不同生產(chǎn)廠商的產(chǎn)品。軟件兼容是指待發(fā)布軟件與常用軟件在同一環(huán)境下使用時,相互之間的影響。計算機(jī)中常用的軟件有下載類軟件、即時通信類軟件、壓縮解壓類軟件、文檔編輯類軟件、位圖圖像處理類軟件、矢量圖圖像制作類軟件、動畫制作類軟件、殺毒類軟件、光盤刻錄類軟件、系統(tǒng)鏡像類軟件、多媒體播放軟件等其他類軟件。在移動應(yīng)用軟件的安裝與卸載測試完成之后,軟件將開始測試其各個運行環(huán)節(jié),運用UI 適配方式對應(yīng)用截面與初始設(shè)計的一致性展開測試。利用圖像與文字識別技術(shù),將預(yù)估條件提前設(shè)置,可以獲得精準(zhǔn)的測試結(jié)果,由此能夠更加精細(xì)地、準(zhǔn)確地定位和分析存在的問題。
不同型號、不同品牌的平板電腦、智能手機(jī),其無論是驅(qū)動程序,還是硬件及操作系統(tǒng)均存在一定的區(qū)別,為此一些移動應(yīng)用可能在某一品牌或某一型號智能手機(jī)上能夠正常運行,但無法在另一品牌或型號的設(shè)備上運行[2]。所以,為保障移動應(yīng)用能夠穩(wěn)定地運行,則需要全面測試移動應(yīng)用在各個移動設(shè)備上的兼容性?,F(xiàn)階段,我國市場的智能手機(jī)超過1.3 萬種,因為測試時間、測試成本等諸多因素的制約,無法測試全部的移動設(shè)備。所以,目前移動應(yīng)用兼容性測試需要面對的難題和挑戰(zhàn)就是如何兼顧測試成本、測試周期的同時,確保測試的質(zhì)量和測試的全面性。
現(xiàn)階段,移動應(yīng)用兼容性所面臨的難題如下所述:
1.操作系統(tǒng)碎片化嚴(yán)重。終端設(shè)備、系統(tǒng)版本的更新與升級,加之各自的差異化,導(dǎo)致碎片化的問題尤為突出,難以確保移動應(yīng)用的兼容性,開發(fā)者在開發(fā)應(yīng)用程序過程中很難發(fā)現(xiàn)一些潛在的兼容性問題,這就導(dǎo)致問題識別、確定和修復(fù)面臨著諸多困難。
2.手工測試具有一定的局限性。開發(fā)移動應(yīng)用過程中,需要在不同的設(shè)備上測試開發(fā)出的程序,整個過程需要耗費大量的時間和人力成本,且極易出現(xiàn)疏漏。當(dāng)移動應(yīng)用程序正式投入應(yīng)用,若出現(xiàn)問題開發(fā)者要及時地進(jìn)行修復(fù),這也為開發(fā)者的工作帶來了較大挑戰(zhàn)。
3.第三方庫的應(yīng)用存在諸多不確定性。一般情況下,需要通過第三方庫來實現(xiàn)移動應(yīng)用的經(jīng)濟(jì)價值,例如廣告、GooglePaly 服務(wù)等。但是,第三方庫與這些應(yīng)用程序的功能演化往往是不同步的,為此第三方庫在升級新版本時,就需要測試這些應(yīng)用功能的兼容性,以確保軟件的各項功能可以正常使用。大量應(yīng)用第三方庫,導(dǎo)致應(yīng)用程序發(fā)生兼容性的問題尤為常見[3]。一旦出現(xiàn)兼容性的問題,會導(dǎo)致程序運行異常,甚至?xí)霈F(xiàn)系統(tǒng)崩潰的情況。上述的這些問題在實踐中較為常見。為提高用戶體驗,確保移動應(yīng)用功能的正常運行,必須要解決移動應(yīng)用兼容性問題;采取傳統(tǒng)的測試方法,需要耗費大量的人力和時間成本,而采用基于云端的自動化測試方法將會大大提高測試效率,降低測試成本。
傳統(tǒng)兼容性測試手段,即為測試人員會初步確定測試的范圍,主要依據(jù)用戶的特征進(jìn)行定向選擇,首先會采購一些主流型號的手機(jī),然后搭建測試的環(huán)境,采取人工的方式進(jìn)行測試,兼容性測試包括兩個維度,一個是系統(tǒng)版本,另一個是移動設(shè)備;若需要對市面上的主流硬件設(shè)備和系統(tǒng)進(jìn)行兼容性測試,就需要購買大量的硬件,若需要全面測試這兩個維度,就需要耗費大量的人力、物力和財力,因此都是在部分主流設(shè)備上進(jìn)行全量測試,對其主要功能的用例做到全面覆蓋,主要功能用例測試則會擴(kuò)大測試的范圍,并對各個功能點的兼容性測試結(jié)果進(jìn)行手動記錄,這里可以看出人的主觀因素對測試的結(jié)果會產(chǎn)生較大的影響,其緣由是人的主觀意識對測試結(jié)果的影響較大,未采取專業(yè)化的方式展現(xiàn)最終結(jié)果,那么必定會影響到開發(fā)人員對程序的修改和調(diào)整。
傳統(tǒng)兼容性測試方法,通常會用到一些工具,且需要耗費一定的時間。該測試手段對設(shè)備的類型要求較高,需要詳細(xì)的記錄各個維度的日志,截取保存對應(yīng)圖像,因此測試的工作量較大,采用基于云端的自動化兼容測試方法,可以有效避免人工開展大量的重復(fù)性勞動,有效提高測試的效率和準(zhǔn)確性,控制整個開發(fā)的成本,縮短開發(fā)周期?;谠贫说淖詣踊嫒轀y試系統(tǒng)主要由構(gòu)建層、管理層、資源池層與物理資源層四個層級所組成。第一層級屬于應(yīng)用服務(wù)層,面向服務(wù)的對象為用戶,在Web 平臺上可以直接訪問底層資源,其主要起到封裝底層架構(gòu)與資源的作用,為此資源分配以及功能實現(xiàn)等問題無需用戶考慮。第二層是管理層,其主要用于管理資源、任務(wù)、用戶和安全;其可以保障任務(wù)的順利運行、資源配置的合理、權(quán)限及環(huán)境穩(wěn)定等。第三層能夠?qū)崿F(xiàn)抽象與管理整個平臺的物理資源,整個物理資源均封裝在資源池內(nèi),資源類型主要包括存儲、計算和設(shè)備資源。第四層為物理資源層,如存儲器、物理主機(jī)、模擬器和終端設(shè)備,屬于云端自動化兼容測試的實體層。
因為基于云端的兼容性測試平臺可以提供大量的真機(jī)與終端模擬器,所以用戶采取遠(yuǎn)程調(diào)用的手段,在調(diào)交測試項目、測試腳本的過程中用到瀏覽器,測試云就可以匯總和統(tǒng)計全部的資源,并獲得完整的兼容調(diào)度,將測試任務(wù)分配至運動,最終獲得執(zhí)行結(jié)果的報告。
目前,我國常用的云測試平臺主要有:Testin 云測、testbird、百度MTC 等,具體如下所述:
Testin 共計部署的安卓和蘋果系統(tǒng)終端分別達(dá)到了六百部和八十部,軟件開發(fā)人員將設(shè)計的應(yīng)用提交給平臺,并確定測試的機(jī)型和網(wǎng)絡(luò),那么就能完成自動化測試,整個過程不需要人工操作,包含錯誤、報警等各種測試的日志和標(biāo)準(zhǔn)測試報告會自動形成,其內(nèi)容涵蓋了中央處理器、啟動時間、截圖、內(nèi)存及日志等。目前,Testin 主要支持的系統(tǒng):Robotium、JUnit、Athrun 以及Testin SDK,不單單支持安卓系統(tǒng),還支持蘋果系統(tǒng)的自動化測試框架的只有Testin SDK。
TestBird 可以應(yīng)用在目前大部分的安卓設(shè)備、全系列所有型號的ios 終端設(shè)備上,且可以在Web 應(yīng)用、H5、Hybird 混合上運行,能夠統(tǒng)計、對比和分析數(shù)據(jù),還能夠自動形成包含錯誤、報警等各種測試日志及標(biāo)準(zhǔn)測試報告,為此在錯誤定位方面可以給開發(fā)人員帶來極大的便利。
百度移動云測試中心(MTC)部署了30 部蘋果系統(tǒng)終端,以及300 余部安卓系統(tǒng)終端,但是其對自身除外的測試腳本不予支持,這就導(dǎo)致百度移動云測試中心(MTC)的應(yīng)用范圍具有一定的局限性。
騰訊優(yōu)測(Utest)僅能用于測試安卓終端設(shè)備的兼容性,且基本滿足市面上絕大多數(shù)安卓設(shè)備的兼容性測試需求,在H5 混合應(yīng)用、游戲及應(yīng)用領(lǐng)域得到了廣泛應(yīng)用,利用遠(yuǎn)程鏈接測試設(shè)備就可以開展兼容性測試,然而其不支持測試。
阿里 MQC 共計部署的安卓和蘋果系統(tǒng)終端分別達(dá)到了一百多部和十部,支持腳本測試,但不支持人工測試,主要在阿里自主操作系統(tǒng)YunOS 中開展測試。于支持Robotium 和增強后的APPium,即為自動化測試框架,后者支持安卓和蘋果設(shè)備[4]。
隨著移動應(yīng)用市場的快速發(fā)展,應(yīng)用程序開發(fā)日益增多,其兼容性問題也會變得更加突出,有效解決兼容性問題,能夠確保開發(fā)移動應(yīng)用的順利運行,避免影響到用戶體驗,其中使用合適的兼容性測試軟件,可以提高員工的工作效率,給到客戶更有競爭力的產(chǎn)品優(yōu)勢及體驗感,同時也能通過更有效的操作減少運營成本。本文主要深入探討了兼容性測試的各項問題,同時對我國現(xiàn)有的自動化兼容性測試平臺進(jìn)行了逐一介紹,并指出各種的優(yōu)劣勢。隨著移動設(shè)備的種類日益增多,碎片化問題會變得越來越嚴(yán)重,為了滿足日漸增長的移動應(yīng)用測試的需求,開展移動應(yīng)用的兼容性測試工作迫在眉睫,且具有挑戰(zhàn)性的任務(wù)。在不久的將來,自動化測試技術(shù)不斷發(fā)展,相關(guān)的測試手段更加的成熟,自動化測試可以運用到各種移動應(yīng)用軟件的測試場景中,并且測試的成本會大大降低,測試精準(zhǔn)度也會變得越來越高。筆者堅信隨著技術(shù)的不斷發(fā)展,移動應(yīng)用兼容性測試技術(shù)可以為移動應(yīng)用市場的健康發(fā)展保駕護(hù)航。