單純從功能測試的層面上來講的話,APP 測試、web?測試和H5測試在流程和功能測試上是沒有區(qū)別的。
?????? Web項目或pc項目都是在電腦上進(jìn)行測試的。常見的PC項目架構(gòu)有BS架構(gòu)和CS架構(gòu)的,BS架構(gòu)就是通過瀏覽器(browser)請求后臺服務(wù)(server),后臺返回到響應(yīng)內(nèi)容顯示在瀏覽器上,常見BS架構(gòu)的項目有天貓、京東等瀏覽器輸入地址就可以訪問。CS架構(gòu)的項目比如QQ、微信等,需要在電腦下載客戶端(client),客戶端與后臺服務(wù)器(server)進(jìn)行數(shù)據(jù)傳輸交互?;谝陨闲畔ⅲ琍C端測試都是在電腦上,要么是在瀏覽器上測試要么安裝對應(yīng)客戶端。而app測試平臺分為安卓和IOS端:安卓測試需要在安卓手機(jī)上安裝開發(fā)提供的apk測試包;IOS測試需要將手機(jī)UUID提供給開發(fā)安裝ipa測試包進(jìn)行測試。H5測試就是測試移動端web/wap頁面,在PC或者手機(jī)瀏覽器都可以直接訪問H5頁面。
它們的不同點有
系統(tǒng)架構(gòu)不一樣,PC和H5端項目尤其是WEB項目對應(yīng)一個后臺服務(wù),所有客戶訪問的都是同一個后臺。web測試只要更新了服務(wù)器端,客戶端就會同步會更新。上線測試時,直接訪問線上地址測試即可。APP測試雖然對應(yīng)了一個后臺,但是不同的用戶可能下載了不同版本的客戶端,上線測試時,需要兼容每個版本的測試。app 修改了服務(wù)端,則客戶端用戶所有核心版本都需要進(jìn)行回歸測試一遍。
發(fā)布流程不同,PC端每次更新發(fā)布,需要將測試通過的包替換線上包,重啟服務(wù)后立刻生效,訪問的就是最新的環(huán)境;H5由于是一些html5網(wǎng)站發(fā)布上線后無需重啟即可訪問;APP端需要向應(yīng)用市場發(fā)布,安卓發(fā)布的市場有很多,應(yīng)用寶、豌豆莢、應(yīng)用商店等,每個應(yīng)用都需要單獨審核;IOS端應(yīng)用比較單一就是appstore,從提交、審核到發(fā)布會有幾天的時間間隔,開發(fā)的應(yīng)用包不會立刻發(fā)布。
專項測試,app端需要一些專項測試。
兼容性方面,因為測試平臺的不同,著重點不一樣。
下面具體展開來說。
App測試
?????? APP的測試類型有
? 安裝卸載測試:確認(rèn)系統(tǒng)能正常安裝應(yīng)用及使用,不需要時卸載及數(shù)據(jù)清除,
? 安全測試:防范隱私泄露、密碼加密及傳輸安全、權(quán)限的合理開放、數(shù)據(jù)庫安全、通信安全以及安裝包反編譯;
? 接口測試:前后端數(shù)據(jù)一致校驗、接口異常狀態(tài)及前端展示、數(shù)據(jù)的加密傳輸、業(yè)務(wù)功能覆蓋;
? 交互與異常測試:同級/上下級頁面的頁面交互及數(shù)據(jù)加載、網(wǎng)絡(luò)異常、數(shù)據(jù)異常前后端展示及狀態(tài);
? 性能測試、耗電量&流量測試:內(nèi)存、CPU、流量消耗、耗電量、冷熱啟動速度、圖片資源大??;
? 界面易用性測試:符合用戶習(xí)慣;
? UI測試:頁面顏色搭配、控件擺放位置及兼容性;
? 功能測試:需求文檔已有及隱含的需求功能可正常使用;
? 兼容性測試:網(wǎng)絡(luò)、機(jī)型、系統(tǒng)、分辨率、硬件、同類軟件、新舊數(shù)據(jù);
此外還有,Web和移動端的同步情況,用戶在Web端的操作,在移動端是否可以正常的進(jìn)行同步、顯示;在移動端的操作,用戶登錄web賬號,信息是否同步等。
與web測試的異同
?????? 界面測試方面,移動端測試需注意手勢,橫豎屏切換,多點觸控,事件觸發(fā)區(qū)域等。
兼容性測試方面,web是基于瀏覽器的,所以更傾向于瀏覽器和電腦硬件,電腦系統(tǒng)的方向的兼容,不過一般還是以瀏覽器的為主。而瀏覽器的兼容則是一般是選擇不同的瀏覽器內(nèi)核進(jìn)行測試(IE、chrome、Firefox)。app的測試則必須依賴phone或者是pad,不僅要看分辨率,屏幕尺寸,還要看設(shè)備系統(tǒng)-系統(tǒng)總的來說也就分為Android和iOS。web端的測試一般都是主要使用一種瀏覽器,待系統(tǒng)基本穩(wěn)定的時候,再去專門測試瀏覽器的兼容性。移動端主要分為安卓和IOS,而這兩端出現(xiàn)的問題一般是不一致的,一致的問題主要是數(shù)據(jù)問題,這時候是需要后臺處理的,所以我們測試的時候需要兩端都重點測試,而不會出現(xiàn)先著重測試某一端的問題。
性能方面,web項目需監(jiān)測響應(yīng)時間、CPU、Memory,app項目除了監(jiān)測響應(yīng)時間、CPU、Memory外,還需監(jiān)測流量、電量等。
安全測試方面,安裝包是否可反編譯代碼、安裝包是否簽名、權(quán)限設(shè)置,例如訪問通訊錄、相冊、照相機(jī)等等,登錄后長時間無操作情況
專項測試方面,相對于 Wed 項目,APP有如下專項測試項
1. 干擾測試:中斷,來電,短信,關(guān)機(jī),重啟等
2. 弱網(wǎng)絡(luò)測試(模擬2g、3g、4g,wifi網(wǎng)絡(luò)狀態(tài)以及丟包情況);網(wǎng)絡(luò)切換測試(網(wǎng)絡(luò)斷開后重連、3g切換到4g/5g/wifi 等)
3. 安裝、更新、卸載。安裝需考慮安裝時的中斷、弱網(wǎng)、安裝后刪除安裝文件等情況;卸載需考慮 卸載后是否刪除app相關(guān)的文件;更新,分強(qiáng)制更新、非強(qiáng)制更新、增量包更新、斷點續(xù)傳、弱網(wǎng)狀態(tài)下更新
4、接口測試
5、邊界測試:可用存儲空間少、沒有SD卡/雙SD卡、飛行模式、系統(tǒng)時間有誤、第三方依賴(QQ、微信登錄)等
6、不同app版本的業(yè)務(wù)功能測試
測試工具方面,自動化測試工具:APP 一般使用 Appium;Web 一般使用?Selenium,性能測試工具:APP 一般使用 JMeter; Web 一般使用loadrunner、JMeter。
H5測試
我們很容易將H5與HTML5混淆,H5是一個產(chǎn)品名詞,作為一種解決方案,而HTML5則是一個技術(shù)名詞,是下一代文本標(biāo)記語言標(biāo)準(zhǔn)。
H5頁面,入口的位置可以在瀏覽器打開或是APP的某個入口,可以理解成是適用于移動設(shè)備上展示網(wǎng)頁的一種新形式。APP中主要是通過Webview控件來加載URL來展示H5的。這種方式打開的H5頁面一般沒有刷新按鈕,頁面頂端也看不到URL。
H5的測試點
在接入客戶端測試之前,我們可以先使用chrome自帶的開發(fā)者工具(視圖-開發(fā)者-開發(fā)者工具)來進(jìn)行測試,效果是一樣的,將H5鏈接放到瀏覽器中,打開開發(fā)者工具,我們就能看到所有接口和頁面的顯示。這個工具還可以用來做兼容性的測試,在頁面左上角可調(diào)出,可以選擇手機(jī)、分辨率等,內(nèi)置的設(shè)備還有很多可以編輯,這一點上降低了我們手工去測試兼容性關(guān)于機(jī)型的測試。
H5頁面的測試點一般有
基本業(yè)務(wù)功能測試,包括登錄、刷新、回退、前進(jìn)、翻頁和業(yè)務(wù)邏輯。其中,登錄方面,客戶端已登錄,那么進(jìn)入H5后仍是登錄狀態(tài);若客戶端未登錄,進(jìn)入H5,點擊對應(yīng)鏈接,如果需要登錄則需要拉起native登錄。下拉刷新是否仍然處于當(dāng)前頁面?;用戶主動點擊刷新按鈕是否仍然處于當(dāng)前頁面?;點擊返回與back鍵,回退頁面是否是期望頁面?;翻頁加載情況;進(jìn)入后臺后,重新調(diào)出
性能方面,和操作體驗相關(guān)的測試,包括流量、頁面加載時間、弱網(wǎng)絡(luò)環(huán)境和服務(wù)端的壓測。流量測試方面,對于某些資源是否要做緩存或壓縮;弱網(wǎng)絡(luò)下,數(shù)據(jù)加載較慢,是否有對應(yīng)的loading提示;刷新頁面或者加載新內(nèi)容時頁面是否有抖動
安全方面,包括惡意攻擊、權(quán)限認(rèn)證、脫敏處理和直接url打開等
接口測試方面,包括功能、安全、性能
兼容性方面,包括瀏覽器兼容、系統(tǒng)版本兼容、分辨率兼容等方面
Hybrid app測試
【部分內(nèi)容來自《給產(chǎn)品經(jīng)理講技術(shù)》】
現(xiàn)在,移動端上的很多應(yīng)用都采用了Hybrid? APP的架構(gòu)。所謂HybridAPP,就是指使用原生和H5兩種UI呈現(xiàn)內(nèi)容。如何確認(rèn)一個頁面哪些部分采用了原生UI,哪些部分采用了H5?
在Android系統(tǒng)的“開發(fā)者選項”界面里,有一個名為“顯示布局邊界”的功能,通過使用這個功能,讀者可以很快地分辨出哪些是原生UI,哪些是 H5。
當(dāng)“顯示布局邊界”的功能開啟后,所有的原生控件都會被一個框框住。而其中的H5頁面會被WebView 這個原生控件框住。它與其他原生控件的區(qū)別是WebView展示的內(nèi)容比單一的原生控件復(fù)雜得多。例如,原生的TextView用來顯示文本內(nèi)容、ImageView 用來顯示圖片等;而WebView? 可以顯示一個網(wǎng)頁的內(nèi)容,我們可以把它看作精簡版的瀏覽器。
原生頁面為了展示豐富的內(nèi)容,一般需要利用大量控件進(jìn)行組合,所以當(dāng)讀者看到某個頁面布滿了框時,就可以判斷出這部分肯定是基于原生UI呈現(xiàn)的,如果一個頁面顯示的內(nèi)容很豐富,頁面中卻只有一個大大的框,那么這個框內(nèi)的內(nèi)容很可能就是由WebView顯示的。如當(dāng)當(dāng)APP中的云閱讀頁面

