1. 程式人生 > >APP測試流程和測試點

APP測試流程和測試點

軟硬件 定位 硬件 pst 消息推送 訪問 業務 安全 目錄結構

1 APP測試基本流程

1.1流程圖

技術分享圖片

1.2測試周期

測試周期可按項目的開發周期來確定測試時間,一般測試時間為兩三周(即15個工作日),根據項目情況以及版本質量可適當縮短或延長測試時間。正式測試前先向主管確認項目排期。

1.3測試資源

測試任務開始前,檢查各項測試資源。

--產品功能需求文檔;

--產品原型圖;

--產品效果圖;

--行為統計分析定義文檔;

--測試設備(ios3.1.3-ios5.0.1;Android1.6-Android4.0;Winphone7.1及以上;Symbian v3/v5/Nokia Belle等);

--其他。

1.4日報及產品上線報告

1)測試人員每天需對所測項目發送測試日報。

2)測試日報所包含的內容為:

--對當前測試版本質量進行分級;

--對較嚴重的問題進行例舉,提示開發人員優先修改;

--對版本的整體情況進行評估。

3)產品上線前,測試人員發送產品上線報告。

4)上線報告所包含的內容為:

---對當前版本質量進行分級;

---附上測試報告(功能測試報告、兼容性測試報告、性能測試報告以及app可用性能標準結果);

--總結上線版本的基本情況。若有遺留問題必須列出並記錄解決方案。

2 App測試點

2.1安全測試

2.1.1軟件權限

1)扣費風險:包括發送短信、撥打電話、連接網絡等

2)隱私泄露風險:包括訪問手機信息、訪問聯系人信息等

3)對App的輸入有效性校驗、認證、授權、敏感數據存儲、數據加密等方面進行檢測

4)限制/允許使用手機功能接入互聯網

5)限制/允許使用手機發送接受信息功能

6)限制/允許應用程序來註冊自動啟動應用程序

7)限制或使用本地連接

8)限制/允許使用手機拍照或錄音

9)限制/允許使用手機讀取用戶數據

10) 限制/允許使用手機寫人用戶數據

11) 檢測App的用戶授權級別、數據泄漏、非法授權訪問等

2.1.2安裝與卸載安全性

1)應用程序應能正確安裝到設備驅動程序上

2)能夠在安裝設備驅動程序上找到應用程序的相應圖標

3)是否包含數字簽名信息

4)JAD文件和JAR包中包含的所有托管屬性及其值必需是正確的

5)JAD文件顯示的資料內容與應用程序顯示的資料內容應一致

6)安裝路徑應能指定

7)沒有用戶的允許, 應用程序不能預先設定自動啟動

8)卸載是否安全, 其安裝進去的文件是否全部卸載

9)卸載用戶使用過程中產生的文件是否有提示

10)其修改的配置信息是否復原

11)卸載是否影響其他軟件的功能

12)卸載應該移除所有的文件

2.1.3數據安全性

1)當將密碼或其他的敏感數據輸人到應用程序時, 其不會被儲存在設備中, 同時密碼也不會被解碼

2)輸人的密碼將不以明文形式進行顯示

3)密碼, 信用卡明細, 或其他的敏感數據將不被儲存在它們預輸人的位置上

4)不同的應用程序的個人身份證或密碼長度必需至少在4一8 個數字長度之間

5)當應用程序處理信用卡明細, 或其他的敏感數據時, 不以明文形式將數據寫到其它單獨的文件或者臨時文件中。以6)防止應用程序異常終止而又沒有側除它的臨時文件, 文件可能遭受人侵者的襲擊, 然後讀取這些數據信息。

7)當將敏感數據輸人到應用程序時, 其不會被儲存在設備中

8)備份應該加密, 恢復數據應考慮恢復過程的異常?通訊中斷等, 數據恢復後再使用前應該經過校驗

9)應用程序應考慮系統或者虛擬機器產生的用戶提示信息或安全替告

