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