五種最常見的移動應(yīng)用程序測試錯誤方式,如何規(guī)避?
?想你的應(yīng)用程序沒有bug? 注意了,近一半的問題都是客戶發(fā)現(xiàn)的。
為什么不是開發(fā)人員發(fā)現(xiàn)這些缺陷呢? 都怪糟糕的測試,實際上一些流行的測試策略是會破壞你的應(yīng)用程序的。
幸運的是糟糕的測試是很容易避免的。這里有五種最常見的移動應(yīng)用程序測試錯誤方式以及如何去做的例子。

1. 公測
當(dāng)應(yīng)用程序進(jìn)行公測,開發(fā)商發(fā)布警告,啟動程序,看發(fā)生什么。但本質(zhì)上,實際用戶做了beta版的測試者。
為何要避免
有幾個理由可以說明公測是危險的,首先,你無法控制用戶體驗。你只是發(fā)布了一個應(yīng)用程序,但是不知道如何響應(yīng)客戶動作,網(wǎng)絡(luò)環(huán)境以及市場需求。
這是一個巨大的風(fēng)險,如果你的用戶體驗糟糕的話,你的應(yīng)用程序口碑和你的品牌形象都會受到傷害。
其次,公測沒有一個系統(tǒng)的方法來記錄和解決問題。即使再忠實的客戶也不可能讓他們用一致的方式報告崩潰和其他問題。
一些開發(fā)商用雇傭測試人員來為他們的應(yīng)用程序做出反饋,來作為變通手段。
那么問題是?
所有的應(yīng)用程序測試者,無論是有組織的用戶還是眾包雇員,都是在不受控制,可變條件下使用應(yīng)用程序的。導(dǎo)致在德國連接3G網(wǎng)絡(luò)死機(jī)的原因與在巴西使用LTE導(dǎo)致死機(jī)的原因并沒有什么關(guān)系。
所以不要把你的程序拋在那些有可能你無法跟蹤發(fā)生了什么的地方,更不用說解決那些肯定會出現(xiàn)的問題了。
2. 接入點映射
歡迎使用接入點映射,一個理論上確實非常好的測試想法。
開發(fā)商雇傭測試人員(哦哦,我們已經(jīng)排除了一個壞的開始)來進(jìn)行公測。
但是無論何時何地,測試者都是通過繞特定區(qū)域街道開車或步行,來觀察在不同位置以及網(wǎng)絡(luò)中的執(zhí)行情況,而不是使用應(yīng)用程序。
為何要避免
接入點映射要比公測稍微可控,但是條件仍然不理想。
即使你雇傭了大量的測試人員在他們自己所在城市和社區(qū)進(jìn)行接入點映射測試,但他們最終用戶體驗還是對應(yīng)他們各自的條件。
在應(yīng)用程序使用中涉及的位置,設(shè)備以及網(wǎng)絡(luò)創(chuàng)建的一個個個性化的體驗,只適用于這個人在特定的某天時間。
換句話說,從在周三下午的托萊多使用3G網(wǎng)絡(luò)進(jìn)行應(yīng)用程序測試的Bob那里收集的任何數(shù)據(jù),都不適用于在周三上午三藩市使用Wi-fi連接網(wǎng)絡(luò)的Suzie。
接入點映射測試是一個卑鄙的測試方法,因為能感覺到不同條件下真實人的真實數(shù)據(jù)是不錯的,問題是,這些條件不能適用于所有用戶,導(dǎo)致這個方法只能是部分有效。
3. 去帶寬
一旦你意識到任何形式的公測都是不可依賴的時候,就是進(jìn)入實驗室模仿在受控環(huán)境條件下的真實條件的時候了。
許多開發(fā)商以及企業(yè)進(jìn)入測試實驗室但是走的不夠遠(yuǎn),進(jìn)行所謂什么“部分仿真測試”。仿真獲取了一些,但不是所有影響應(yīng)用的真實世界條件。
為何要避免
部分仿真往往忽略了重要的環(huán)境因素,創(chuàng)建不完整的測試并沒有捕捉到全方位的用戶體驗。
考慮到網(wǎng)絡(luò)帶寬,應(yīng)用程序通常是在靜態(tài)帶寬的條件下進(jìn)行測試,但現(xiàn)實生活中,帶寬卻很少是靜態(tài)的。用戶可以在 3G 和 4G 網(wǎng)絡(luò),4G 網(wǎng)絡(luò)和 Wi-Fi 之間互相切換來感受不斷波動的信號強度。
延遲也是一個很重要的因素——對于很多應(yīng)用程序性能這也是主要決定因素。與移動環(huán)境的其他方面一樣,延遲是高度動態(tài)的。這取決于很多因素,如路由器等網(wǎng)絡(luò)設(shè)備間的信號交換,編碼技術(shù),和網(wǎng)絡(luò)協(xié)議。
既然現(xiàn)實世界的移動環(huán)境是如此的不同,那么在實驗室中創(chuàng)建靜態(tài)條件來測試移動應(yīng)用程序還有一定價值的。
4. 忽略抖動
在一個移動應(yīng)用程序測試環(huán)境中抖動很難作為代表,靜態(tài)變量的帶寬或延遲更容易創(chuàng)建。因此一些測試淡化抖動值。
為何要避免
不考慮流媒體需求,冒著嚴(yán)重到令人失望的終端用戶體驗的風(fēng)險(更不用說失去潛在的收入和推薦)去測試你的應(yīng)用程序。
當(dāng)評價應(yīng)用程序是如何執(zhí)行的時候,需要考慮兩個關(guān)鍵領(lǐng)域:如何讓程序自身進(jìn)行操作以及如何在特定網(wǎng)絡(luò)上進(jìn)行程序操作。換一種方式,忽略抖動就意味著忽略網(wǎng)絡(luò)性能。
歸功于帶寬,視頻特別容易抖動,流媒體質(zhì)量很大程度上受位置,網(wǎng)絡(luò)類型,服務(wù)提供商和其他等因素的影響。
5. 純功能檢測
純功能檢測是開發(fā)者只測試應(yīng)用程序那些功能性的元素,并沒有將性能納入到測試過程中去。
為何要避免
一個移動應(yīng)用程序的成功不單只基于功能。
一個應(yīng)用程序的功能必須做什么(就是說,當(dāng)某個功能被選中或者某個按鈕被按下時發(fā)生什么)。一個應(yīng)用程序的執(zhí)行,另一方面,是要做的怎樣(就是說,在一個特定網(wǎng)絡(luò)上使用時要如何快速的反應(yīng))。
測試當(dāng)用戶發(fā)出命令時會發(fā)生什么是功能測試,測試應(yīng)用程序如何快速響應(yīng)要求,從另一方面是性能測試。
為獲得整體應(yīng)用程序能力的一個三維視圖,功能和性能兩個都必須進(jìn)行測試。
你當(dāng)然希望應(yīng)用程序功能正常,測試功能而不測試性能將永遠(yuǎn)得不到你的應(yīng)用程序可能(或不能)給你的全部畫面。正如我們迄今所看到的,整體應(yīng)用程序的性能很大程度受外界因素的影響,如網(wǎng)絡(luò)性能。
這就意味著,為創(chuàng)建最準(zhǔn)確的測試可能,功能,性能和外部的影響都要考慮在內(nèi)。
一定要考慮一下的內(nèi)容:
- 什么網(wǎng)絡(luò)條件是被虛擬化了的?
- 那些條件是基于實際網(wǎng)絡(luò)的么?
- 你模擬了多個網(wǎng)絡(luò)條件了么?
- 你代表的是分布式用戶群么?
最后一點至關(guān)重要,功能測試往往忽視需要虛擬化不同用戶的不同限制條件。
基于云的移動應(yīng)用程序測試也應(yīng)謹(jǐn)慎,請記住,功能云測試只是提供一個單一定位視點,并不代表整個用戶群。云測試也不能對真實的用戶如何在網(wǎng)絡(luò)上使用應(yīng)用程序給出準(zhǔn)確的畫像,因為云連接往往比家庭或者其他網(wǎng)絡(luò)的速度更快。
要采取哪些措施
所以如果要公測的話,靜態(tài)帶寬測試,部分仿真,純功能測試要避免。那怎么在往市場推出應(yīng)用程序前進(jìn)行準(zhǔn)確的測試呢?
1. 做功課
在測試你的應(yīng)用程序前有很多工作要做。
你首先要非常了解影響功能,性能和用戶體驗的各種因素。
研究網(wǎng)絡(luò)條件,基礎(chǔ)設(shè)施,用戶位置,以及一旦開始就需要考慮在內(nèi)的其他環(huán)境條件。
對于如何,何時,何地使用你的應(yīng)用程序才能幫助你創(chuàng)建一個虛擬的能準(zhǔn)確代表真實世界用戶體驗的測試環(huán)境,要有一個徹底的三維理解。
2. 去虛擬
創(chuàng)建虛擬條件包括前一步中發(fā)現(xiàn)的所有因素。
創(chuàng)建包含用戶在現(xiàn)實生活中所經(jīng)歷的各種各樣的變化的虛擬網(wǎng)絡(luò)條件是非常重要的。
你創(chuàng)建的虛擬網(wǎng)絡(luò)與功能性能工具應(yīng)該能夠無縫集成,用來進(jìn)一步提高測試的真實性與可靠性。
3. 分析與優(yōu)化
接下來是分析你的結(jié)果的時候了。尋找功能和性能兩方面的故障,以及可以歸因于網(wǎng)絡(luò)故障的任何錯誤的解決方法。
最后,開發(fā)系統(tǒng)來測試分析優(yōu)化你的應(yīng)用程序。
做正確的移動應(yīng)用測試
為了確保你的移動應(yīng)用程序的性能最佳,關(guān)鍵是要建立一個能準(zhǔn)確反映現(xiàn)實世界條件的測試環(huán)境。
- 不推出未經(jīng)事先測試的應(yīng)用程序
- 不要浪費時間與金錢在接入點映射上
- 請記住現(xiàn)實世界中的帶寬是可變的
- 考慮視頻網(wǎng)絡(luò)可能會影響應(yīng)用程序的功能和性能
- 永遠(yuǎn)要對功能和性能進(jìn)行測試
- 深入研究影響你最終用戶的環(huán)境因素
- 創(chuàng)建三維,真實世界的測試環(huán)境
- 分析你的測試結(jié)果,并持續(xù)優(yōu)化系統(tǒng)
考慮到在現(xiàn)實條件下你的應(yīng)用程序的功能和執(zhí)行,通過仿真所有這些虛擬測試條件,你就可以準(zhǔn)確有效的預(yù)測你的應(yīng)用程序一旦推出用戶體驗如何。?