10)應用程序不能忽略系統或者虛擬機器產生的用戶提示信息或安全警告, 更不能在安全警告顯示前,,利用顯示誤導信息欺騙用戶,應用程序不應該模擬進行安全警告誤導用戶

11)在數據刪除之前,應用程序應當通知用戶或者應用程序提供一個“取消”命令的操作

12)“ 取消” 命令操作能夠按照設計要求實現其功能

13)應用程序應當能夠處理當不允許應用軟件連接到個人信息管理的情況

14)當進行讀或寫用戶信息操作時, 應用程序將會向用戶發送一個操作錯誤的提示信息

15)在沒有用戶明確許可的前提下不損壞側除個人信息管理應用程序中的任何內容Μ

16)應用程序讀和寫數據正確。

17)應用程序應當有異常保護。

18)如果數據庫中重要的數據正要被重寫, 應及時告知用戶

19)能合理地處理出現的錯誤

20)意外情況下應提示用戶

2.1.4通訊安全性

1)在運行其軟件過程中, 如果有來電、SMS、EMS、MMS、藍牙、紅外等通訊或充電時, 是否能暫停程序,優先處理通信, 並在處理完畢後能正常恢復軟件, 繼續其原來的功能

2)當創立連接時, 應用程序能夠處理因為網絡連接中斷, 進而告訴用戶連接中斷的情況

3)應能處理通訊延時或中斷

4)應用程序將保持工作到通訊超時, 進而發送給用戶一個錯誤信息指示有連接錯誤

5)應能處理網絡異常和及時將異常情況通報用戶

6)應用程序關閉或網絡連接不再使用時應及時關閉) 斷開

7) HTTP、HTTPS覆蓋測試

--App和後臺服務一般都是通過HTTP來交互的,驗證HTTP環境下是否正常;

--公共免費網絡環境中(如:麥當勞、星巴克等)都要輸入用戶名和密碼,通過SSL認證來訪問網絡,需要對使用HTTP Client的library異常作捕獲處理。

2.1.5人機接口安全性

1)返回菜單總保持可用

2)命令有優先權順序

3)聲音的設置不影響應用程序的功能

4)應用程序必需利用目標設備適用的全屏尺寸來顯示上述內容

5)應用程序必需能夠處理不可預知的用戶操作, 例如錯誤的操作和同時按下多個鍵

2.2安裝、卸載測試

驗證App是否能正確安裝、運行、卸載以及操作過程和操作前後對系統資源的使用情況

2.2.1安裝

1)軟件在不同操作系統(Palm OS、Symbian、Linux、Android、iOS、Black BerryOS 6.0、Windows Phone 7)下安裝是否正常。

2)軟件安裝後的是否能夠正常運行,安裝後的文件夾及文件是否寫到了指定的目錄裏。

3)軟件安裝各個選項的組合是否符合概要設計說明

4))軟件安裝向導的UI測試

5)軟件安裝過程是否可以取消,點擊取消後,寫入的文件是否如概要設計說明處理

6)軟件安裝過程中意外情況的處理是否符合需求(如死機,重啟,斷電)

7)安裝空間不足時是否有相應提示

8)安裝後沒有生成多余的目錄結構和文件

9)對於需要通過網絡驗證之類的安裝,在斷網情況下嘗試一下

10)還需要對安裝手冊進行測試,依照安裝手冊是否能順利安裝

2.2.2卸載

1)直接刪除安裝文件夾卸載是否有提示信息。

2)測試系統直接卸載程序是否有提示信息。

3)測試卸載後文件是否全部刪除所有的安裝文件夾。

4)卸載過程中出現的意外情況的測試(如死機、斷電、重啟)。

5)卸載是否支持取消功能,單擊取消後軟件卸載的情況 。

6)系統直接卸載UI測試,是否有卸載狀態進度條提示 。

2.3 UI測試

