如何做好App的測試工作
作者:嚴路
連結:https://www.zhihu.com/question/22195880/answer/93212907
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
騰訊有個平臺可以實現適配相容、伺服器壓力、效能測試、弱網路、耗電量測試等等,挺全面的。WeTest騰訊質量開放平臺,本人親測過體驗還不錯。
下面說一下測試一個App具體包括哪些方面,以及每個方面的關鍵點。
測試人員常被看作bug尋找者,但你曾想過他們實際是如何開展測試的嗎?你是否好奇他們究竟都做些什麼,以及他們如何在一個典型的技術專案中體現價值?本文將帶你經歷測試人員的思維過程,探討他們測試app時的各種考慮。本文的目的在於揭示測試人員的這一思維過程,並展示他們通常所考慮內容的廣度和深度。
本文是基於我的工作經驗而寫的,作為一名敏捷軟體開發團隊的測試經理,我一心投入測試工作。在與其他app測試專家交流的過程中,我深刻了解到app測試工作的困難。在日常工作的摸索中,我將如何做好app的測試歸結為如下內容。
(1) 非功能測試
app測試的一個重要方面是app的非功能需求。移動app在推出市場或進行進一步開發前,測試人員有一定的職責做該類需求的跟蹤工作。
早期開發階段要進行的第一個測試應該是實用性測試。通常是由alpha使用者或同事進行的。走進一家咖啡館或餐廳,問問裡面的人他們的app使用情況。讓他們看看現階段開發的第一個版本並收集反饋,看看使用者是否能很好地使用新功能,以便得出第一印象。
(2) 功能測試
每項開發的新功能都需要進行測試。app測試中功能測試是一個重要方面。測試人員應該要進行手動測試和後期的自動化測試維護。剛開始測試時,測試員必須把app當做"黑盒"一樣進行手動測試,看看提供的功能是否正確並如設計的一樣正常運作。除了經典軟體測試,像點選按鈕、提交訂單看看會發生什麼,測試員還必須執行更多功能的app測試。
除了整個手動測試過程,測試自動化對移動app也很重要。每個程式碼變化或新功能都可能影響現存功能及它們的狀態。通常手動迴歸測試時間不夠,所以測試員不得不找一個工具去進行自動化迴歸測試。現在市面上有很多自動化測試工具,有商業的也有開源的,面向各個不同平臺,如Android,iPhone,WindowsPhone7,BlackBerry以及移動Webapp。根據開發策略和結構,品質管理測試專家需找出最適合他們環境的自動化工具。
(3) 客戶端效能測試
一個App做的好不好,不僅僅只反應在功能上。被測的app在中低端機上的效能表現也很重要。比如:一個很好玩的遊戲或應用,只能在高階機上流暢執行,在中低端機上卡的不行,也不會取得好的口碑。
關於App的效能測試,我們比較關注的引數有:CPU,記憶體,耗電量,流量,FPS。同時也需關注一下App的安裝耗時和啟動耗時。
目前大家可能比較困惑的一個問題,多高的CPU,記憶體,耗電量,流量,FPS才算是符合釋出的值呢?這裡可以告訴大家,可以參考精品遊戲的一些數值,將自己研發的app與業內精品的app資料做對比。
(4) 適配相容測試
市面上目前存在的移動裝置五花八門,下圖列出過去12個月的移動裝置品牌佔比情況。
App在經過功能測試後,也需對其進行適配相容測試需要檢查的項主要有以下幾點:
(a) 在不同平牌的機型上的安裝、拉起、點選和解除安裝是否正常;
(b) 在不同的作業系統上的安裝、拉起、點選和解除安裝是否正常;
我們在實際測試中,常常會遇到下列問題:
(a) 在某個平牌某個系統上,app安裝不上;
(b) 在某個平牌某個系統上,app無法拉起;
(c) 在某個平牌某個系統上,app拉起後無響應或拉起後黑屏、花屏;
(d) 在某個平牌某個系統上,app無法順利解除安裝;
騰訊WeTest這個產品可以實現多款熱門機型的適配相容測試。
(5) 弱網路測試
App在使用的過程中,難免會遇到弱網路環境,例如在公車上、在地鐵裡。在這種情況下,常常會出現網路抖動、上行或下行超時,導致應用中出現丟包。
作為一個測試人員,我們要對app在上線前做一定場景的弱網路環境模型,並檢視app在弱網路環境下是否存在某些未知的問題。下面是我們常用的弱網路環境場景:
(a) 3G弱網路訊號場景模擬;
(b) 市區低速移動場景模擬;
(c) 郊區高速移動場景模擬;
(d) 請求迴應超時_上行超時場景模擬;
(e) 請求迴應超時_下行超時場景模擬;
(f) 網路抖動場景模擬;
這個工具也可以解決
(6) 耗電量測試
App在手機上的表現,除了功能外,app是否耗電,也是測試過程中重點要關注的一項。手機裝置在滿電的時候,這個App能玩多久;App每小時的耗電是多少;App在某個場景掛機10分鐘耗電量是多少;這些都是我們平時在耗電量測試中比較關注的點。
(7) 協議測試
模擬客戶端直接傳送協議包給伺服器,看看伺服器是否有一定的校驗,認不認客戶端發過來的資料。協議測試,主要是為了處理使用者傳送惡意協議到伺服器,騙過伺服器的校驗。
(8)安全測試
App在上線前,都需要做詳細的安全測試。安全測試主要為了檢測應用是否容易被外界破解;是否存在被惡意程式碼注入的風險;上線後外掛的風險高不高等。
(9)伺服器效能測試
伺服器效能測試,主要包含單機容量測試和24小時穩定性測試。單機容量測試,可以檢測到單機伺服器在90%的響應時間和成功率都達標的前提下,能夠承載多少使用者量。使用特定遊戲模型壓測24小時,服務無重啟,記憶體無洩漏,並且各事務成功率達標。
這個可以在WeTest入口預約。
(10)伺服器容災測試
伺服器容災測試,主要指某個服務程序奔潰掉後,是否具有自行恢復能力。比如遊戲邏輯程序消失後,是否會自動拉起;memcached崩潰時,是否會重新啟動,是否會對所有玩家有影響。這些都是app測試過程中需要考慮的因素。
(11)中斷測試
針對智慧終端應用的服務等級劃分方式及實時特性所提出的測試方法,如:App在前臺和後臺執行狀態時與來電、檔案下載、音樂收聽等關鍵運用的互動情況測試等。測試電話,簡訊,彩信,微博或其他通知進來時app的反應。
(12)上線後期的輿情跟蹤
新的app上線後,使用者對此應用的評價,存在哪些測試期間未察覺的Bug,論壇上對於該應用熱門的帖子有哪些,應用商店中該應用的口碑如何等,都是app在上線後,測試人員需要關注的點。若需要測試期間未發現的Bug,需要新測試服進行確認並根據該問題的修復。