(轉自網絡)前端
App測試與傳統臺式機測試相比有必定的複雜性。這些複雜性能夠被分類爲:
環境(大量的設備,各類移動OSs,適應頻繁OSs變化) 。
設備(觸摸式和非觸摸式設備,有限的內存容量,電池耗電量) 。
網絡(不一樣的網絡和運營商,在很差或無網絡的狀況下的App行爲,離線支持) 。
可用性(方向,觸摸,多觸摸,縮放,分頁和導航的侷限性,各類干擾,如來電,來電短信,鬧鐘,和低電量警報) 。緩存
1、首先是測試資源確認及準備
服務器
1.1 網絡
產品需求文檔、產品原型圖、接口說明文檔以及設計說明文檔等應齊全;併發
1.2 異步
測試設備及工具的準備:IOS和andriod不一樣版本的真機,以及相關測試工具的準備。工具
2、測試用例的設計與評審佈局
(1)根據產品需求文檔、產品原型圖等文檔,設計客戶端的通常功能測試用例;性能
(2)測試用例評審、修改與完善,評審經過後着手進入正式測試階段。測試
3、測試
(一)UI測試
(1)確保手頭的原型圖與效果圖爲當前最新版本,符合產品經理及用戶要求;
(2)測試過程當中一切以效果圖爲準,如有用戶體驗方面的建議,能夠先以郵件的形式與產品經理確認,確認經過後,能夠正式向開發提出用戶體驗方面的問題;
(3)因爲測試環境中的數據爲模擬數據,測試時必須預先考慮到正式環境中可能出現的數據類型。
(二)功能測試
(1)功能測試時主要依據編寫的功能測試用例進行軟件功能的遍歷;
(2)涉及的測試主要包括基本功能測試,安裝、卸載、運行測試,異常處理(包括網絡忽然斷開或者網速過慢、機器內存不足等異常狀況的處理)測試。
(三)中斷測試
(1)軟件運行過程當中接電話、收短信、鎖屏、鬧鈴、充電,收到通知提醒後再使用軟件,軟件應仍可正常運行使用;
(2)軟件運行時,由前臺切換到後臺,再切回前臺後,應仍可正常運行使用。
(四)兼容性及適配測試
(1)硬件的適配:不一樣手機廠商、硬件性能,不一樣屏幕大小的適配;
(2)OS版本的兼容:IOS6-9;Andriod3以上等,若是用了一些新的API在老的系統上不支持會致使crash;
(3)不一樣分辨率屏幕的適配:移動設備的分辨率多種多樣,若是APP沒有作比較合適的處理就可能會顯示很差,甚至影響功能的操做。
(4)兼容性測試必須在必定數量的真機上進行,因爲真機類型過多,尤爲Android在作兼容性測試時,能夠選取典型的幾種運用較多的真機,進行兼容性測試;
(5)另外能夠藉助開源測試testin雲測,進行更多機型的兼容性測試,testin雲測提供基本的運行狀況和一些截圖,以及簡單的測試報告,有助於擴大測試的範圍。
(五)性能測試
(1)客戶端性能測試重點關注:安裝卸載時間、啓動時間、頁面加載時間、主要功能佔用的CPU、內存、流量、耗電量等,以及與同類產品相比較是否有優點;
(2)其中頁面加載時間能夠利用Android調試工具DDMS獲取到,在DDMS裏面搜索Displayed關鍵字就能夠看到頁面加載時間;
(3)運行過程當中主要功能佔用的CPU、內存、流量等能夠藉助開源工具emmagee(適用於Android)獲取到;
(4)至於服務器端的性能,主要利用接口對服務器施加壓力,重點關注響應時間、吞吐量、併發數、事物經過率等,能夠視同工具loadrunner、jmeter進行測試。
(六)穩定性測試
(1)安卓APP的穩定性經常使用monkey命令進行測試,經過隨機事件流模擬人的操做,對檢查程序的內存溢出、空指針有很大的做用。
(2)Monkey主要用來檢測系統ANR及Crash等問題
(七)其餘
(1)驗證設備內存不足時App的表現
(2)用不一樣的支持語言驗證App行爲
(3)不一樣網絡類型間的切換驗證App的行爲
4、測試分析及測試報告輸出
以上各項測試結束後,應該造成完整的分析及報告文檔(包括buglist、性能及穩定性結果分析,版本上線風險分析等內容),輸出給各項相關人員。
5、移動端測試用例的實踐經驗
每種測試方法其實都有一個最佳測試時間,如在版本測試階段,咱們應當要先作基本功能測試,邊界分析測試和中斷,交互功能測試,快速發現bug提單給開發去快速修復,保證主體功能能夠儘快獲得保證,而不是一開始就先糾結與性能,壓力和兼容測試。一方面這類測試每每所消耗的時間會很長,下降了發現bug的速度,另外一方面先作這部分測試後,再去發現主體功能的bug,那麼在開發人員動了大量代碼以後,仍是要再執行一遍性能,壓力和兼容測試的相關用例,不只勞命傷財,效果還事倍功半。
因此在實際項目測試中,當前咱們的項目將測試內容分爲功能測試,兼容性測試,性能測試,穩定性測試四項,分別在不一樣的測試階段進行(具體排期在測試計劃時肯定):
(1)功能測試 —— 版本測試階段
(2)兼容性測試 —— 迴歸測試階段前期
(3)性能測試 —— 迴歸測試階段,版本功能穩定後執行
(4)穩定性測試 —— 貫穿整個測試階段,每晚執行monkey
總結
APP頁面類型功能的測試點,大體以下:
1. UE體驗
(1)佈局與交互圖保持一致
(2)真機效果與UE圖沒有視覺上的嚴重誤差,如字號,字體大小,加粗,字體顏色,行高,行間距,按鈕擺放位置,間隔,尺寸等。
(3)資源圖正確使用,沒有沒必要要的拉伸,壓縮或其餘效果。
(4)各類提示,文字通順不產生歧義,展現符合用戶使用習慣。
(5)動畫效果不卡頓,正常展示。
2. 頁面操做
(1)是否有防重複點擊,即連續快速點擊不會出現多個頁面或彈窗
(2)單指滑動,單指單擊,單指雙擊,單指長按,單指縮放,多指點擊
(3)搖一搖,橫豎屏切換,先後臺切換
(4)長時間使用,長時間放在後臺
3. 不一樣場景下的頁面操做
(1)不一樣網絡,弱網下的頁面跳轉,點擊響應的展示效果
(2)修改本地參數後的頁面操做展示效果,如修改日期,時間,時區,語言,鍵盤等
(3)修改系統權限後的頁面操做展示效果,如打開關閉定位,攝像,照片,通信錄等的受權等
(4)頁面操做過程當中有系統打斷,如來電,短信,鬧鐘提醒,日曆提醒,藍牙提醒,插拔數據線,插拔耳機,待機,鎖屏,低電量提醒等
(5)頁面操做過程當中進行先後臺切換,如當頁面數據交換時,有彈窗,提示框的時機進行切換容易發現問題。
(6)針對非主線程調用的接口,前端要對異常及無網絡狀況作異步處理,不提示異常且不影響主線程操做。
4. 頁面數據獲取和展示
(1)頁面是否有緩存,緩存機制是怎樣的,緩存的內容有哪些
(2)在提交頁面數據失敗後是否有重試機制,重試的接口參數是否保持不變
(3)在頁面操做過程當中,異步接口返回的內容,是否對用戶透明(客戶端兼容忽略請求返回msg)
(4)在頁面操做過程當中,對於接口返回的異常數據,客戶端需兼容,保證程序不crash。