APP測試用例整理
隨著科技的發展,購物、旅遊、支付等日常衣食住行活動都離不開手機,由此衍生了很多APP。比如每天使用頻率非常高的微信、支付寶、微博、抖音、王者榮耀等等。APP測試主要進行功能測試、效能測試、自動化測試、安全性測試、相容性測試、專項測試。
APP測試流程
APP測試流程與web測試流程類似,分為如下七個階段:
1.根據需求說明書編寫測試計劃;
2.制定測試方案,主要是測試任務、測試人員和測試時間的分配;
3.測試準備,包括搭建測試環境,準備測試資料,確定測試方法;
4.測試用例的設計與編寫,進行用例評審及補充完善;
5.執行測試時首先進行冒煙測試,然後對主功能流程進行測試,包括客戶端的單個功能模組,及功能業務邏輯功能互動,迴歸測試;
6.提交測試結果,包括測試用例,測試計劃;
7.日常維護性測試;
APP測試周期可根據專案的開發週期來確定測試時間,一般測試時間為兩三週,根據專案情況以及版本質量可適當縮短或延長測試時間。
APP測試通用測試用例
型別 | 測試項 | 測試點 | ||
功能 | 註冊 |
略 |
||
登入 | 登入使用者名稱和密碼錯誤時,介面有提示資訊 | |||
使用者主動退出登入後,下次啟動APP時,應該進入登入介面 | ||||
密碼更改後,登入時是否做到了有效資料的校驗 | ||||
對於未登入狀態時,一些頁面的操作,是否做到了控制 | ||||
切換賬號登入,檢驗登入的資訊是否做到了及時更新 | ||||
一個賬號只允許登入一臺機器的軟體,需要賬號登入多個手機時,是否將原使用者踢下線,且能夠給出提示資訊 | ||||
使用者登入狀態太久,Session會過期,會出現“雖然是登入狀態,系統會提示使用者沒有登入” | ||||
登出 | 略 | |||
上傳 | 上傳的檔案是否有格式、大小要求,上傳時間是否合適 | |||
沒有上傳資料,點選上傳按鈕是否有提示 | ||||
在點選提交後,是否上傳成功,是否可以正常瀏覽 | ||||
上傳檔案後,重新整理頁面,系統是否正常處理 | ||||
上傳檔案後,多次使用回退、前進,APP是否正常響應 | ||||
圖片是否支援主流的格式(jpeg,jpg,gif,png,bpm等) | ||||
音訊檔案是否支援主流格式(mp3,wav等) | ||||
視訊檔案是否支援主流格式(mp4,wmv,avi,mov,flv,swf等) | ||||
文件檔案是否支援主流格式(doc,docx,xlsx,xls,excel等) | ||||
壓縮包檔案是否支援主流格式(zip,rar,tar,gz,7z) | ||||
是否支援單個檔案上傳或批量上傳 | ||||
上傳過程中網路中斷,是否正常處理 | ||||
檔案上傳結束後,是否有提示資訊並回到原來介面 | ||||
下載 | 下載檔案是否有檔案大小和格式要求 | |||
匯出全部資料,資料是否準確 | ||||
匯出大量資料,介面或程式是否會發生崩潰,匯出時間是否合理 | ||||
下載時同時進行其他操作是否會導致檔案損壞 | ||||
新增 | 輸入必填項,點新增按鈕,記錄是否成功新增 | |||
必填項內容不填,點新增按鈕,是否有相應提示 | ||||
內容項中輸入空格,點新增按鈕,記錄能否新增成功 | ||||
僅填寫必填項,點新增按鈕,記錄能否新增成功 | ||||
重複提交相同記錄,系統是否有相應提示 | ||||
內容項中輸入系統中不允許出現的字元、點新增按鈕,系統是否有相應提示 | ||||
內容項中輸入html,js指令碼,點新增按鈕,記錄能否新增成功 | ||||
新新增的記錄是否排列在首行 | ||||
刪除 | 選擇任意一條記錄,進行刪除,能否刪除成功 | |||
選擇不連續多條記錄,進行批量刪除,能否刪除成功 | ||||
選擇連續多條記錄,進行批量刪除,能否刪除成功 | ||||
刪除時,系統是否有確認刪除的提示 | ||||
查詢 | 預設顯示全部 | |||
單個查詢條件進行查詢,系統能否查詢出相關記錄 | ||||
多個查詢條件,進行組合查詢,系統能否查詢出相關記錄 | ||||
系統能否支援模糊查詢 | ||||
查詢條件全為空時,系統能否查詢出相關記錄 | ||||
查詢後,文字框中內容應儲存上一次查詢的條件 | ||||
查詢大量資料時,按鈕響應是否及時 | ||||
安裝 | 軟體安裝後是否可以正常執行 | |||
安裝過程中是否可以取消 |
||||
安裝空間不足時是否有相應提示 | ||||
安裝到本地還是SD卡,是否有提供選擇路徑 | ||||
是否支援第三方工具安裝 | ||||
是否支援從不同的應用市場進行下載安裝,是否可以重複安裝 | ||||
解除安裝 | 是否可以通過桌面解除安裝或通過軟體安裝包解除安裝 | |||
解除安裝是否支援取消,單擊取消後,軟體是否正常 | ||||
解除安裝檔案後,是否刪除所有的安裝資料夾 | ||||
升級 | 當客戶端有新版本時,是否有更新提示 | |||
當版本為非強制升級版時,使用者可以取消更新,老版本能正常使用,使用者在下次啟動App時,仍能出現更新提示 | ||||
當版本為強制升級版時,當給出強制更新後,使用者沒有更新時退出客戶端,下次啟動App時,仍出現強制升級提示 | ||||
線上跨版本升級後能否正常使用 | ||||
升級後資料不變(登入狀態、設定的資訊、載入的資源等) | ||||
離線 | 應用程式在本地客戶端會快取一部分資料以供程式下次呼叫,對於一些程式,離線狀態下可以瀏覽本地資料 | |||
離線時,重新整理獲取新資料時,若不能獲取新資料時,能給出友好提示 | ||||
介面的資料不提供離線檢視,系統需要給出相應提示且介面更新後無任何資料 | ||||
離線後,退出APP再開啟APP時能正常瀏覽 | ||||
離線後,切換到後臺再回到APP應用時,可以正常瀏覽 | ||||
離線後,鎖頻後再解鎖回到應用前臺,可以正常瀏覽 | ||||
推送 | 略 | |||
互動 | 略 | |||
網路 | 略 | |||
安全 | 許可權 | 傳送簡訊、撥打電話、連線網路,沒有網路時是否有提醒 | ||
是否允許訪問相簿、拍照、錄音、定位等 | ||||
UI | 頁面檢查 | 頁面按照UI設計原型圖實現,佈局符合使用者使用習慣 | ||
恰當的利用窗體和控制元件的空白,以及分割線條 | ||||
視窗切換、移動、改變大小時,介面顯示正常 | ||||
重新整理後,頁面顯示正常 | ||||
不同瀏覽器下渲染出來的頁面顯示正常 | ||||
不同解析度下頁面佈局顯示正常 | ||||
無許可權操作時按鈕置灰或不顯示,無法輸入的輸入框disable | ||||
無錯別字,或者提示性文字措詞恰當,準確 | ||||
頁面顯示無亂碼 | ||||
必填的控制元件,有必填提醒,如 * | ||||
控制元件(如選單、對話方塊、按鈕,單選框、複選框)的佈局、風格、是否正確,介面是否美觀,操作是否友好 | ||||
相容性 | 應用是否可以在Android和IOS兩個平臺上相容 | |||
是否相容不同的Android版本如4.1.1、4.2.1、IOS版本如8.3、9.1、10、11、12 | ||||
能否適配各種螢幕尺寸,Android系列如4.X、5.X,IOS系列如4英寸、4.8英寸、5.5英寸 |
||||
解析度適配:解析度不同,介面圖示、文字大小會不同,保證主流解析度下圖示展示完整,文字不被遮擋 | ||||
Android手機和IOS手機選取市面上主流手機即可,例如:小米、華為、vivo、oppo等;ios系統手機就是6、6s、6plus、7、8、x、xr | ||||
專項 | CPU | 略 | ||
記憶體 | ||||
流量 | ||||
耗電量 | ||||
發熱量 | ||||
FPS | ||||
GPU |
APP測試常見面試問題
一、APP的測試資源準備有哪些?
1.IOS裝置、Android裝置(選取市面上主流手機產品);
2.支付寶/銀聯支付的專案,需要提前申請支付寶/銀聯賬戶等等;
3.有秒殺專題的題目,需要規劃秒殺時間表;
4.有優惠券使用的專案,需要新增優惠券資料;
二、APP測試的穩定性如何測試?
穩定性測試這項工作是在軟體產品基本功能無缺陷後進行的一項測試工作,一般使軟體系統滿足持續執行模式,進行正常情況、臨界情況的測試,看系統是否有異常。一般使用Monkey工具,向系統傳送隨機事件流,如按鍵輸入、觸控式螢幕輸入、手勢輸入等,實現對軟體的穩定性測試。
三、APP測試與Web測試的區別?
單純從功能測試的層面上來講的話,APP 測試、web 測試在流程和功能測試上是沒有區別的。
相同點:
1.同樣的測試用例設計方法;
2.同樣的測試方法:都會依據原型圖或效果圖檢查UI;
3.測試頁面載入和翻頁的速度、登入時長、記憶體是否溢位等;
4.測試應用系統的穩定性;
不同點:
(1)系統結構方面
web專案,b/s架構,基於瀏覽器的;web測試只要更新了伺服器端,客戶端就會同步會更新。
app專案,c/s結構的,必須要有客戶端;app 修改了服務端,則客戶端使用者所有核心版本都需要進行迴歸測試一遍。
(2)效能方面
web專案 需監測 響應時間、CPU、Memory
app專案 除了監測 響應時間、CPU、Memory外,還需監測 流量、電量等
(3)相容性方面
web專案:
1. 瀏覽器(火狐、谷歌、IE等)
2. 作業系統(Windows7、Windows10、Linux等)
app專案:
1. 裝置系統:iOS(ipad、iphone)、Android(三星、華為、聯想等) 、Windows(Win7、Win8)、OSX(Mac)
2. 手機裝置可根據 手機型號、解析度、螢幕尺寸不同
(4)相對於 Wed 專案,APP有專項測試
1. 干擾測試:中斷,來電,簡訊,關機,重啟等
2. 弱網路測試(模擬2g、3g、4g,wifi網路狀態以及丟包情況);網路切換測試(網路斷開後重連、3g切換到4g/wifi 等)
3. 安裝、更新、解除安裝,中斷、前後臺切換
安裝:需考慮安裝時的中斷、弱網、安裝後刪除安裝檔案,全新安裝、升級安裝、第三方工具安裝等情況;
解除安裝:需考慮第三方工具解除安裝、直接解除安裝卸,載後是否刪除app相關的檔案;
更新:分強制更新、非強制更新、增量包更新、斷點續傳、弱網狀態下更新;
中斷:來電中斷、簡訊中斷、鬧鐘中斷、手機鎖定、手機斷電、手機宕機
4. 介面操作:關於手機端測試,需注意手勢,橫豎屏切換,多點觸控,前後臺切換
5. 安全測試:安裝包是否可反編譯程式碼、安裝包是否簽名、許可權設定,例如訪問通訊錄等
6. 邊界測試:可用儲存空間少、沒有SD卡/雙SD卡、飛航模式、系統時間有誤、第三方依賴(QQ、微信登入)等
7. 許可權測試:設定某個App是否可以獲取該許可權,例是否可訪問通訊錄、相簿、照相機等
(5)測試工具方面
自動化工具:APP 一般使用 Appium; Web 一般使用 Selenium
效能測試工具:APP 一般使用Monkey、 JMeter; Web 一般使用 LR、JMeter
四、你知道哪些APP雲測平臺?
百度雲測、testin雲測、眾測平臺等。
五、App測試中ios和Android有哪些區別呢?
1.Android長按home鍵撥出應用列表和切換應用,然後右滑則終止應用;
2.多解析度測試,Android端20多種,ios較少;
3.手機作業系統,Android較多,ios較少且不能降級,只能單向升級;新的ios系統中的資源庫不能完全相容低版本中的ios系統中的應用,低版本ios系統中的應用呼叫了新的資源庫,會直接導致閃退;
4.操作習慣:Android,Back鍵是否被重寫,測試點選Back鍵後的反饋是否正確;應用資料從記憶體移動到SD卡後能否正常執行等;
5.push測試:Android點選home鍵,程式後臺執行時,此時接收到push,點選後喚醒應用,此時是否可以正確跳轉;ios點選home鍵關閉程式和螢幕鎖屏的情況(紅點的顯示);
6.安裝解除安裝測試:Android的下載和安裝的平臺和工具和渠道比較多,ios主要有app store,iTunes和testflight下載;
7.升級測試:可以被升級的必要條件:新舊版本具有相同的簽名;新舊版本具有相同的包名;有一個標示符區分新舊版本(如版本號);
六、APP出現ANR,是什麼原因導致的?
簡單的總結有以下兩點:
1.主執行緒執行了耗時操作,比如資料庫操作或網路程式設計
2.其他程序(就是其他程式)佔用CPU導致本程序得不到CPU時間片,比如其他程序的頻繁讀寫操作可能會導致這個問題。
細分的話,導致ANR的原因有如下幾點:
1.耗時的網路訪問
2.大量的資料讀寫
3.資料庫操作
4.硬體操作(比如camera)
5.呼叫thread的join()方法、sleep()方法、wait()方法或者等待執行緒鎖的時候
6.service binder的數量達到上限
7.system server中發生WatchDog ANR
8.service忙導致超時無響應
9.其他執行緒持有鎖,導致主執行緒等待超時
10.其它執行緒終止或崩潰導致主執行緒一直等待。
七、App出現crash原因有哪些?
和App崩潰相關的幾個因素:記憶體管理錯誤,程式邏輯錯誤,裝置相容,網路因素:
1.記憶體管理錯誤:可能是可用記憶體過低,app所需的記憶體超過裝置的限制,app跑不起來導致App crash。或是記憶體洩露,程式執行的時間越長,所佔用的記憶體越大,最終用盡全部記憶體,導致整個系統崩潰。亦或非授權的記憶體位置的使用也可能會導致App crash。
2.程式邏輯錯誤:陣列越界、堆疊溢位、併發操作、邏輯錯誤。例如,app新新增一個未經測試的新功能,呼叫了一個已釋放的指標,執行的時候就會crash。
3.裝置相容:由於裝置多樣性,app在不同的裝置上可能會有不同的表現。
4.網路因素:可能是網速欠佳,無法達到app所需的快速響應時間,導致app crash。或者是不同網路的切換也可能會影響app的穩定性。