1、功能測試
1.1 啟動
APP安裝完成后,是否可以正常打開,穩定運行
APP的速度是可以讓人接受,切換是否流暢
網絡異常時,應用是否會崩潰:在請求超時的情況下,如果程序邏輯處理的不好,就有可能發生Crash。
1.2 注冊、登錄
1.2.1 賬號密碼注冊登錄
正向:輸入正確的賬號密碼、Enter鍵,可正常注冊和登錄
逆向:輸入的數據前存在空格;用戶名、密碼錯誤或漏填;已注冊用戶;是否允許多次非法登錄;是否限制次數;未注冊用戶登錄;刪除或修改后用戶登錄;是否有注銷按鈕;
逆向:密碼更改后,登錄時是否做到了有效數據的校驗:修改前的密碼失效;
逆向:未登錄時對一些頁面的操作,是否做了控制
逆向:密碼“****”展示(安全性)
逆向:賬號輸入框對最大長度和格式應有校驗(比如郵箱賬號需要郵箱格式等)
逆向:賬號或密碼輸入錯誤時建議提示“賬號或密碼錯誤”,而不是“賬號錯誤”或“密碼錯誤”
逆向:登陸后,頁面中登陸信息是否正確;
逆向:不輸入用戶密碼或者是重復點擊“確定/取消”按鈕,是否允許登陸;
逆向:支持自動登錄(記住密碼)的應用在進行數校驗時,檢查系統是否能自動登錄成功並且數據操作無誤
逆向:考慮無網絡情況下能否正常進入免登陸狀態。
逆向:檢查用戶主動退出登錄后,下次啟動APP,應停留在登錄頁面。
逆向:登錄超時時處理是否合理
逆向:頁面中是否有注銷按鈕;
逆向:密碼是否加密傳輸(可抓取請求查看)
逆向:切換賬號登錄,檢驗登錄的信息是否做到及時更新
逆向:對於多個端都進行操作時,確保數據庫操作無誤,且每個端可以及時看到數據的更新
逆向:台式機和手機的同時登錄同一賬號,多台手機的同時登錄同一賬號(檢查是否將原用戶剔除)
1.2.2 手機號注冊登錄
手機號輸入框格式校驗檢查
驗證短信的接收是否及時;
用驗證碼可正常登錄;
驗證碼錯誤時,登錄失敗+友好提示
驗證短信文案是否符合所測APP;
重復發送驗證碼,前一個驗證碼正常失效
頻繁操作驗證碼發送,應有操作限制
檢查對登陸超時(驗證碼不能用)的處理。
驗證碼有效期校驗(超過有效期無法登錄)
1.2.3 注冊
表單編輯頁面測試;
用戶名密碼長度;
注冊后的提示頁面;
前台注冊頁面和后台的管理頁面數據是否一致
注冊后,在后台管理系統中的頁面提示以及數據庫中的用戶信息是否正常;
1.3 所有功能是否能正常運行
業務邏輯測試:主要測試客戶端業務是否正常完成
功能點測試:主要測試客戶端功能點是否可以正常使用,對具體功能點一一測試,確保每個點都能正確實現相應功能。
關聯行測試:主要測試客戶端與PC端的交互,客戶端處理完后,PC端與客戶段數據一致
1.4 應用的前后台切換是否正常
APP切換到后台,再回到APP,檢查是否停留在上一次操作界面。
APP切換到后台,再回到APP,檢查功能及應用狀態是否正常。
APP切換到后台,再回到APP前台時,注意程序是否奔潰,功能狀態是否正常,尤其是對於從后台切換回前台數據有自動更新的時候。
手機鎖屏解鎖后進入APP注意是否會奔潰,功能狀態是否正常,尤其是對於從后台切換回前台數據有自動更新的時候。
當APP使用過程中有電話進來中斷后再切換到APP,功能狀態是否正常。
當殺掉APP進程后,再開啟APP,APP能否正常啟動。
出現必須處理的提示框后,切換到后台,再切換回來,檢查提示框是否還存在,有時候會出現應用自動跳過提示框的缺陷。
對於有數據交換的頁面,每個頁面都必須要進行前后台切換、鎖屏的測試,這種頁面最容易出現奔潰的現象。
1.5 數據更新
1.6 離線瀏覽
在無線網絡情況下可以瀏覽本地數據。
退出APP再開啟APP時能正常瀏覽本地數據。
切換到后台再回到前台可以正常瀏覽本地數據。
鎖屏后再解鎖回到應用前台可以正常瀏覽本地數據。
手動刷新時,是否有對連接網絡的提示
1.7 定位,照相機服務等等
1.8 時間測試
1.9 Push測試
檢查push消息是否按照指定的業務規則發送。
檢查不接收推送消息時,用戶不會再接收到push消息。
如果用戶設置了免打擾的時間段,檢查在免打擾時間段內,用戶接收不到push消息;
在非免打擾時間段內,用戶能正常接收到push消息。
當push消息是針對登錄用戶的時候,需要檢查收到的push消息與用戶身份是否相符。
不打開應用時,能否接收消息
打開應用時,能否接收消息
登錄與不登錄情況下,接收消息是否有區別
精確推送,是否只推送給指定用戶
1.10 界面測試
1.窗體
測試窗體的方法:
a,窗體大小,大小要合適,控件布局合理;
b,移動窗體.快速或慢速移動窗體,背景及窗體本身刷新必須正確;
c,縮放窗體,窗體上的控件應隨窗體的大小變化而變化;
d,顯示分辨率.必須在不同的分辨率的情況下測試程序的顯示是否正常;
進行測試時還要注意狀態欄是否顯示正確;工具欄的圖標執行操作是否有效,是否與菜單懶中圖標顯示一致;錯誤信息內容是否正確,無錯別字,且明確等等;
2.控件
月份和日期對應(比如2月有28天,7月31天)
閏年2月,應有29天
跨年時,年份應有增加。
測試方法:
a,窗體或控件的字體和大小要一致;
b,注意全角,半角混合
c,無中英文混合.
菜單,進行測試時要注意:
a,選擇菜單是否可以正常工作,並與實際執行內容一致;
b,是否有錯別字:
c,快捷鍵是否重復;
d,熱鍵是否重復;
e,快捷鍵與熱鍵操作是否有效;
f,是否存在中英文混合;
g,菜單要與語境相關,如,不同權限的用戶登陸一個應用程序,不同級別的用戶可以看到不同級別的菜單並使用不同級別的功能;
h,鼠標右鍵快捷菜單;
g,手機拍照功能可以正常顯示;
3. 文本框、按鈕等控件測試
文本框的測試
如何對文本框進行測試
a,輸入正常的字母或數字。
b,輸入已存在的文件的名稱;
c,輸入超長字符。例如在“名稱”框中輸入超過允許邊界個數的字符,假設最多255個字符,嘗試輸入 256個字符,檢查程序能否正確處理;
d,輸入默認值,空白,空格;
e,若只允許輸入字母,嘗試輸入數字;反之;嘗試輸入字母;
f,利用復制,粘貼等操作強制輸入程序不允許的輸入數據;
g,輸入特殊字符集,例如,NUL及 等;
h,輸入超過文本框長度的字符或文本,檢查所輸入的內容是否正常顯示;
i,輸入不符合格式的數據,檢查程序是否正常校驗,如,程序要求輸入年月日格式為yy/mm/dd,實際輸入yyyy/mm/dd,程序應該給出錯誤提示
在測試過程中所用到的測試方法:
1,輸入非法數據;
2,輸入默認值;
3,輸入特殊字符集;
4,輸入使緩沖區溢出的數據;
5,輸入相同的文件名;
4. 命令按鈕控件的測試
a,點擊按鈕正確響應操作。如,單擊確定,正確執行操作;單擊取消,退出窗口;
b,對非法的輸入或操作給出足夠的提示說明,如,輸入月工作天數為32時,單擊”確定“后系統應提示:天數不能大於31;
c,對可能造成數據無法恢復的操作必須給出確認信息,給用戶放棄選擇的機會;
單選按鈕控件的測試
a,一組單選按鈕不能同時選中,只能選中一個。
b,逐一執行每個單選按鈕的功能。分別選擇了“男”“女”后,保存到數據庫的數據應該相應的分別為“男”“女”;
c,一組執行同一功能的單選按鈕在初始狀態時必須有一個被默認選中,不能同時為空;
5. up-down控件文本框的測試
a,直接輸入數字或用上下箭頭控制,如,在“數目”中直接輸入10,或者單擊向上的箭頭,使數目變為10;
b,利用上下箭頭控制數字的自動循環,如,當最多數字為253時,單擊向上箭頭,數目自動變為1;反之亦適用;
c,直接輸入超邊界值,系統應該提示重新輸入;
d,輸入默認值,空白。如,“插入”數目為默認值,點擊“確定”;或,刪除默認值,使內容為空,單擊“確定”進行測試;
e,輸入字符。此時系統應提示輸入有誤。
6.組合列表框的測試
a,條目內容正確,其詳細條目內容可以根據需求說明確定;
b,逐一執行列表框中每個條目的功能;
c,檢查能否向組合列表框輸入數據;
7. 復選框的測試
a,多個復選框可以被同時選中;
b,多個復選框可以被部分選中;
c,多個復選框可以都不被選中;
d,逐一執行每個復選框的功能;
8.列表框控件的測試
a,條目內容正確;同組合列表框類似,根據需求說明書確定列表的各項內容正確,沒有丟失或錯誤;
b,列表框的內容較多時要使用滾動條;
c,列表框允許多選時,要分別檢查shift選中條目,按ctrl選中條目和直接用鼠標選中多項條目的情況;
9.滾動條控件的測試
要注意一下幾點:
a,滾動條的長度根據顯示信息的長度或寬度及時變換,這樣有利於用戶了解顯示信息的位置和百分比,如,word中瀏覽100頁文檔,瀏覽到50頁時,滾動條位置應處於中間;
b,拖動滾動條,檢查屏幕刷新情況,並查看是否有亂碼;
c,單擊滾動條;
d,用滾輪控制滾動條;
e,滾動條的上下按鈕。
各種控件在窗體中混和使用時的測試
a,控件間的相互作用;
b,tab鍵的順序,一般是從上到下,從左到右;
c,熱鍵的使用,逐一測試;
d,enter鍵和esc鍵的使用;
在測試中,應遵循由簡入繁的原則,先進行單個控件功能的測試,確保實現無誤后,再進行多個控件的的功能組合的測試。
ps:密碼輸入框測試時要特別注意進行字母大寫輸入的測試。
2、UI測試
原型與效果圖對比(導航測試)
圖形測試
內容測試
3、兼容性測試(比如testin雲測平台)
與本地以及主流APP是否兼容
不同操作系統的兼容性,是否適配
不同手機屏幕分辨率的兼容性
4、交叉測試
沖突測試,即一個功能正在執行過程中,同時另外一個事件或操作對該過程進行干擾的測試
5、安裝,升級,卸載,更新
5.1 安裝、卸載測試
正向:應用是否可以正常安裝(命令行安裝;apk/ipa安裝包安裝 )(有網、無網是否都正常)
正向:APP的速度是否流暢
逆向:應用是否可以在IOS和Androoid不同系統、版本、機型上進行安裝
逆向:是否可以正常刪除(三方軟件刪除;命令行刪除;桌面刪除)
逆向:APP安裝完成后,是否可以正常打開,穩定運行
逆向:安裝過程中斷網或網絡不穩定的情況下,是否有相應提示
逆向:網絡異常時,應用是否會崩潰:在請求超時的情況下,如果程序邏輯處理的不好,就有可能發生crash
逆向:卸載過程中出現死機、重啟,斷點等意外情況,待環境恢復后是否可以繼續正常卸載
逆向:卸載是否支持取消功能,單擊取消后軟件卸載情況是否正常
逆向:安裝過程中是否可以暫停,再次點擊,是否可以繼續安裝
逆向:安裝空間不足時如何表現,是否有相應提示,提示是否友好
逆向:安裝過程中斷網或網絡不穩定的情況下,是否有相應提示
逆向:安裝在手機卡上或SD卡上(不同的IOS和安卓版本)
5.2 升級測試
5.3 更新測試
正向:客戶端有新版本時,有更新提示
逆向:取消版本后,老版本可以正常使用
逆向:當版本為非強制升級時,用戶可以取消更新,老版本能正常使用。用戶在下次啟動APP時,仍出現更新提示
逆向:APP更新后新增功能和老功能是否可以正常使用
逆向:當版本為強制更新升級時,用戶沒有做更新,退出客戶端,下次啟動APP時,仍出現強制升級提示(且無法關閉),點擊更新是否正確調整到后台配置的更新頁面
逆向:APP更新后檢查版本號應該有更新
逆向:當客戶端有新版本時,在本地不刪除客戶端的情況下,直接更新檢查是否能正常更新
逆向:當客戶端有新版本時,在本地不刪除客戶端的情況下,更新后的客戶端功能是否是新版本功能
逆向:當客戶端有新版本時,在本地不刪除客戶端的情況下,檢查資源同名文件如圖片是否有正常更新最新版本
逆向:升級安裝意外情況的測試(如死機、斷電、重啟)
逆向:強制更新(APP開啟后,自動更新APP,否則無法使用APP),多次關閉和打開APP后是否正常跳出更新彈窗,且無法關閉;點擊更新是否正確跳轉至后台配置的更新頁面
逆向:非強制更新(只提示一次更新):可以正常關閉彈窗;重啟APP更新提示按照需求再次顯示或者不再顯示;點擊更新是否正確跳轉至后台配置的更新頁面
逆向:當有新版本時,不刪除客戶端的情況下,直接更新是否成功
逆向:升級安裝意外情況的測試(如死機、斷電、重啟)
逆向:允許內網訪問的APP,在連接到外網時是否有友好提示
6、用戶體驗測試
整體產品或服務的舒適度
7、安全測試
敏感信息是否加密,用抓包工具分析
密碼是否過於檢查檢查
重要數據,如支付密碼會不會保存到設備
同一賬號在不同終端登陸,是否有提示
異地登錄是否有提示
系統會否運行多次非法登陸,是否有提示
限制或者允許使用手機某些功能
注冊的驗證碼是否重復使用,是否有超時限制
協議抓取,反編譯
8、性能測試
服務器的性能測試和手機端的性能測試
比如:CPU、內存、上傳流量、下載流量、電量使用情況等
極限測試
響應時間
壓力測試
耗電量測試
電量流量測試
一般CPU使用率與手機端電量使用率成正比,CPU使用率不能超過10%以上,流量不要超過10M以上,可以通過android手機端一些監控軟件獲取數據
CPU、內存消耗
app使用占用的CPU和內存
APP啟動時長
app啟動需要的時間
crash率
奔潰率
內存泄露
android的程序由Java語言編寫,所以android的內存管理與Java的內存管理相似。程序員通過new為對象分配內存,所有對象在java堆內分配空間,然而對象的釋放時有垃圾回收器完成的。
android的虛擬機是給予寄存器的Dalvik,它的最大堆大小一般是16M,有的機器為24M。
9、手機app測試流程
需求分析->需求評審->開發人員編寫排期->測試計划排期->編寫測試用例->用例評審->提交基線->具體測試流程->測試通過
10、手機App測試工具
雲測平台、testin、百度MTC、其他工具GT