App測試web測試的區別
單純從功能測試的層面上來講的話,APP 測試、web 測試 在流程和功能測試上是沒有區別的
根據兩者載體不一樣,則區別如下:
1、系統結構方面
web項目,b/s架構,基於瀏覽器的;web測試只要更新了服務器端,客戶端就會同步會更新
app項目,c/s結構的,必須要有客戶端;app 修改了服務端,則客戶端用戶所有核心版本都需要進行回歸測試一遍
2、性能方面
web項目 需監測 響應時間、CPU、Memory
app項目 除了監測 響應時間、CPU、Memory外,還需監測流量、電量等
3、兼容方面
web項目:
1. 瀏覽器(火狐、谷歌、IE等)
2. 操作系統(Windows7、Windows10、OSX、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相關的文件
更新:分強制更新、非強制更新、增量包更新、斷點續傳、弱網狀態下更新
5、測試工具方面
自動化工具:APP 一般使用 Appium; Web 一般使用 Selenium
性能測試工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
6. 界面操作:關於手機端測試,需注意手勢,橫豎屏切換,多點觸控,前后台切換
7. 安全測試:安裝包是否可反編譯代碼、安裝包是否簽名、權限設置,例如訪問通訊錄等
8. 邊界測試:可用存儲空間少、沒有SD卡/雙SD卡、飛行模式、系統時間有誤、第三方依賴(QQ、微信登錄)等
9. 權限測試:設置某個App是否可以獲取該權限,例如是否可訪問通訊錄、相冊、照相機等
一、注冊測試點
以等價類划分和邊界值法來分析
1、用戶名字和密碼都為最大長度 (邊界值分析,取上點)
2、用戶名字和密碼都為最小長度 (邊界值分析,取下點)
3、用戶名字和密碼長度在最大和最小長度之間(邊界值分析,取內點)
4、必填項分別為空注冊
5、用戶名最大長度+1(邊界值分析,取離點)
6、用戶名最小長度-1 (邊界值分析,取離點)
7、密碼最大長度+1(邊界值分析,取離點)
8、密碼最小長度-1(邊界值 分析,取離點)
9、用戶名含有非法字符注冊(這個可以划分幾個無效的等價類,如空格,#等,看需求是否允許)
10、密碼含有非法字符注冊(這個可以划分幾個無效的等價類)
11、兩次輸入密碼不一致(如果注冊時候要輸入兩次密碼,那么這個是必須的)
12、重新注冊存在的用戶
13、以已經注冊的用戶名(改變大小寫)來注冊。(有的需求是區分大小寫,有的不區分)
14、看是否支持Tab和enter鍵等;密碼是否可以復制粘貼;密碼是否以* 之類的加秘符號顯示
15、郵箱地址格式不正確,正確格式 ---@---.com
16、驗證碼錯誤(大小寫、空值、錯誤輸入等)
二、登陸測試點
1、 用戶名和密碼都正確
2、用戶名和密碼都錯誤
3、 用戶名正確和密碼錯誤
4、 用戶名錯誤和密碼正確
5、用戶名或密碼為空
6、刪除的用戶名和錯誤密碼
7、刪除的用戶名和正確密碼
8、未注冊用戶名和錯誤密碼
9、用戶名或密碼中插入空格
10、使用Tab,Enter鍵是否能登陸
11、寫改變用戶名或密碼的大小登陸
12、用戶名和密碼中含有全角字符登陸
13、Web系統是否有超時的限制
14、登陸錯誤次數是否限制
15、密碼的安全性是否有強中弱鑒定
三、修改密碼測試點
1、不輸入舊密碼,直接改密碼
2、輸入錯誤舊密碼
3、不輸入確認新密碼
4、不輸入新密碼
5、新密碼和確認新密碼不一致
6、新密碼中有空格
7、新密碼為空
8、新密碼長度為最大長度
9、新密碼為最大長度與最小長度之間
10、新密碼長度為最小長度
11、新密碼為最大長度+1
12、新密碼為最大長度-1
13、新密碼為最小長度+1
14、新密碼為最小長度-1
15、新密碼為非法字符(如有的密碼要求必須是英文和數字組成,如中文漢字)
16、檢查是否支持Tab和Enter鍵等;密碼是否可以復制粘貼;密碼是否以* 之類的加密符號
17、檢查密碼是否區分大小寫,新密碼中英文小寫,確認密碼中英文大寫.
18、新密碼與舊密碼一樣能否修改成功。
四、添加測試點
1、要添加的數據項均合理,檢查數據庫中是否添加了相應的數據
2、留出一個必填數據為空
3、按照邊界值等價類設計測試用例的原則設計其他輸入項的測試用例
4、不符合要求的地方要有錯誤提示
5、是否支持table鍵
6、按enter是否能保存
7、若提示不能保存,也要察看數據庫里是否多了一條數據
五、 刪除測試點
1、刪除一個數據庫中存在的數據,然后查看數據庫中是否刪除
2、刪除一個數據庫中並不存在的數據,看否有錯誤提示,並且數據庫中沒有數據被刪除
3、輸入一個格式錯誤的數據,看是否有錯誤提示,並且數據庫中沒有數據被刪除。
4、輸入的正確數據前加空格,看是否能正確刪除數據
5、什么也不輸入
6、是否指出table鍵
7、是否支持enter鍵
六、查詢測試點
精確查詢:
1、輸入的查詢條件為數據庫中存在的數據,看是否能正確地查出相應得數據
2、輸入正確的查詢條件以前加上空格,看是否能正確地查出相應的數據
3、輸入格式或范圍不符合要求的數據,看是否有錯誤提示
4、輸入數據庫中不存在的數據
5、不輸入任何數據
6、是否支持table鍵
7、是否支持enter鍵
模糊查詢:
在精確查詢的基礎上加上以下一點:
1、輸入一些字符,看是否能查出數據庫中所有的相關信息
功能測試自動化
a) 輕量接口自動化測試
jmeter,
b) APP UI層面的自動化
android:UI Automator Viewer,Android Junit,Instrumentation,UIAutomator,
iOS:基於Instrument的iOS UI自動化,
性能測試
a) Web前端性能測試
網絡抓包工具:Wireshark
網頁文件大小
webpagetest
pagespeed insight
chrome adb
b) APP端性能測試
Android內存占用分析:MAT
iOS內存問題分析:ARC模式
Android WebView性能分析:
iOS WebView性能分析
c) 后台服務性能測試
負載,壓力,耐久性
可拓展性,基准
工具:apacheAB,Jmeter,LoadRunner,
專項測試
a) 兼容性測試
手工測試:操作系統,分辨率,rom,網絡類型
雲平台:testin,腳本編寫,Android。
b) 流量測試
Android自帶的流量管理,
iOS自帶的Network
tcpdump抓包
WiFi代理抓包:Fiddler
流量節省方法:壓縮數據,json優於xml;WebP優於傳統的JPG,PNG;控制訪問的頻次;只獲取必要的數據;緩存;
c) 電量測試
基於測試設備的方法,購買電量表進行測試。
GSam Battery Monitoe Pro
iOS基於Instrument Energy工具
d) 弱網絡測試
手機自帶的網絡狀況模擬工具
基於代理的弱網絡的模擬:
工具:windows:Network Delay Simulator
Mac:Network Link Conditioner
隨着手機應用的不斷狀態,同一款產品的移動端應用市場占相較PC端也越來越大,那么app與PC端針對這些產品的測試有什么相同與不同之處呢?筆者總結如下:
a、首先談一談相同之處
一,針對同一個系統功能的測試,三端所測的業務流程是一樣的
二,一般情況下手機端和PC端都對應一套后台服務,比如說筆者公司所開發的互聯網金融平台,整個平台做了分布式服務架構,后台服務包括用戶服務、交易服務、產品服務等。PC和手機端測試以上三個流程時,調用的都是同一個后台服務。(注:也有一些功能,比如PC與手機端展示不一致,或者有什么特殊處理,這樣情況下后台會寫兩套不同的接口來處理對應的業務需求)
不同之處
PC、APP、H5三端測試的相同與不同
一,測試平台(容器)不同:
pc項目都是在電腦上進行測試的:常見的PC項目架構有BS架構和CS架構的,BS架構就是通過瀏覽器(browser)請求后台服務(server),后台返回到響應內容顯示在瀏覽器上,常見BS架構的項目有天貓、京東等瀏覽器輸入地址就可以訪問。CS架構的項目比如QQ、微信等,需要在電腦下載客戶端(client),客戶端與后台服務器(server)進行數據傳輸交互。基於以上信息,PC端測試都是在電腦上,要么是在瀏覽器上測試要么安裝對應客戶端。平台都是電腦
app測試平台分為安卓和IOS端:安卓測試需要在安卓手機上安裝開發提供的apk測試包;
IOS測試需要將手機UUID提供給開發安裝ipa測試包進行測試;
H5測試就是測試HTML5頁面:在PC或者手機瀏覽器都可以直接訪問H5頁面
二,兼容性測試不同:
基於以上測試平台的不同,三端的兼容性也不一樣。
PC的兼容性主要包括各瀏覽器和不同操作系統,目前筆者所經歷的公司主要測試了不同主流版本瀏覽器的兼容性,還未涉及操作系統層面
APP的兼容性包含安卓和IOS不同機型,不同版本,不同屏幕都要適配
H5的兼容性主要測試手機端的不同瀏覽器的兼容性
三,系統架構不一樣
PC和H5端項目尤其是WEB項目對應一個后台服務,所有客戶訪問的都是同一個后台。上線測試時,直接訪問線上地址測試即可
APP測試雖然對應了一個后台,但是不同的用戶可能下載了不同版本的客戶端,上線測試時,需要兼容每個版本的測試。
四,發布流程不同:
PC端每次更新發布,需要將測試通過的包替換線上包,重啟服務后立刻生效,訪問的就是最新的環境
H5由於是一些html5網站發布上線后無需重啟即可訪問
APP端需要向應用市場發布,安卓發布的市場有很多,應用寶、豌豆莢、應用商店等每個應用都需要單獨審核;IOS端應用比較單一就是appstore。從提交、審核到發布會有幾天的時間間隔,開發的應用包不會立刻發布。
五,專項測試
除以上不同外,app端還有一些專項測試:
性能方面:響應時間、流量測試和耗電量測試
安裝測試(PC端web項目不用測試,CS架構的也需要考慮)
交叉測試:就是在操作某個軟件的時候,來電話、來短信,電量不足提示等外部事件
操作類型:手勢測試、橫屏豎屏
網絡測試:包含弱網和網絡切換測試,重點要考慮回退和刷新是否會造成二次提交。弱網絡的模擬,據說可以用360wifi實現設置。
升級測試:升級測試的提醒機制,升級取消是否會影響原有功能的使用,升級后用戶數據是否被清除了