測試用戶界面(如菜單、對話框、窗口和其它可規控件)布局、風格是否滿足客戶要求、文字是否正確、頁面是否美觀、文字、圖片組合是否完美、操作是否友好等。

UI測試的目標是確保用戶界面會通過測試對象的功能來為用戶提供相應的訪問或瀏覓功能。確保用戶界面符合公司或行業的標準。包括用戶友好性、人性化、易操作性測試。

2.3.1導航測試

1)按鈕、對話框、列表和窗口等;或在不同的連接頁面之間需要導航

2)是否易於導航,導航是否直觀

3)是否需要搜索引擎

4)導航幫助是否準確直觀

5)導航與頁面結構、菜單、連接頁面的風格是否一致

2.3.2圖形測試

1)橫向比較。各控件操作方式統一

2)自適應界面設計,內容根據窗口大小自適應

3)頁面標簽風格是否統一

4)頁面是否美觀

5)頁面的圖片應有其實際意義而要求整體有序美觀

6)圖片質量要高且圖片尺寸在設計符合要求的情況下應盡量小

7)界面整體使用的顏色不宜過多

2.3.3內容測試

1)輸入框說明文字的內容與系統功能是否一致

2)文字長度是否加以限制

3)文字內容是否表意不明

4)是否有錯別字

5)信息是否為中文顯示

6)是否有敏感性詞匯、關鍵詞

7)是否有敏感性圖片,如:涉及版權、專利、隱私等圖片

2.4功能測試

根據軟件說明或用戶需求驗證App的各個功能實現,采用如下方法實現並評估功能測試過程:

1)采用時間、地點、對象、行為和背景五元素或業務分析等方法分析、提煉App的用戶使用場景,對比說明或需求,整理出內在、外在及非功能直接相關的需求,構建測試點,並明確測試標準,若用戶需求中無明確標準遵循,則需要參考行業或相關國際標準或準則。

2)根據被測功能點的特性列丼出相應類型的測試用例對其進行覆蓋,如;涉及輸入的地方需要考慮等價、邊界、負面、異常或非法、場景回滾、關聯測試等測試類型對其進行覆蓋。

3)在測試實現的各個階段跟蹤測試實現與需求輸入的覆蓋情況,及時修正業務或需求理解錯誤。

2.4.1運行

1)App安裝完成後的試運行,可正常打開軟件。

2)App打開測試,是否有加載狀態進度提示。

3)App打開速度測試,速度是否可觀。

4)App頁面間的切換是否流暢,邏輯是否正確

5)註冊

--同表單編輯頁面

--用戶名密碼長度

--註冊後的提示頁面

--前臺註冊頁面和後臺的管理頁面數據是否一致

--註冊後,在後臺管理中頁面提示

6)登錄

--使用合法的用戶登錄系統。

--系統是否允許多次非法的登陸,是否有次數限制。

--使用已經登陸的賬號登陸系統是否正確處理。

--使用禁用的賬號登陸系統是否正確處理。

--用戶名、口令(密碼)錯誤或漏填時能否登陸。

--刪除或修改後的用戶,原用戶登陸。

--不輸入用戶口令和用戶、重復點(確定或取消按鈕)是否允許登陸。

--登陸後,頁面中登陸信息。

--頁面中有註銷按鈕。

--登陸超時的處理。

7)註銷

--註銷原模塊,新的模塊系統能否正確處理。

--終止註銷能否返回原模塊,原用戶。

--註銷原用戶,新用戶系統能否正確處理。

--使用錯誤的賬號、口令、無權限的被禁用的賬號進行註銷

2.4.2應用的前後臺切換

1) APP切換到後臺,再回到app,檢查是否停留在上一次操作界面。

2) APP切換到後臺,再回到app,檢查功能及應用狀態是否正常,IOS4和IOS5的版本的處理機制有的不一樣。

3) app切換到後臺,再回到前臺時,註意程序是否崩潰,功能狀態是否正常,尤其是對於從後臺切換回前臺數據有自動更新的時候。

