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