一個APP中既使用原生UI,又使用H5,是為了滿足不同的需求及用戶體驗。使用原生UI可以應(yīng)對流暢性體驗要求較高的場景和UI樣式相對固定,不會頻繁變化的頁面。使用H5頁面可以滿足較強(qiáng)的動態(tài)運營需求,UI樣式頻繁變化,滿足多平臺復(fù)用。
測試點有
1、App與HTML5對接部分需要加密傳輸;
2、App頭部的點擊后返回的是前一個頁面還是退回app主界面,需要注意;
3、從App各個入口進(jìn)入HTML5界面都是免登錄,各入口登錄、登出正常;
4、在各個機(jī)型中,屏幕較小和較大的機(jī)器會出現(xiàn)不能全部顯示或者部分空白的情況。
5、長時間不操作HTML5或者App,需要重新登錄,或者需要重新輸入密碼;
6、屏幕較小手機(jī)提交參數(shù)的確認(rèn)頁面,由于字?jǐn)?shù)較多會出現(xiàn)換行的情況,需要做適配。
小程序測試
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用。
它的測試點有
功能測試方面,要覆蓋各功能模塊;在業(yè)務(wù)和數(shù)據(jù)流程上,把各個功能點串聯(lián)起來形成完整的業(yè)務(wù)流程來檢查;功能模塊間的交互性檢查。同一個業(yè)務(wù),可能有不能的操作路徑來實現(xiàn),每個路徑都需要覆蓋檢查;同一功能的不同入口檢查;
易用性測試,包括,導(dǎo)航、功能入口,上下層級進(jìn)入&返回、其他人機(jī)交互體驗等
兼容性方面,主要指操作系統(tǒng)和屏幕分辨率方面,操作系統(tǒng)主要是指android系統(tǒng)和iOS系統(tǒng)。小程序運行在微信中,看起來是跟操作系統(tǒng)沒關(guān)系,實際上還是有關(guān)系的,因為底層調(diào)用依賴于具體的操作系統(tǒng)。按照官方文檔在微信小程序在ios上是運行在JavaScriptCore中但在Android上是通過X5JSCore來解析的。如果有條件,不僅要覆蓋android和iOS,包括主流的Android品牌也要覆蓋;分辨率方面,普通的手機(jī)APP會有屏幕兼容性的問題,小程序同樣有這樣的問題,只不過相對少了些。微信小程序定義了一個新的尺寸單位rpx(responsive pixel)可以適配不同尺寸的屏幕,在頁面上定義對象的單位是rpx就可以在不同的屏幕上適配。
安全方面,小程序是內(nèi)嵌到微信的,因此客戶端的安全性毋庸置疑。只需關(guān)注小程序本身與后端接口傳遞數(shù)據(jù)的安全性即可。此外,還要注意權(quán)限方面的要求。
接口測試,對接口進(jìn)行測試,和平時的接口測試是一樣的,沒有特別之處。但是我們需要了解的就是,微信小程序SDK提供的接口是websocket。WebSocket是 HTML 5的一個主要特性,它是建立在TCP上的一種全雙工協(xié)議,也就是說客戶端可以向服務(wù)器發(fā)信息,服務(wù)器也可以向客戶端推送消息。WebSocket 在首次建立連接時,使用普通?HTTP和服務(wù)器通信,同時告訴服務(wù)器后面的交互用WebSocket的方式。在WebSocket連接建立后,往來的消息都可以通過這條管道發(fā)送,同時客戶端與服務(wù)器也會不斷地用ping-pong的方式保持心跳,防止連接異常斷開。
性能測試,小程序的性能不是測試小程序的重點,優(yōu)先級也比較低。小程序的性能和WEB的性能測試非常類似,性能的常用指標(biāo)也大致相同。包括頁面的白屏?xí)r間,首屏?xí)r間,資源占用,頁面渲染時間,幀率等等。