馮 菲,楊佳愉,李天翼,于 澎
(1.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081;2.北京經(jīng)緯信息技術(shù)有限公司,北京 100081)
2013年12月,鐵路手機(jī)售票公共服務(wù)平臺(tái)(簡(jiǎn)稱:12306手機(jī)APP)正式上線,推出了Android和IOS兩個(gè)主流平臺(tái)版本的客戶端,作為窗口、自動(dòng)售票機(jī)和電話訂票等傳統(tǒng)售票渠道的補(bǔ)充,12306互聯(lián)網(wǎng)售票系統(tǒng)(簡(jiǎn)稱:12306)網(wǎng)站的延伸。系統(tǒng)推出后經(jīng)過多次版本升級(jí),累積了豐富的測(cè)試經(jīng)驗(yàn)。目前,客戶端總裝機(jī)量超過3億,已經(jīng)成為旅客購(gòu)票的重要渠道。
隨著12306 手機(jī)APP軟件的規(guī)模增大、復(fù)雜度增加以及質(zhì)量需求的提高,對(duì)其測(cè)試技術(shù)、測(cè)試質(zhì)量、測(cè)試效率提出了更高要求。平臺(tái)推出1.0版本時(shí),主要以基本功能測(cè)試、業(yè)務(wù)流程測(cè)試、UI界面測(cè)試為主;為了保證平臺(tái)的穩(wěn)定性,針對(duì)APP的后臺(tái)模塊進(jìn)行了負(fù)載、壓力、配置、并發(fā)、可靠性、失效恢復(fù)等性能測(cè)試;為了保護(hù)客戶信息和系統(tǒng)數(shù)據(jù),阻擋非法訪問,對(duì)平臺(tái)進(jìn)行了整體的安全性測(cè)試。隨著12306網(wǎng)站注冊(cè)用戶的增加、APP裝機(jī)量的迅速增長(zhǎng),在2.0版本推出時(shí),引入了兼容性測(cè)試,測(cè)試應(yīng)用在不同的機(jī)型、系統(tǒng)平臺(tái)、分辨率、網(wǎng)絡(luò)、廠商、數(shù)據(jù)的兼容性;為了保證APP在不同機(jī)型的響應(yīng)速度、資源合理占用,使用過程中與手機(jī)其他功能的正常切換,進(jìn)行了APP在手機(jī)上的性能測(cè)試和交叉事件測(cè)試。平臺(tái)推出3.0版本,為了更好地提升用戶體驗(yàn)、及時(shí)了解客戶反饋,對(duì)平臺(tái)進(jìn)行A/B測(cè)試和灰度發(fā)布。引入多種測(cè)試方法,通過對(duì)平臺(tái)進(jìn)行全面測(cè)試,修復(fù)軟件、硬件、網(wǎng)絡(luò)、應(yīng)用等各方面存在的缺陷,驗(yàn)證平臺(tái)的功能、性能、可靠性、易用性和安全性等方面能夠滿足設(shè)計(jì)需求,同時(shí)為平臺(tái)的下一次升級(jí)工作提供數(shù)據(jù)支撐[1]。
手機(jī)APP的功能測(cè)試,和常規(guī)的軟件測(cè)試一樣,要驗(yàn)證系統(tǒng)是否滿足了用戶需求說明書及相關(guān)設(shè)計(jì)文檔中的業(yè)務(wù)需求。另外,基于手機(jī)APP使用平臺(tái)的特點(diǎn),還要從APP啟動(dòng)、前后臺(tái)間的切換、免登陸、離線瀏覽、APP更新、獲取定位信息、獲取相機(jī)權(quán)限等方面進(jìn)行測(cè)試。
性能測(cè)試,主要測(cè)試 APP在極限的時(shí)間或空間特性下的狀態(tài)反應(yīng)[2]。一般包含兩個(gè)方面:(1)APP安裝、卸載及執(zhí)行各類功能操作時(shí)的響應(yīng)時(shí)間。(2)反復(fù)執(zhí)行安裝卸載或反復(fù)執(zhí)行某一功能時(shí)對(duì)手機(jī)軟硬件資源的占用情況。性能測(cè)試主要評(píng)估 APP的時(shí)間和空間特性,APP性能的好壞直接影響 APP未來的發(fā)展[3]。
手機(jī)APP兼容性測(cè)試,一般包含兩個(gè)方面:(1)APP與手機(jī)操作系統(tǒng)軟件及其它應(yīng)用程序的兼容性。(2)APP與手機(jī)硬件(不同品牌、不同的屏幕分辨率)的兼容性。
安全測(cè)試是檢查軟件中已存在的安全性、保密性措施是否有效的測(cè)試[4]。針對(duì)移動(dòng)APP的安全測(cè)試包括:安裝包測(cè)試、敏感信息測(cè)試、軟鍵盤劫持、賬戶安全、數(shù)據(jù)通信安全、組件安全測(cè)試、服務(wù)器接口[5]。
手機(jī)APP的安裝測(cè)試,一般包含應(yīng)用是否能夠正確安裝、是否能夠創(chuàng)建正確的應(yīng)用圖標(biāo)、安裝時(shí)是否能夠指定安裝位置、是否可以設(shè)置自啟動(dòng)權(quán)限等。卸載測(cè)試,一般包含卸載文件是否徹底、刪除用戶個(gè)人文件時(shí)是否會(huì)提示、系統(tǒng)及個(gè)人配置信息是否還原、是否會(huì)影響其它應(yīng)用的正常使用等。
又稱沖突測(cè)試或事件,是一個(gè)正在執(zhí)行的模塊被另一個(gè)模塊干擾的測(cè)試操作[6]。目前,智能手機(jī)的功能越來越多,手機(jī)APP的交叉事件測(cè)試也相當(dāng)重要,例如,多個(gè)APP是否能夠同時(shí)運(yùn)行、APP在前后臺(tái)間切換、APP運(yùn)行時(shí)是否能夠撥打接聽電話、發(fā)送接收短信、啟用相機(jī)、藍(lán)牙設(shè)備等。
用戶體驗(yàn)測(cè)試,要以使用者的角度測(cè)試APP是否易用,界面是否友好,菜單、操作流程是否簡(jiǎn)潔合理,盡可能地提高用戶的使用體驗(yàn)。用戶體驗(yàn)性測(cè)試的重要目的是判定軟件產(chǎn)品是否能讓用戶快速接受和使用、是否符合用戶習(xí)慣等[7]。
除了上述需要重點(diǎn)關(guān)注的測(cè)試外,還有諸如UI測(cè)試、手勢(shì)操作測(cè)試、客戶端數(shù)據(jù)庫(kù)測(cè)試等。
隨著12306手機(jī)APP功能的不斷增加,用戶群體的不斷擴(kuò)大,APP各方面的承受能力都在增加,測(cè)試難度和復(fù)雜度也隨之上升,對(duì)APP的測(cè)試包括功能、兼容性、性能和安全性等多方面測(cè)試,現(xiàn)分別從功能、性能和兼容性3個(gè)方面對(duì)12306手機(jī)APP測(cè)試進(jìn)行描述。
12306手機(jī)APP功能測(cè)試的用例設(shè)計(jì)方法包括等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、場(chǎng)景法等。場(chǎng)景法是通過設(shè)計(jì)場(chǎng)景來描述軟件,由 Rational公司提出,是黑盒測(cè)試技術(shù)中重要測(cè)試方法之一[8]。簡(jiǎn)單來說,場(chǎng)景法是通過將系統(tǒng)的業(yè)務(wù)流程或功能點(diǎn)通過場(chǎng)景來進(jìn)行描述,從而更高效地完成測(cè)試的一種方法。場(chǎng)景法包含基本流和備選。一個(gè)業(yè)務(wù)僅存在一個(gè)基本流,且基本流僅有一個(gè)起點(diǎn)和一個(gè)終點(diǎn)。備選流為除了基本流之外的各支流,包含多種不同情況[9]。
2.1.1 流程圖
以改簽為例,使用場(chǎng)景法結(jié)合相應(yīng)的業(yè)務(wù)規(guī)則對(duì)其測(cè)試過程進(jìn)行闡述。根據(jù)業(yè)務(wù)規(guī)則,繪制流程圖如圖1所示。
圖1 場(chǎng)景法流程圖
2.1.2 基本流和備選流
根據(jù)場(chǎng)景法,設(shè)計(jì)基本流和備選流,流程描述如表1所示。
表1 場(chǎng)景法基本流和備選流描述
流運(yùn)用場(chǎng)景法根據(jù)圖1和表1生成場(chǎng)景指導(dǎo)測(cè)試,場(chǎng)景舉例如下:
(1)場(chǎng)景1:基本流+E4+E7+E10
改簽原票距開車時(shí)間小于48 h,對(duì)多張車票進(jìn)行批量改簽,可選乘車日期為開車前,也可改簽開車后至票面日期當(dāng)日24:00之間,在查詢結(jié)果中選擇某個(gè)車次,提交訂單,某乘車人新票與已有車票存在行程沖突,不滿足實(shí)名制購(gòu)票規(guī)則,扣票失敗。
(2)場(chǎng)景2:基本流+E4+E9
對(duì)購(gòu)買返程優(yōu)惠的返程動(dòng)臥車票進(jìn)行批量改簽,票面日期距開車時(shí)間超過48 h,乘車日期可為預(yù)售期內(nèi)任意一天,查詢并選擇某個(gè)動(dòng)臥車次,購(gòu)買的車票仍可執(zhí)行返程優(yōu)惠,改簽核收的手續(xù)費(fèi)需按照距改簽原票票面乘車站開車的時(shí)間進(jìn)行計(jì)算,支付或退差額后,改簽成功。
(3)場(chǎng)景3:基本流+E4+E8+E11
對(duì)距開車時(shí)間大于30 min的廣深港跨境高鐵列車車票(發(fā)站不為香港西九龍)進(jìn)行批量改簽,改簽新票乘車日期可為預(yù)售期內(nèi)任意一天,查詢并選擇某個(gè)車次,提交訂單,支付訂單,廣深港跨境高鐵車票改簽不收取退差額手續(xù)費(fèi),改簽成功。
客戶端的性能是影響用戶體驗(yàn)的重要方面,移動(dòng)客戶端的性能測(cè)試指標(biāo)通常包括安裝時(shí)間、啟動(dòng)時(shí)間、CPU占用、圖形處理器(GPU)占用和內(nèi)存占用等。CPU的性能體現(xiàn)了手機(jī)的運(yùn)算能力,是標(biāo)志手機(jī)性能的主要衡量指標(biāo)。GPU的性能體現(xiàn)了手機(jī)對(duì)于圖形圖像的處理能力,GPU占用直接影響手機(jī)軟件的輸出效果。內(nèi)存占用指的是RAM,即手機(jī)的運(yùn)行內(nèi)存,是體現(xiàn)手機(jī)實(shí)際處理能力的重要指標(biāo),直接影響到手機(jī)軟件的運(yùn)行速度。
12306手機(jī)APP應(yīng)用的性能測(cè)試,也是基于上述通用指標(biāo)完成的,性能測(cè)試通常分為3個(gè)步驟:(1)設(shè)計(jì)性能測(cè)試用例,分析12306應(yīng)用的特點(diǎn),確定要測(cè)試的業(yè)務(wù)功能點(diǎn),開發(fā)測(cè)試腳本。再根據(jù)市場(chǎng)使用情況,確定待測(cè)機(jī)型,鑒于手機(jī)12306用戶基數(shù)龐大,為保證測(cè)試準(zhǔn)確性、嚴(yán)謹(jǐn)性,在選取待測(cè)機(jī)型時(shí),除了考慮覆蓋最常用的機(jī)型(如Top100)外,還會(huì)選擇一些配置較低但仍具有一定保有量的機(jī)型作為補(bǔ)充。(2)執(zhí)行性能測(cè)試,12306升級(jí)頻率高,性能測(cè)試工作量大,為了提高性能測(cè)試執(zhí)行效率,節(jié)約測(cè)試時(shí)間,在執(zhí)行手機(jī)性能測(cè)試時(shí)通過性能測(cè)試平臺(tái)同時(shí)調(diào)用多臺(tái)手機(jī)批量執(zhí)行性能測(cè)試腳本,生成測(cè)試結(jié)果。(3)分析測(cè)試結(jié)果,平臺(tái)以圖表的形式生成直觀的測(cè)試結(jié)果,為開發(fā)人員進(jìn)一步優(yōu)化提供依據(jù)。
本文選取V3.X和V4.X兩個(gè)版本的測(cè)試結(jié)果進(jìn)行比較,如表2所示。其中,安裝時(shí)間、啟動(dòng)時(shí)間和CPU占用都明顯得到了優(yōu)化,安裝時(shí)間平均值由25.5 s縮短至17.4 s;啟動(dòng)時(shí)間平均值由4.3 s縮短至1.5 s;CPU占用平均值由3.4%降低至2.6%。GPU占用和內(nèi)存占用還有優(yōu)化空間,不排除與UI界面的優(yōu)化和新增功能有關(guān)。
表2 12306手機(jī)APPV3.X版本與V4.X版本性能測(cè)試結(jié)果對(duì)比
雖然業(yè)界普遍認(rèn)為,手機(jī)APP的兼容性測(cè)試是一個(gè)高成本、高耗時(shí)、低效率的工作,需要投入大量的人力、物力資源,但考慮到12306網(wǎng)站數(shù)以億計(jì)的手機(jī)用戶群體,本著用戶至上的宗旨,每次應(yīng)用升級(jí)前的兼容性測(cè)試都是重點(diǎn)工作之一。
12306手機(jī)APP的兼容性測(cè)試,通常從需求階段開始,依次分為3個(gè)階段:測(cè)試用例設(shè)計(jì)階段、執(zhí)行測(cè)試階段、應(yīng)用上線后的跟蹤測(cè)試階段。
2.3.1 測(cè)試用例設(shè)計(jì)階段
通過市場(chǎng)調(diào)研并結(jié)合歷年來積累的數(shù)據(jù),確定當(dāng)前用戶群體主流手機(jī)的系統(tǒng)平臺(tái)、廠商品牌、屏幕分辨率等數(shù)據(jù),生成APP兼容性測(cè)試矩陣,覆蓋盡可能多的手機(jī)用戶的同時(shí)減少用例的重復(fù)和冗余。
在設(shè)計(jì)用例時(shí)我們一般遵守以下原則。
(1)系統(tǒng)版本覆蓋原則:例如Android系統(tǒng)4.3以下版本和IOS系統(tǒng)8.X以下版本當(dāng)前的用戶使用率均不超過5%,使用份額小,適配難度高,如果項(xiàng)目需求中沒有明確要求支持上述版本,在設(shè)計(jì)兼容性測(cè)試用例時(shí)就暫時(shí)不予考慮。
(2)版本差異篩選原則:對(duì)于使用率較高的版本,通過分析需求設(shè)計(jì)說明書,與開發(fā)人員溝通,了解程序底層交互及接口調(diào)用關(guān)系,確定重點(diǎn)檢查的頁(yè)面和交互,如果多個(gè)版本之間的差異并無前端UI和交互變動(dòng),則可以繼續(xù)進(jìn)行優(yōu)化精簡(jiǎn),只需選取某一個(gè)版本進(jìn)行覆蓋。
(3)屏幕分辨率和尺寸覆蓋原則:盡早與開發(fā)、設(shè)計(jì)人員溝通不同分辨率下的適配方案,盡量覆蓋主流分辨率和尺寸,剔除已經(jīng)不能適配的分辨率和尺寸。
2.3.2 執(zhí)行測(cè)試階段
在測(cè)試用例設(shè)計(jì)階段,已經(jīng)設(shè)計(jì)好了兼容性測(cè)試用例,能夠保證測(cè)試用例執(zhí)行時(shí)的有效性和高效性,執(zhí)行測(cè)試時(shí)可以按照一定的策略來提高執(zhí)行效率,縮短測(cè)試周期。
(1)測(cè)試執(zhí)行過程中,不同的迭代輪次可以切換不同測(cè)試機(jī)執(zhí)行測(cè)試。
(2)在做功能測(cè)試時(shí),可以選取以前經(jīng)常出現(xiàn)兼容性問題的機(jī)型進(jìn)行測(cè)試覆蓋,盡早發(fā)現(xiàn)更多的兼容性問題。
(3)利用一些測(cè)試工具,如STF(TesterHome)平臺(tái)提高測(cè)試機(jī)的利用率,通過PC端遠(yuǎn)程控制測(cè)試機(jī)的方式提高測(cè)試執(zhí)行效率。
(4)利用第3方測(cè)試平臺(tái)進(jìn)行兼容性測(cè)試,可以輕松完成數(shù)百種常用機(jī)型的覆蓋,得到事半功倍的效果。
2.3.3 上線后跟蹤測(cè)試
12306手機(jī)APP上線后,需要進(jìn)行持續(xù)的跟蹤測(cè)試,收集廣大用戶的反饋意見,及時(shí)發(fā)現(xiàn)系統(tǒng)上線前未能發(fā)現(xiàn)的兼容性問題,例如,在某些特殊型號(hào)上出現(xiàn)的閃退、無法安裝、無法運(yùn)行等問題,及時(shí)進(jìn)行問題分析總結(jié),并補(bǔ)充到兼容性測(cè)試用例矩陣中,為后續(xù)版本的測(cè)試打好基礎(chǔ)。另外,還需時(shí)刻關(guān)注主流手機(jī)廠商推出的新版本系統(tǒng),迅速與12306手機(jī)APP應(yīng)用進(jìn)行適配性測(cè)試,適應(yīng)市場(chǎng)的變化,提升用戶體驗(yàn)。
除了傳統(tǒng)的測(cè)試方法,12306手機(jī)APP還進(jìn)行了A/B測(cè)試,為頁(yè)面改版、功能設(shè)計(jì)、業(yè)務(wù)優(yōu)化等提供了數(shù)據(jù)支持。所謂A/B測(cè)試,就是對(duì)同一個(gè)優(yōu)化目標(biāo)制定兩個(gè)方案,讓一部分用戶使用A方案,同時(shí)另一部分用戶使用B方案,統(tǒng)計(jì)并比對(duì)AB兩個(gè)方案的轉(zhuǎn)化率、點(diǎn)擊量、留存量等指標(biāo),以判斷不同方案的優(yōu)劣進(jìn)行決策。簡(jiǎn)單地說,A/B測(cè)試是一種用于提升產(chǎn)品轉(zhuǎn)化率、優(yōu)化獲得客戶成本的數(shù)據(jù)決策方法。
以12306 手機(jī)APP的“鐵路暢行”功能為例,“鐵路暢行”推出的目的是將12306網(wǎng)站的注冊(cè)用戶轉(zhuǎn)化為鐵路的積分用戶,積分用戶可以用積分購(gòu)買鐵路產(chǎn)品。設(shè)計(jì)團(tuán)隊(duì)設(shè)計(jì)了兩種方案:(1)A方案,將“鐵路暢行”作為二級(jí)菜單放在了“我的12306”下,這種方案對(duì)于APP首頁(yè)無變動(dòng);(2)B方案,將“鐵路暢行”放在了首頁(yè),并將主要功能以BUTTON的形式顯示在主頁(yè)面上,如圖2所示。
通過測(cè)試配置,分別為兩個(gè)方案分配了100萬的外部用戶,經(jīng)過7天左右的實(shí)驗(yàn)觀察,數(shù)據(jù)顯示,A方案用戶中由普通用戶轉(zhuǎn)化為積分用戶的不足0.34%,B方案用戶的轉(zhuǎn)化率達(dá)到了2.97%。為防止樣本隨機(jī)性帶來的偏差,第2次分配了100萬的不同用戶,這次,A方案的用戶轉(zhuǎn)化率為0.38%,B方案的用戶轉(zhuǎn)化率為3.01%?;谶@個(gè)實(shí)驗(yàn)結(jié)果,最終選擇了版本B推送給了全部用戶,顯著提升了積分用戶的轉(zhuǎn)化率。
圖2 A/B方案界面圖
本文基于12306手機(jī)APP測(cè)試工作中的具體實(shí)踐,結(jié)合當(dāng)前手機(jī)APP測(cè)試的一般方法,闡述了這些測(cè)試方法在12306手機(jī)APP測(cè)試中的運(yùn)用與升華。有效地發(fā)現(xiàn)了系統(tǒng)在軟件、硬件、網(wǎng)絡(luò)、應(yīng)用等各方面存在的缺陷,提高了系統(tǒng)的整體質(zhì)量,驗(yàn)證和確認(rèn)了系統(tǒng)的功能、性能、可靠性、易用性和安全性。