陳夢珂 戴平
摘 要 近年來,App發(fā)展已進(jìn)入競爭日趨激烈階段,由最初級的簡易型應(yīng)用程序發(fā)展到現(xiàn)在復(fù)雜多樣化。目前App開發(fā)大多采用迭代開發(fā)模式,版本更新速度快,測試周期短,測試工作難。文章從測試流程方面進(jìn)行闡述移動App測試過程及主要測試活動。
關(guān)鍵字 移動App 測試流程 探索測試
中圖分類號 TP3 文獻(xiàn)標(biāo)識碼 A 文章編號 1674-6708(2018)209-0145-02
隨著科技的進(jìn)一步發(fā)展,智能手機(jī)已經(jīng)成為個人通信、網(wǎng)絡(luò)、生產(chǎn)力和企業(yè)盈利的新標(biāo)準(zhǔn)和必備產(chǎn)品。如果一款新研發(fā)的產(chǎn)品不經(jīng)過測試就急于上市,不僅是發(fā)生信息安全問題,就連相對而言較輕的閃退、卡死卡頓、黑屏白屏等兼容性問題,給產(chǎn)品帶來的影響也是極大的。因此測試的工作在App運(yùn)營過程中必須得到進(jìn)一步的重視。文通過文獻(xiàn)分析法及多年App測試工作經(jīng)驗(yàn),對實(shí)際工作中移動App的測試流程工作進(jìn)行梳理和總結(jié)如下。
1 App測試流程
手機(jī)上的App分為基于HTML5的App(類似于b/S架構(gòu))和本地App(類似于C/S架構(gòu))所以測試上我們也可以充分吸收Web的b/s和c/s測試經(jīng)驗(yàn)。但是不同于PC上的應(yīng)用測試,手機(jī)上的測試有其獨(dú)特性。常見的移動App測試流程如圖1。
1.1 測試計劃制訂
測試計劃階段處于測試的先期準(zhǔn)備工作階段,在該階段中主要對測試工作做出整體計劃安排,在此之前需要進(jìn)行需求分析,對產(chǎn)品需求規(guī)格進(jìn)行需求測試,將要測試的產(chǎn)品分解成可獨(dú)立測試的單元,為每個測試單元確定采用的測試技術(shù)。然后明確測試目的,設(shè)定測試范圍、安排測試進(jìn)度、制定測試策略,準(zhǔn)備測試資源、預(yù)測項(xiàng)目風(fēng)險等。在制定項(xiàng)目計劃時,應(yīng)參照項(xiàng)目交付的進(jìn)度,客觀分析個模塊的工作量,以保證計劃質(zhì)量。該階段的產(chǎn)物是《測試計劃》文檔一般由測試經(jīng)理完成,文檔經(jīng)過項(xiàng)目組成員評審后定稿,作為測試工作開展的指導(dǎo)綱領(lǐng),也是評估測試工作成果的主要依據(jù)。
1.2 測試設(shè)計階段
測試設(shè)計階段主要工作是把用戶需求轉(zhuǎn)化成測試需求,并通過黑盒測試方法如等價類邊界值、因果圖判定表、場景法、錯誤推斷法等,設(shè)計詳細(xì)測試策略,確定測試類型,App常見測試類型包括:功能測試、安裝卸載測試、兼容測試、性能測試等,每一種測試類型都需要制定詳細(xì)測試策略及準(zhǔn)備測試工具和測試資源,最后編寫測試框架或者測試用例。
由于App開發(fā)周期短,版本迭代快,一般采用測試思維導(dǎo)圖或feature lis形式羅列測試點(diǎn),詳細(xì)地描述每個單元的測試方法。測試設(shè)計階段是測試工作的靈魂,需要對該階段產(chǎn)物測試用例進(jìn)行詳細(xì)評審,評審維度包括:用例描述是否清晰,內(nèi)容是否完整,是否包含用例各個要素(輸入輸出),是否覆蓋需求中所有場景,邏輯分支及限定條件等,是否考慮到測試用例的執(zhí)行效率及可執(zhí)行率等;測試用例在項(xiàng)目組評審?fù)ㄟ^后才能進(jìn)行測試實(shí)施工作。測試用例是測試執(zhí)行的依據(jù)。測試用例一般由測試組長編寫,并分配給測試組員進(jìn)行測試執(zhí)行工作。
1.3 測試執(zhí)行階段
在App的整個生命周期中,不同的階段對Bug有效性的定義完全不同,找到App有效Bug的手段有很多種,基于產(chǎn)品設(shè)計文檔進(jìn)行功能用例編寫,然后進(jìn)行逐一驗(yàn)證,是最系統(tǒng)有效的方式。它可以精準(zhǔn)地發(fā)現(xiàn)App在核心業(yè)務(wù)上存在的缺陷。測試執(zhí)行階段,主要活動有,準(zhǔn)備并確認(rèn)測試環(huán)境,構(gòu)建和冒煙測試、實(shí)施測試,缺陷跟蹤,每日匯報測試結(jié)果。
和傳統(tǒng)的軟件測試類似,我們可以把App的測試實(shí)施行分為:冒煙測試,專項(xiàng)測試,Bug探索測試,回歸測試。
1.3.1 冒煙測試
冒煙測試是版本構(gòu)建完成后的第一步,冒煙測試也稱基本功能測試,主要驗(yàn)證App基本流程是否完整,基本功能是否實(shí)現(xiàn)(如基本注冊登錄退出功能),是否存在嚴(yán)重程度為致命的Bug。冒煙測試成功才能繼續(xù)開展測試工作,如果冒煙測試失敗,需要開發(fā)人員緊急修復(fù)重新構(gòu)建版本。
1.3.2 專項(xiàng)測試
專項(xiàng)測試建立在冒煙測試成功之后,依據(jù)測試計劃和測試用例全面的進(jìn)行功能及非功能測試。功能測試一般采用黑盒測試方法,運(yùn)行App,檢查實(shí)際運(yùn)行結(jié)果和預(yù)期結(jié)果是否一致,可以采用手工測試和自動化測試,根據(jù)項(xiàng)目組的人力資源合理安排,目前主流的自動化測試工具也比較多,現(xiàn)如Robotium、MonkeyRunner、Appium等。根據(jù)開發(fā)策略和結(jié)構(gòu),找出最適合他們環(huán)境的自動化工具。
非功能測試包括傳統(tǒng)的性能測試、兼容性測試、安全性測試、安裝卸載測試,App特有測試有:交叉事件測試、前后臺切換測試、PUSH測試、硬件環(huán)境測試等。
1.3.3 Bug探索測試
Bug探索式測試,目前最流行的是以眾測模式,跳開“用例測試”對測試路徑的規(guī)劃和結(jié)果的預(yù)期,尋找更多隨機(jī)甚至是小概率的可能性。相對于標(biāo)準(zhǔn)測試,Bug探索更需要的是“打破常規(guī)”,模擬真實(shí)用戶角度,結(jié)合團(tuán)隊測試經(jīng)驗(yàn),最大限度探索用戶使用習(xí)慣和路徑,探索復(fù)雜操作流程;真實(shí)模擬異常應(yīng)用場景及系統(tǒng)特有功能,確保主要功能使用流暢,避免影響用戶體驗(yàn)的問題,發(fā)現(xiàn)研發(fā)人員不易發(fā)覺的Bug。采用等價類測試方法、邊界值測試方法、錯誤推測法、取消測試方法、逆向測試方法、錯序測試法等測試方法。一般探索測試開展是在專項(xiàng)測試之后,發(fā)布眾測平臺,或者直接在公司內(nèi)測,收集更加全面的測試反饋,達(dá)到更好的易用性體驗(yàn)測試效果。
1.3.4 回歸測試
由于Bug的集群效應(yīng),一般情況下,開發(fā)人員每修復(fù)一個Bug,就會產(chǎn)生3~4個新Bug,發(fā)現(xiàn)Bug越多的模塊,其隱藏的Bug也越多。所以在每次版本更新的時候,都要進(jìn)行一輪回歸測試,保障所有的Bug都已經(jīng)修復(fù),并且沒有產(chǎn)生新的Bug。在版本迭代周期中,回歸測試至少執(zhí)行2輪以上,一般采取自動化工具或者腳本進(jìn)行回歸。
1.3.5 上線測試
App在經(jīng)過幾輪回歸測試之后,如果沒有新的Bug產(chǎn)生,并且用戶體驗(yàn)測試反饋較好,就可以考慮上線準(zhǔn)備了,上線測試是指發(fā)布上線后,對整個項(xiàng)目再次進(jìn)行一次完整的系統(tǒng)測試。需要檢查產(chǎn)品框架,每個模塊的功能是否有缺失或錯誤,用戶核心場景是否有邏輯問題等,驗(yàn)收產(chǎn)品交互、驗(yàn)收視覺樣式等。App上線之后需要測試人員繼續(xù)跟蹤,及時收集用戶使用反饋,不斷定位Bug,由開發(fā)人員進(jìn)行優(yōu)化升級。
1.4 測試評估階段
測試評估階段的目標(biāo)是正確評估App產(chǎn)品的質(zhì)量,確定App產(chǎn)品是否達(dá)到發(fā)布標(biāo)準(zhǔn),并形成測試報告,參與發(fā)布工作。
測試評估階段的測試報告包括:每日測試報告、版本測試報告,階段測試報告及上線測試報告等。測試評估貫穿整個測試周期,在測試執(zhí)行結(jié)束后需要及時提交測試結(jié)果,通過測試用例執(zhí)行情況、測試點(diǎn)覆蓋情況Bug優(yōu)先級分布圖,Bug數(shù)量趨勢圖、缺陷模塊圖等維度,對當(dāng)前測試版本進(jìn)行綜合評價。測試報告需要說明清楚測試覆蓋的情況,對產(chǎn)品質(zhì)量要進(jìn)行全面的評估,數(shù)據(jù)要量化,說明遺漏缺陷對系統(tǒng)質(zhì)量的影響,表明對發(fā)布的認(rèn)可或拒絕,并提出后續(xù)改進(jìn)的建議等。
到此整個移動App測試工具基本結(jié)束,后續(xù)的版本升級和維護(hù)工作依然延續(xù)此測試流程。
2 結(jié)論
移動App市場在蓬勃發(fā)展的同時,用戶對App的期望也越來越高,對產(chǎn)品的質(zhì)量要求也越來越高,目前App應(yīng)用市場良莠不齊,許多App都存在各種安全漏洞和內(nèi)測泄露,這對App測試技術(shù)的要求也越來越高。App測試未來的發(fā)展應(yīng)該以最省成本投入,最專業(yè)測試分析方法,最敏捷的測試流程,全方面模擬不同場景去探索、運(yùn)行程序以保證程序質(zhì)量。
參考文獻(xiàn)
[1]中國互聯(lián)網(wǎng)絡(luò)信息中心.中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告[EB/OL].[2017-1].http://www.cnnic.net.cn/ hlwfzyj/hlwxzbg/hl‐wtjbg/201701/P0201701233646 72657408.pdf.
[2]葉強(qiáng).基于無縫移動引擎(SME)的手機(jī)自動測試接口技術(shù)的研究與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2007.
[3]盧建軍,蘇寧.淺談收集軟件測試流程與策略[J].制造業(yè)自動化,2010(12):21-23.