4) 手機鎖屏解屏後進入app註意是否會崩潰,功能狀態是否正常,尤其是對於從後臺切換回前臺數據有自動更新的時候。

5) 當App使用過程中有電話進來中斷後再切換到app,功能狀態是否正常

6) 當殺掉app進程後,再開啟app,app能否正常啟動。

7) 出現必須處理的提示框後,切換到後臺,再切換回來,檢查提示框是否還存在,有時候會出現應用自動跳過提示框的缺陷。

8) 對於有數據交換的頁面,每個頁面都必需要進行前後臺切換、鎖屏的測試,這種頁面最容易出現崩潰。

2.4.3免登錄

很多應用提供免登錄功能,當應用開啟時自動以上一次登錄的用戶身份來使用app.

1) app有免登錄功能時,需要考慮IOS版本差異。

2) 考慮無網絡情況時能否正常進入免登錄狀態。

3) 切換用戶登錄後,要校驗用戶登錄信息及數據內容是否相應更新,確保原用戶退出。

4) 根據MTOP的現有規則,一個帳戶只允許登錄一臺機器。所以,需要檢查一個帳戶登錄多臺手機的情況。原手機裏的用戶需要被踢出,給出友好提示。

5) app切換到後臺,再切回前臺的校驗

6) 切換到後臺,再切換回前臺的測試

7) 密碼更換後,檢查有數據交換時是否進行了有效身份的校驗

8) 支持自動登錄的應用在進行數據交換時,檢查系統是否能自動登錄成功並且數據操作無誤。

9) 檢查用戶主動退出登錄後,下次啟動app,應停留在登錄界面

2.4.4數據更新

根據應用的業務規則,以及數據更新量的情況,來確定最優的數據更新方案。

1) 需要確定哪些地方需要提供手動刷新,哪些地方需要自動刷新,哪些地方需要手動+自動刷新。

2) 確定哪些地方從後臺切換回前臺時需要進行數據更新。

3) 根據業務、速度及流量的合理分配,確定哪些內容需要實時更新,哪些需要定時更新。

4) 確定數據展示部分的處理邏輯,是每次從服務端請求,還是有緩存到本地,這樣才能有針對性的進行相應測試。

5) 檢查有數據交換的地方,均有相應的異常處理。

2.4.5離線瀏覽

很多應用會支持離線瀏覽,即在本地客戶端會緩存一部分數據供用戶查看。

1) 在無網絡情況可以瀏覽本地數據

2) 退出app再開啟app時能正常瀏覽

3) 切換到後臺再切回前臺可以正常瀏覽

4) 鎖屏後再解屏回到應用前臺可以正常瀏覽

5) 在對服務端的數據有更新時會給予離線的相應提示

2.4.6 App更新

1) 當客戶端有新版本時,有更新提示。

2) 當版本為非強制升級版時,用戶可以取消更新,老版本能正常使用。用戶在下次啟動app時,仍能出現更新提示。

3) 當版本為強制升級版時,當給出強制更新後用戶沒有做更新時,退出客戶端。下次啟動app時,仍出現強制升級提示。

4) 當客戶端有新版本時,在本地不刪除客戶端的情況下,直接更新檢查是否能正常更新。

5) 當客戶端有新版本時,在本地不刪除客戶端的情況下,檢查更新後的客戶端功能是否是新版本。

6) 當客戶端有新版本時,在本地不刪除客戶端的情況下,檢查資源同名文件如圖片是否能正常更新成最新版本。如果以上無法更新成功的,也都屬於缺陷。

2.4.7定位、照相機服務

1) App有用到相機,定位服務時,需要註意系統版本差異

2) 有用到定位服務、照相機服務的地方,需要進行前後臺的切換測試,檢查應用是否正常。

3) 當定位服務沒有開啟時,使用定位服務,會友好性彈出是否允許設置定位提示。當確定允許開啟定位時,能自動跳轉到定位設置中開啟定位服務。

