自從做軟件測試工作1年多以來,主要做的是web測試,對app 測試的很少很少。半個月前接到測試組長安排的測試app的任務(wù),一方面對app測試的認識不足,另一方面沒有多少測試app的經(jīng)驗,導(dǎo)致在測試的時候,并沒有很好的找出軟件缺陷、推進工作。所以在網(wǎng)上找了一些資料(主要參考【簡尚】-老徐),結(jié)合目前對app測試的理解,做出如下總結(jié):
1、App 獨特測試點:
(1)客戶端兼容性測試:系統(tǒng)版本、不同深度定制的 rom、屏幕分辨率、中斷測試、安裝、卸載、升級、對其他程序的干擾等
(2)android & ios 區(qū)別:基本上是一些系統(tǒng)特性不一樣,如橫豎屏,home 鍵,音量鍵,power 鍵等
2、軟件權(quán)限:
1)扣費風(fēng)險:包括發(fā)送短信、撥打電話、連接網(wǎng)絡(luò)等
2)隱私泄露風(fēng)險:包括訪問手機信息、訪問聯(lián)系人信息等
3)對 App 的輸入有效性校驗、認證、授權(quán)、敏感數(shù)據(jù)存儲、數(shù)據(jù)加密等方面進行檢測
4)限制/允許使用手機功能接入互聯(lián)網(wǎng)
5)限制/允許使用手機發(fā)送接受信息功能
6)限制/允許自動啟動應(yīng)用程序
7)限制或使用本地連接
8)限制/允許使用手機拍照或錄音
9)限制/允許使用手機讀取用戶數(shù)據(jù)
10)限制/允許使用手機寫入用戶數(shù)據(jù)
11)檢測 App 的用戶授權(quán)級別、數(shù)據(jù)泄漏、非法授權(quán)訪問等
3、安裝與卸載安全性
1)應(yīng)用程序應(yīng)能正確安裝到設(shè)備驅(qū)動程序上
2)能夠在安裝設(shè)備驅(qū)動程序上找到應(yīng)用程序的相應(yīng)圖標
3)是否包含數(shù)字簽名信息
4)JAD 文件和 JAR 包中包含的所有托管屬性及其值必需是正確的
(1)JAR文件類似于ZIP文件
(2)JAD是安裝的信息文件,文件中包含了程序的大小、類型、名稱、安裝路徑、版權(quán)類型等信息,打開jad后,可根據(jù)jad找到j(luò)ar,下載軟件時可以先下載jad(jad很小),了解一些jar的基本信息后,在決定是否下載jar。jad里還可以存儲一些key和value,在midlet運行的時候可能會用到。如果直接用jar運行,就得不到這些key和value.對于某些程序,就不能正常運行了。
5)JAD 文件顯示的資料內(nèi)容與應(yīng)用程序顯示的資料內(nèi)容應(yīng)一致
6)安裝路徑應(yīng)能指定
7)沒有用戶的允許,應(yīng)用程序不能預(yù)先設(shè)定自動啟動
8)卸載是否安全,其安裝進去的文件是否全部卸載
9)卸載用戶使用過程中產(chǎn)生的文件是否有提示
10)其修改的配置信息是否復(fù)原
11)卸載是否影響其他軟件的功能
12)卸載應(yīng)該移除所有的文件
4、數(shù)據(jù)安全性
1)輸人的密碼將不以明文形式進行顯示
2)密碼,信用卡明細,或其他的敏感數(shù)據(jù)將不被儲存在它們預(yù)輸人的位置上(除非授權(quán))
3)不同的應(yīng)用程序的個人身份或密碼長度必需至少在4一8個字符長度之間
4)當將敏感數(shù)據(jù)輸人到應(yīng)用程序時,其不會被儲存在設(shè)備中
5)備份應(yīng)該加密,恢復(fù)數(shù)據(jù)應(yīng)考慮恢復(fù)過程的異常通訊中斷等,數(shù)據(jù)恢復(fù)后再使用前應(yīng)該經(jīng)過校驗
6)應(yīng)用程序應(yīng)考慮系統(tǒng)產(chǎn)生的用戶提示信息或安全替告
5、圖形測試
1)整個 App 各控件操作方式統(tǒng)一
2)自適應(yīng)界面設(shè)計,內(nèi)容根據(jù)窗口大小自適應(yīng)
3)頁面標簽風(fēng)格是否統(tǒng)一
4)頁面是否美觀
5)頁面的圖片應(yīng)有其實際意義而要求整體有序美觀
6)圖片質(zhì)量要高且圖片尺寸在設(shè)計符合要求的情況下應(yīng)盡量小
7)界面整體使用的顏色不宜過多
6、運行
1)App 安裝完成后的試運行,可正常打開軟件。
2)App 打開測試,是否有加載狀態(tài)進度提示。
3)App 打開速度測試,速度是否可觀。
4)App 頁面間的切換是否流暢,邏輯是否正確
5)注冊:
用戶名密碼長度
注冊后的提示頁面
前臺注冊頁面和后臺的管理頁面數(shù)據(jù)是否一致
注冊后,在后臺管理中頁面提示
6)登錄
使用合法的用戶登錄系統(tǒng)。
系統(tǒng)是否允許多次非法的登陸,是否有次數(shù)限制。
使用已經(jīng)登陸的賬號登陸系統(tǒng)是否正確處理。
使用禁用的賬號登陸系統(tǒng)是否正確處理。
用戶名、口令(密碼)錯誤或漏填時能否登陸。
刪除或修改后的用戶,原用戶登陸。
不輸入用戶口令和用戶、重復(fù)點(確定或取消按鈕)是否允許登陸。 --登陸后,
頁面中登陸信息。
頁面中有注銷按鈕。
登陸超時的處理。
7)注銷
注銷原模塊,新的模塊系統(tǒng)能否正確處理。
終止注銷能否返回原模塊,原用戶。
注銷原用戶,新用戶系統(tǒng)能否正確處理。
使用錯誤的賬號、口令、無權(quán)限的被禁用的賬號進行注銷
7、應(yīng)用的前后臺切換
1) APP 切換到后臺,再回到 app,檢查是否停留在上一次操作界面。
2) APP 切換到后臺,再回到 app,檢查功能及應(yīng)用狀態(tài)是否正常
3) app 切換到后臺,再回到前臺時,注意程序是否崩潰,功能狀態(tài)是否正常,
尤其是對于從后臺切換回前臺數(shù)據(jù)有自動更新的時候。
4) 手機鎖屏解屏后進入 app 注意是否會崩潰,功能狀態(tài)是否正常,尤其是對于
從后臺切換回前臺數(shù)據(jù)有自動更新的時候。
5) 當 App 使用過程中有電話進來中斷后再切換到 app,功能狀態(tài)是否正常
6) 當殺掉 app 進程后,再開啟 app,app 能否正常啟動。
7) 出現(xiàn)必須處理的提示框后,切換到后臺,再切換回來,檢查提示框是否還存
在,有時候會出現(xiàn)應(yīng)用自動跳過提示框的缺陷。
8) 對于有數(shù)據(jù)交換的頁面,每個頁面都必需要進行前后臺切換、鎖屏的測試,這種頁面最容易出現(xiàn)崩潰
8、免登錄
很多應(yīng)用提供免登錄功能,當應(yīng)用開啟時自動以上一次登錄的用戶身份來使用app.
1) app 有免登錄功能時,需要考慮 IOS 版本差異。
2) 考慮無網(wǎng)絡(luò)情況時能否正常進入免登錄狀態(tài)。
3) 切換用戶登錄后,要校驗用戶登錄信息及數(shù)據(jù)內(nèi)容是否相應(yīng)更新,確保原用戶退出。
4) 如果一個帳戶只允許登錄一臺機器。需要檢查一個帳戶登錄多臺手機的情況。原手機里的用戶需要被踢出,給出友好提示。
5) 切換到后臺,再切換回前臺的測試
6) 密碼更換后,檢查有數(shù)據(jù)交換時是否進行了有效身份的校驗
7) 支持自動登錄的應(yīng)用在進行數(shù)據(jù)交換時,檢查系統(tǒng)是否能自動登錄成功并且數(shù)據(jù)操作無誤。
8) 檢查用戶主動退出登錄后,下次啟動 app,應(yīng)停留在登錄界面
9、數(shù)據(jù)更新
根據(jù)應(yīng)用的業(yè)務(wù)規(guī)則,以及數(shù)據(jù)更新量的情況,來確定最優(yōu)的數(shù)據(jù)更新方案。
1) 需要確定哪些地方需要提供手動刷新,哪些地方需要自動刷新,哪些地方需要手動+自動刷新。
2) 確定哪些地方從后臺切換回前臺時需要進行數(shù)據(jù)更新。
3) 根據(jù)業(yè)務(wù)、速度及流量的合理分配,確定哪些內(nèi)容需要實時更新,哪些需要定時更新。
4) 確定數(shù)據(jù)展示部分的處理邏輯,是每次從服務(wù)端請求,還是有緩存到本地,這樣才能有針對性的進行相應(yīng)測試。
5) 檢查有數(shù)據(jù)交換的地方,均有相應(yīng)的異常處理
10、離線瀏覽
很多應(yīng)用會支持離線瀏覽,即在本地客戶端會緩存一部分數(shù)據(jù)供用戶查看。
1) 在無網(wǎng)絡(luò)情況可以瀏覽本地數(shù)據(jù)
2) 退出 app 再開啟 app 時能正常瀏覽
3) 切換到后臺再切回前臺可以正常瀏覽
4) 鎖屏后再解屏回到應(yīng)用前臺可以正常瀏覽
11、App 更新
1) 當客戶端有新版本時,有更新提示
2) 當版本為非強制升級版時,用戶可以取消更新,老版本能正常使用。用戶在
下次啟動 app 時,仍能出現(xiàn)更新提示。
3) 當版本為強制升級版時,當給出強制更新后用戶沒有做更新時,退出客戶端。下次啟動 app 時,仍出現(xiàn)強制升級提示。
4) 當客戶端有新版本時,在本地不刪除客戶端的情況下,直接更新檢查是否能正常更新。
5) 當客戶端有新版本時,在本地不刪除客戶端的情況下,檢查更新后的客戶端功能是否是新版本。
6) 當客戶端有新版本時,在本地不刪除客戶端的情況下,檢查資源同名文件如圖片是否能正常更新成最新版本。
如果以上無法更新成功的,也都屬于缺陷。
7)測試 App 的增量升級,測試 App 在升級失敗以后,是否可以繼續(xù)使用升級之前的版本。
8)新版版發(fā)布后,配合不同網(wǎng)絡(luò)環(huán)境的自勱更新提示及下載、安裝、更新、啟動、運行的驗證測試。
需要檢查的內(nèi)容:
測試升級后的功能是否與需求說明一樣
測試與升級模塊相關(guān)的模塊的功能是否與需求一致
升級安裝意外情況的測試(如死機、斷電、重啟)
升級界面的 UI 測試
不同操作系統(tǒng)間的升級測試
數(shù)字簽名、升級覆蓋安裝、下載后手動覆蓋安裝、跨版本升級、升級后可以正常使用。覆蓋安裝要確保數(shù)據(jù)庫有字段更新的話,能正常更新,否則就容易導(dǎo)致app 異常。
12、定位、照相機服務(wù)
1) App 有用到相機,定位服務(wù)時,需要注意系統(tǒng)版本差異
2) 有用到定位服務(wù)、照相機服務(wù)的地方,需要進行前后臺的切換測試,檢查應(yīng)用是否正常。
3) 當定位服務(wù)沒有開啟時,使用定位服務(wù),會友好性彈出是否允許設(shè)置定位提示。當確定允許開啟定位時,能自動跳轉(zhuǎn)到定位設(shè)置中開啟定位服務(wù)。
4) 測試定位、照相機服務(wù)時,需要采用真機進行測試。
13、時間測試
客戶端可以自行設(shè)置手機的時區(qū)、時間,因此需要校驗該設(shè)置對 app 的影響。
中國為東 8 區(qū),所以當手機設(shè)置的時間非東 8 區(qū)時,查看需要顯示時間的地方,時間是否展示正確,應(yīng)用功能是否正常。時間一般需要根據(jù)服務(wù)器時間再轉(zhuǎn)換成
客戶端對應(yīng)的時區(qū)來展示,這樣的用戶體驗比較好。
比如發(fā)表一篇微博在服務(wù)端記錄的是 10:00,此時,華盛頓時間為 22:00,客戶端去瀏覽時,如果設(shè)置的是華盛頓時間,則顯示的發(fā)表時間即為 22:00,當時間設(shè)回東 8 區(qū)時間時,再查看則顯示為 10:00。
14、PUSH 測試
1) 檢查 push 消息是否按照指定的業(yè)務(wù)規(guī)則發(fā)送
2) 檢查不接受推送消息時,檢查用戶不會再接收到 push.
3) 如果用戶設(shè)置了免打擾的時間段,檢查在免打擾時間段內(nèi),用戶接收不到PUSH。 在非免打擾時間段,用戶能正常收到 push。
4) 當 push 消息是針對登錄用戶的時候,需要檢查收到的 push 與用戶身份是否相符,沒有錯誤地將其它人的消息推送過來。一般情況下,只對手機上最后一個登錄用戶進行消息推送。
5) 測試 push 時,需要采用真機進行測試。
15、性能測試
評估 App 的時間和空間特性 :
1)極限測試:在各種邊界壓力情況下,如電池、存儲、網(wǎng)速等,驗證 App 是否能正確響應(yīng)。內(nèi)存滿時安裝 App --運行 App 時手機斷電 --運行 App 時斷掉網(wǎng)絡(luò)
2)響應(yīng)能力測試:測試 App 中的各類操作是否滿足用戶響應(yīng)時間要求 。 --App安裝、卸載的響應(yīng)時間 --App 各類功能性操作的影響時間
3)壓力測試:反復(fù)/長期操作下、系統(tǒng)資源是否占用異常。App 反復(fù)進行安裝卸載,查看系統(tǒng)資源是否正常其他功能反復(fù)進行操作,查看系統(tǒng)資源是否正常
4)性能評估:評估典型用戶應(yīng)用場景下,系統(tǒng)資源的使用情況??蓽y試的方面- 安裝和啟動時間- CPU 的占用- 內(nèi)存的占用- 流量的耗用- 電量的耗用- 后端,測試 App 中的各類操作是否滿足用戶響應(yīng)時間要求,主要是測試點在網(wǎng)速方面,2g,3g,wifi, 4g 一定要覆蓋到- 后端 有網(wǎng)絡(luò)并發(fā)
16、交叉事件測試
針對智能終端應(yīng)用的服務(wù)等級劃分方式及實時特性所提出的測試方法。交叉測試又叫事件或沖突測試,是指一個功能正在執(zhí)行過程中,同時另外一個事件或操作對該過程進行干擾的測試。
如:App 在前/后臺運行狀態(tài)時與來電、文件下載、音樂收聽等關(guān)鍵運用的交互情況測試等。交叉事件測試非常重要,能發(fā)現(xiàn)很多應(yīng)用中潛在的性能問題。
1) 多個 App 同時運行是否影響正常功能
2) App 運行時前/后臺切換是否影響正常功能
3) App 運行時撥打/接聽電話 4) App 運行時發(fā)送/接收信息
5) App 運行時發(fā)送/收取郵件
6) App 運行時切換網(wǎng)絡(luò)(2G、3G、4G、WIFI )
7) App 運行時瀏覽網(wǎng)絡(luò)
8) App 運行時使用藍牙傳送/接收數(shù)據(jù)
9) App 運行時使用相機、計算器等手機自帶設(shè)備
17、兼容測試
主要測試內(nèi)部和外部兼容性
1)與本地及主流 App 是否兼容
2)基于開發(fā)環(huán)境和生產(chǎn)環(huán)境的不同,檢驗在各種網(wǎng)絡(luò)連接下(WiFi、GSM、GPRS、EDGE、WCDMA、CDMA1x、CDMA2000、HSPDA 等),App 的數(shù)據(jù)和運用是否正確
3)與各種設(shè)備是否兼容,若有跨系統(tǒng)支持則需要檢驗是否在各系統(tǒng)下,各種行為是否一致
不同操作系統(tǒng)的兼容性,是否適配
不同手機屏幕分辨率的兼容性
不同手機品牌的兼容性
18、用戶體驗測試
1)是否有空數(shù)據(jù)界面設(shè)計,引導(dǎo)用戶去執(zhí)行操作。
2)是否濫用用戶引導(dǎo)。
3)是否有不可點擊的效果,如:你的按鈕此時處于不可用狀態(tài),那么一定要灰
掉,或者拿掉按鈕,否則會給用戶誤導(dǎo)
4)菜單層次是否太深
5)交互流程分支是否太多
6)相關(guān)的選項是否離得很遠
7)一次是否載入太多的數(shù)據(jù)
8)界面中按鈕可點擊范圍是否適中
9)標簽頁是否跟內(nèi)容沒有從屬關(guān)系,當切換標簽的時候,內(nèi)容跟著切換
10)操作應(yīng)該有主次從屬關(guān)系
11)是否有橫屏模式的設(shè)計,應(yīng)用一般需要支持橫屏模式,即自適應(yīng)設(shè)計
19、硬件環(huán)境測試
手勢操作測試
1)手機開鎖屏對運行中的 App 的影響
2)切換網(wǎng)絡(luò)對運行中的 App 的影響
3)運行中的 App 前后臺切換的影響
4)多個運行中的 App 的切換
5)App 運行時關(guān)機
6)App 運行時重啟系統(tǒng)
7)App 運行時充電
8)App 運行時 kill 掉進程再打開
20、網(wǎng)絡(luò)環(huán)境
手機的網(wǎng)絡(luò)目前主要分為 2G、3G、wifi。目前 2G 的網(wǎng)絡(luò)相對于比較慢,測試時尤其要注意此塊的測試。
1) 無網(wǎng)絡(luò)時,執(zhí)行需要網(wǎng)絡(luò)的操作,給予友好提示,確保程序不出現(xiàn) crash。
2) 內(nèi)網(wǎng)測試時,要注意選擇到外網(wǎng)操作時的異常情況處理。
3) 在網(wǎng)絡(luò)信號不好時,檢查功能狀態(tài)是否正常,確保不因提交數(shù)據(jù)失敗而造成crash。
4) 在網(wǎng)絡(luò)信號不好時,檢查數(shù)據(jù)是否會一直處于提交中的狀態(tài),有無超時限制。如遇數(shù)據(jù)交換失敗時要給予提示。
5) 在網(wǎng)絡(luò)信號不好時,執(zhí)行操作后,在回調(diào)沒有完成的情況下,退出本頁面或者執(zhí)行其他操作的情況,有無異常情況。此問題也會經(jīng)常出現(xiàn)程序 crash。
注:一般可以選擇在地鐵、公交、電梯、隧道燈代表性的場所進行測試。
以上主要歸納為以下幾點:
1. UI 測試
app 主要核 ui 與實際設(shè)計的效果圖是否一致;交互方面的問題建議,可以先與產(chǎn)品經(jīng)理確認,確認通過后,才開始讓開發(fā)實施更改或優(yōu)化
2. 功能測試
根據(jù)軟件說明或用戶需求驗證 App 的各個功能實現(xiàn)
3. 中斷測試
模擬用戶真實使用 app 時會遇到的中斷情況進行測試.
如: 網(wǎng)絡(luò)的斷網(wǎng),切換網(wǎng)絡(luò), 斷電,來電話/短信,聽音樂,切換到其他 app,打開其他 app 的通知、低電量時能否正常使用等
4. 兼容以及適配測試
新舊版本的在功能,邏輯層面的兼容測試, 同一個 app 在不同系統(tǒng)版本運行,以及不同機型之間的適配測試兼容測試:接口的兼容性測試能夠保證大部分的功能完善;
app 在不同系統(tǒng)版本上保證運行適配性: 屏幕,系統(tǒng)版本等(系統(tǒng)位數(shù)一定要考慮)該部分通過第三方的云平臺進行用不同的支持語言驗證 App 行為。
5. 安全測試
App 安全測試大概劃分為以下幾類:
1)從數(shù)據(jù)的本地存儲到數(shù)據(jù)的傳輸、處理以及遠程訪問等各個環(huán)節(jié),基于相應(yīng)的安全標準/行業(yè)標準評估 App 的安全特性;借鑒在 WebApp 和網(wǎng)絡(luò)安全測試的一些成功經(jīng)驗在智能終端 App 測試中進行裁減或適配;
2)檢測 App 的用戶授權(quán)級別,數(shù)據(jù)泄漏,非法授權(quán)訪問等;
3)對 App 的輸入有效性校驗、認證、授權(quán)、敏感數(shù)據(jù)存儲、數(shù)據(jù)加密等方面進行檢測,以期發(fā)現(xiàn)潛在的安全問題;
4)基于各種通信協(xié)議或相應(yīng)的行業(yè)安全標準檢視 App 是否滿足相應(yīng)的要求。
21、測試 App 的消息顯示和通知顯示
在安裝 App 的時候是否申請相應(yīng)的權(quán)限
驗證收到 App 新的消息的時候,如何通過通知向用戶進行消息展示
測試 App 能否及時顯示和同步消息
測試在多臺設(shè)備登錄 App,是否同步消息、設(shè)置、內(nèi)容、數(shù)據(jù)等
測試 App 的消息是否同步在 PC 端(無論 Web 版本或者 PC 版本)
測試 App 中高內(nèi)存使用的功能
測試 App 對于讀取大量圖片、視頻等進行高內(nèi)存占用操作的處理能力
查看 App 是否有對應(yīng)的異步加載功能等
測試 App 的流量和電量消耗
測試 App 的安裝文件大小
測試 App 占用的存儲空間
測試 App 使用的流量和電量
測試 App 支持的文件格式
測試 App 支持 Office 文件操作
測試 App 支持圖片文件展示
測試 App 支持 PDF 文件打開
測試 App 支持視頻和音頻文件播放
22、其他:
1)如果程序里面包括分享功能,那么檢測點擊分享的時候是否會正常給出分享
提示,點擊分享后所填寫的分享內(nèi)容是否正確
2)app 在清空數(shù)據(jù)或強制退出后還能正常運行否
3)api,包括在 app 內(nèi)跳轉(zhuǎn)到另一個界面,在返回來,以及跳轉(zhuǎn)到系統(tǒng) api
4)長時間開機且開 app,看是否會出現(xiàn)異常情況
5)移動 App 崩潰的一些常見原因:
帶寬限制:帶寬不佳的網(wǎng)絡(luò)對 App 所需的快速響應(yīng)時間可能不夠。
網(wǎng)絡(luò)的變化:不同網(wǎng)絡(luò)間的切換可能會影響 App 的穩(wěn)定性。
內(nèi)存管理:可用內(nèi)存過低,或非授權(quán)的內(nèi)存位置的使用可能會導(dǎo)致 App 失敗。
用戶過多:連接數(shù)量過多可能會導(dǎo)致 App 崩潰。
以上是app主要的一些測試技術(shù)點。當然,這都是建立在對需求非常理解的基礎(chǔ)之上的,測試之前,要對需求有一個整體的把握,最次也要清楚測試的功能點有哪些/測試的目的是什么,以及客戶端與后臺之間的交互。
后續(xù)會繼續(xù)補充與修改。。。
參考資料:【簡尚】-老徐
總結(jié):
測試手機版APP時,暴露出了自己對APP測試認識的不足,沒有把APP與web測試的異同點做出區(qū)分,以下主要對APP與web測試的不同點做出總結(jié):
①中斷測試:主要是來電,短信,關(guān)機,重啟,鬧鐘、插拔數(shù)據(jù)線、手機鎖定、手機斷電等對軟件的影響
②安裝卸載:app產(chǎn)品的安裝卸載操作:從上一個版本/上兩個版本直接升級到最新版本,包括全新安裝新版本、新版本覆蓋舊版本安裝、卸載舊版本,安裝新版本、卸載新版本,安裝新版本,此外還要考慮一下內(nèi)容:
安裝:需考慮安裝時的中斷、弱網(wǎng)、安裝后刪除安裝文件等情況
卸載:需考慮 卸載后是否刪除app相關(guān)的文件
更新:分強制更新、非強制更新、弱網(wǎng)狀態(tài)下更新
③兼容性測試:不同手機型號、廠家、分辨率和屏幕大小等
④弱網(wǎng)絡(luò)測試(2g、3g、4g,wifi網(wǎng)絡(luò)狀態(tài));網(wǎng)絡(luò)切換測試(網(wǎng)絡(luò)斷開后重連、3g切換到4g/wifi 等)
⑤界面操作:注意手勢,橫豎屏切換,多點觸控,前后臺切換對軟件的影響
⑥權(quán)限測試:App是否可以獲取該權(quán)限,例如是否可訪問通訊錄、相冊、照相機等