4) 測試定位、照相機服務時,需要采用真機進行測試。

2.4.8時間測試

客戶端可以自行設置手機的時區、時間,因此需要校驗該設置對app的影響。

--中國為東8區,所以當手機設置的時間非東8區時,查看需要顯示時間的地方,時間是否展示正確,應用功能是否正常。時間一般需要根據服務器時間再轉換成客戶端對應的時區來展示,這樣的用戶體驗比較好。比如發表一篇微博在服務端記錄的是10:00,此時,華盛頓時間為22:00,客戶端去瀏覽時,如果設置的是華盛頓時間,則顯示的發表時間即為22:00,當時間設回東8區時間時,再查看則顯示為10:00。

2.4.9 PUSH測試

1) 檢查push消息是否按照指定的業務規則發送

2) 檢查不接受推送消息時,檢查用戶不會再接收到push.

3) 如果用戶設置了免打擾的時間段,檢查在免打擾時間段內,用戶接收不到PUSH。

在非免打擾時間段,用戶能正常收到push。

4) 當push消息是針對登錄用戶的時候,需要檢查收到的push與用戶身份是否相符,沒有錯誤地將其它人的消息推送過來。一般情況下,只對手機上最後一個登錄用戶進行消息推送。

5) 測試push時,需要采用真機進行測試。

2.5性能測試

評估App的時間和空間特性 :

1)極限測試:在各種邊界壓力情況下,如電池、存儲、網速等,驗證App是否能正確響應。

--內存滿時安裝App

--運行App時手機斷電

--運行App時斷掉網絡

2)響應能力測試:測試App中的各類操作是否滿足用戶響應時間要求 。

--App安裝、卸載的響應時間

--App各類功能性操作的影響時間

3)壓力測試:反復/長期操作下、系統資源是否占用異常。

--App反復進行安裝卸載,查看系統資源是否正常

--其他功能反復進行操作,查看系統資源是否正常

4)性能評估:評估典型用戶應用場景下,系統資源的使用情況。

5)Benchmark測試(基線測試):與競爭產品的Benchmarking, 產品演變對比測試等。

技術分享圖片

2.6交叉事件測試

針對智能終端應用的服務等級劃分方式及實時特性所提出的測試方法。交叉測試又叫事件或沖突測試,是指一個功能正在執行過程中,同時另外一個事件或操作對該過程進行幹擾的測試。如;App在前/後臺運行狀態時與來電、文件下載、音樂收聽等關鍵運用的交互情況測試等。交叉事件測試非常重要,能發現很多應用中潛在的性能問題。

1) 多個App同時運行是否影響正常功能

2) App運行時前/後臺切換是否影響正常功能

3) App運行時撥打/接聽電話

4) App運行時發送/接收信息

5) App運行時發送/收取郵件

6) App運行時切換網絡(2G、3G、wifi)

7) App運行時瀏覽網絡

8) App運行時使用藍牙傳送/接收數據

9) App運行時使用相機、計算器等手機自帶設備

2.7兼容測試

主要測試內部和外部兼容性

1)與本地及主流App是否兼容

2)基於開發環境和生產環境的不同,檢驗在各種網絡連接下(WiFi、GSM、GPRS、EDGE、WCDMA、CDMA1x、CDMA2000、HSPDA等),App的數據和運用是否正確

3)與各種設備是否兼容,若有跨系統支持則需要檢驗是否在各系統下,各種行為是否一致

--不同操作系統的兼容性,是否適配

--不同手機屏幕分辨率的兼容性

--不同手機品牌的兼容性

2.8回歸測試

1)Bug修復後且在新版本發布後需要進行回歸測試。

2)Bug修復後的回歸測試在交付前、要進行全量用例的回歸測試。

2.9升級、更新測試

新版版發布後,配合不同網絡環境的自勱更新提示及下載、安裝、更新、啟勱、運行的驗證測試。

1)測試升級後的功能是否與需求說明一樣

2)測試與升級模塊相關的模塊的功能是否與需求一致

3)升級安裝意外情況的測試(如死機、斷電、重啟)

4)升級界面的UI測試

5)不同操作系統間的升級測試

2.10用戶體驗測試

以主觀的普通消費者的角度去感知產品或服務的舒適、有用、易用、友好親切程度。 通過不同個體、獨立空間和非經驗的統計復用方式去有效評價產品的體驗特性提出修改意見提升產品的潛在客戶滿意度。

1)是否有空數據界面設計,引導用戶去執行操作。

2)是否濫用用戶引導。

3)是否有不可點擊的效果,如:你的按鈕此時處於不可用狀態,那麽一定要灰掉,或者拿掉按鈕,否則會給用戶誤導

4)菜單層次是否太深

5)交互流程分支是否太多

6)相關的選項是否離得很遠

7)一次是否載入太多的數據

8)界面中按鈕可點擊範圍是否適中

9)標簽頁是否跟內容沒有從屬關系,當切換標簽的時候,內容跟著切換

10)操作應該有主次從屬關系

11)是否定義Back的邏輯。涉及軟硬件交互時,Back鍵應具體定義

12)是否有橫屏模式的設計,應用一般需要支持橫屏模式,即自適應設計

2.11 硬件環境測試

2.11.1手勢操作測試

1)手機開鎖屏對運行中的App的影響

2)切換網絡對運行中的App的影響

3)運行中的App前後臺切換的影響

4)多個運行中的App的切換

5)App運行時關機

6)App運行時重啟系統

7)App運行時充電

8)App運行時kill掉進程再打開

2.11.2網絡環境

手機的網絡目前主要分為2G、3G、wifi。目前2G的網絡相對於比較慢,測試時尤其要註意此塊的測試。

1) 無網絡時,執行需要網絡的操作,給予友好提示,確保程序不出現crash。

2) 內網測試時,要註意選擇到外網操作時的異常情況處理。

3) 在網絡信號不好時,檢查功能狀態是否正常,確保不因提交數據失敗而造成crash。

4) 在網絡信號不好時,檢查數據是否會一直處於提交中的狀態,有無超時限制。如遇數據交換失敗時要給予提示。

5) 在網絡信號不好時,執行操作後,在回調沒有完成的情況下,退出本頁面或者執行其他操作的情況,有無異常情況。此問題也會經常出現程序crash。

2.11.3服務器宕機或出現404、502等情況下的測試

後臺服務牽涉到DNS、空間服務商的情況下會影響其穩定性,如:當出現域名解析故障時,你對後臺API的請求很可能就會出現404錯誤,拋出異常。這時需要對異常進行正確的處理,否則可能會導致程序不能正常工作。

2.12接口測試

服務端一般會提供JSON格式的數據給客戶端,所以我們在服務端需要進行接口測試,確保服務端提供的接口並轉換的JSON內容正確,對分支、異常流有相應的返回值。此塊測試可以采用itest框架進行測試。最方便的是采用httpclient進行接口測試。

進行服務端測試時,需要開發提供一份接口文檔。

2.13客戶端數據庫測試

1)一般的增、刪、改、查測試。

2) 當表不存在時是否能自動創建,當數據庫表被刪除後能否再自建,數據是否還能自動從服務端中獲取回來並保存。

3) 在業務需要從服務端取回數據保存到客戶端的時候,客戶端能否將數據保存到本地。

4) 當業務需要從客戶端取數據時,檢查客戶端數據存在時,app數據是否能自動從客戶端數據中取出,還是仍然會從服務器端獲取?檢查客戶端數據不存在時,app數據能否自動從服務器端獲取到並保存到客戶端

5) 當業務對數據進行了修改、刪除後,客戶端和服務端是否會有相應的更新。

APP測試流程和測試點