小程序

一、小程序簡(jiǎn)介

小程序(Mini Program),是一種不需要下載安裝即可使用的應(yīng)用,是內(nèi)嵌在微信APP里面的一款新形態(tài)軟件。它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一搜即可打開應(yīng)用。也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題。應(yīng)用將無(wú)處不在,隨時(shí)可用,但又無(wú)需安裝卸載。

1.小程序版本類型

3種版本類型:開發(fā)版(測(cè)試環(huán)境),體驗(yàn)版(預(yù)發(fā)布環(huán)境),

正式版(正式環(huán)境)。

項(xiàng)目中,我們一般會(huì)準(zhǔn)備3套環(huán)境。開發(fā)版訪問測(cè)試環(huán)境,體驗(yàn)版訪問預(yù)發(fā)布環(huán)境,正式版訪問生產(chǎn)環(huán)境。

開發(fā)版和體驗(yàn)版無(wú)需審核,需要給微信號(hào)配置權(quán)限,通過掃小程序的二維碼才能訪問。正式版需要通過微信審核流程。

微信小程序開發(fā)者工具使用之前就要掃碼。開發(fā)版和體驗(yàn)版的區(qū)別,在于開發(fā)版小程序的二維碼有效期比較短。

  1. 小程序的架構(gòu)

1)微信小程序的框架包含兩部分,View視圖層、AppSerive邏輯層,

View視圖層用力啊渲染頁(yè)面結(jié)構(gòu),

App Serive邏輯層用來(lái)邏輯處理、數(shù)據(jù)請(qǐng)求、接口調(diào)用,它們?cè)趦蓚€(gè)線程里運(yùn)行。

2)View視圖層使用WebView渲染,AppSerive邏輯層使用JSCore運(yùn)行。

3)View視圖層和AppSerive邏輯層通過系統(tǒng)層的JSBrigdage進(jìn)行通信,AppSerive邏輯層把數(shù)據(jù)變化通知到WebView渲染,觸發(fā)WebView渲染頁(yè)面更新,WebView渲染把觸發(fā)的事件通知到AppSerive邏輯層進(jìn)行業(yè)務(wù)處理。

3.微信通知服務(wù)邏輯

微信內(nèi)支持服務(wù)通知跳轉(zhuǎn)到小程序。沒有留意小程序的微信用戶,甚至都不太注意服務(wù)通知這個(gè)名詞。其實(shí)服務(wù)通知已經(jīng)被大量的社交電商小程序所使用,儼然成為新的營(yíng)銷入口。

微信服務(wù)通知,需要小程序傳一個(gè) form id 的參數(shù)給微信,再根據(jù)服務(wù)通知模版來(lái)向微信用戶發(fā)送微信服務(wù)通知的。然而 form id 不是小程序自行生成的,而是該微信用戶在該小程序內(nèi)操作時(shí),微信產(chǎn)生并返回給小程序的。也就是說,如果用戶在小程序頁(yè)面上操作的時(shí)候,小程序前端頁(yè)面沒有把微信提供的 form id 收集下來(lái),并返回給小程序后端,小程序后端是無(wú)法發(fā)送微信服務(wù)通知給用戶的。不同的微信用戶在小程序內(nèi)的操作頻率不同,form id 的數(shù)量也就不同。所以,那些把服務(wù)通知方式作為營(yíng)銷入口的小程序們,可真是費(fèi)了一番腦筋。

二.小程序測(cè)試點(diǎn)

  1. 權(quán)限測(cè)試

未授權(quán)微信登錄小程序:

1)未授權(quán)時(shí),使用一些業(yè)務(wù)功能的時(shí)候,都會(huì)彈出提醒‘先授權(quán)再操作對(duì)應(yīng)功能’;

2)在提交數(shù)據(jù)到后臺(tái)的時(shí)候,會(huì)提示補(bǔ)充相關(guān)身份信息才能提交。

已授權(quán)微信登錄小程序:

1)授權(quán)微信訪問小程序,意味著自己的微信賬號(hào)可被小程序管理方獲??;

2)自動(dòng)以微信的身份行使業(yè)務(wù)操作權(quán)限,比如咨詢、支付、數(shù)據(jù)查詢等 。

所能查看的數(shù)據(jù)和操作的權(quán)限都應(yīng)該是同步一致的,同一微信號(hào)在不同手機(jī)端登錄授權(quán)查看數(shù)據(jù)權(quán)限。

2.功能測(cè)試

1.按功能模塊測(cè)試

模塊設(shè)計(jì)好的各個(gè)大類功能模塊劃分,然后在逐級(jí)細(xì)分,覆蓋到每個(gè)功能盡可能全面的測(cè)試點(diǎn)。

2.按業(yè)務(wù)流程測(cè)試

1)小程序的業(yè)務(wù),比如:播放、支付(支付時(shí)注意支付狀態(tài):?jiǎn)未问跈?quán)?免密?);

2)把各個(gè)功能點(diǎn)串聯(lián)起來(lái)形成完整的業(yè)務(wù)流程來(lái)檢查;

3)同一業(yè)務(wù)員,有不同的路徑來(lái)實(shí)現(xiàn),每個(gè)路徑都需要覆蓋檢查。

3.按數(shù)據(jù)流向測(cè)試

1)根據(jù)數(shù)據(jù)從某一端操作輸入和輸出流向,設(shè)計(jì)基于數(shù)據(jù)流的測(cè)試用例,輸出的數(shù)據(jù)也可能成為另外一端的輸入;

2)檢查輸入的數(shù)據(jù)是否按照代碼邏輯執(zhí)行正確的輸出;

3)是否數(shù)據(jù)發(fā)生異常,無(wú)法輸入、有輸入?yún)s無(wú)任何輸出、輸出不正確、多余的輸出其他信息等;

4.同一功能不同入口有效性檢查測(cè)試

1)小程序在首頁(yè)、列表頁(yè)、詳細(xì)頁(yè)、其他的業(yè)務(wù)功能相關(guān)頁(yè)面,都有可能存在同一個(gè)功能的入口;

2)每一個(gè)入口路徑都需要覆蓋檢查;

5.交互性檢查測(cè)試

1)一般而言,產(chǎn)生數(shù)據(jù)和功能交互變化的情況主要有這幾個(gè)分類:前臺(tái)與前臺(tái)之間、前臺(tái)與后臺(tái)之間、后臺(tái)與后臺(tái)之間;

2)前臺(tái)從F1頁(yè)面提交的數(shù)據(jù),可能需要在前臺(tái)F2頁(yè)面查看到,也會(huì)在對(duì)應(yīng)后臺(tái)的B頁(yè)面查到記錄;

3)后臺(tái)B1頁(yè)面修改或者添加的數(shù)據(jù),對(duì)應(yīng)到前臺(tái)的F頁(yè)面產(chǎn)生交互變化,后臺(tái)本身的不同頁(yè)面間也可能存在同一個(gè)數(shù)據(jù)的輸出值;

6、支付測(cè)試

1)支付時(shí)的支付狀態(tài):?jiǎn)未问跈?quán)、免密;

2)解除免密授權(quán)是否能進(jìn)行支付;

3)支付時(shí)有金額、無(wú)金額、支付順序等情況是如何處理的;

4)對(duì)于未支付的訂單是如何處理的;

5)小程序沒有授權(quán)支付,小程序是如何處理的;

7、UI測(cè)試

小程序的頁(yè)面測(cè)試和app的界面測(cè)試一樣,關(guān)注頁(yè)面展示元素,如菜單、對(duì)話框、窗口和其他可視控件的布局、風(fēng)格,文字是否正確。

頁(yè)面是否美觀,頁(yè)面交互操作是否友好。操作是否設(shè)計(jì)頻繁、是否易操作。

但注意一點(diǎn),微信小程序頁(yè)面層級(jí)跳轉(zhuǎn)默認(rèn)不能超過10次,達(dá)到10次就不能跳轉(zhuǎn)了。一般在進(jìn)行需求設(shè)計(jì)時(shí),頁(yè)面跳轉(zhuǎn)盡量在10次以內(nèi)。有超過跳轉(zhuǎn)10次的應(yīng)用場(chǎng)景,針對(duì)性開發(fā)。

8、易用性測(cè)試

1.導(dǎo)航

1)定位到頁(yè)面某個(gè)模塊所在位置;

2)回到頂部或者底部;

3)導(dǎo)航條的收展;

4)導(dǎo)航標(biāo)簽的文字是否容易理解;

5)頁(yè)面最多跳轉(zhuǎn)超過限定次數(shù)后是否失敗(小程序原生頁(yè)面存在10層限制問題,超過10層便無(wú)法打開新頁(yè)面,而業(yè)務(wù)流程或者訪問形成閉環(huán)時(shí)很容易陷入10層問題)。

2.功能入口

1)重復(fù)且常用業(yè)務(wù)的功能入口;

2)是否在比較顯眼的位置;

3)業(yè)務(wù)操作是否便于大多數(shù)用戶使用和查看。

3.上下層進(jìn)入與返回

1)首頁(yè)與列表頁(yè)之間;

2)列表頁(yè)與詳細(xì)頁(yè)之間;

3)首頁(yè)與詳細(xì)頁(yè)之間;

4)不同層級(jí)之間的進(jìn)入和返回實(shí)現(xiàn)是否有相應(yīng)按鍵易操作;

4.字體、圖片、動(dòng)態(tài)交互效果

1)字體:標(biāo)簽、標(biāo)題、內(nèi)容、動(dòng)態(tài)播放字體;

2)圖片:背景圖、輪播圖、觸屏產(chǎn)生的交互圖;

3)操作是否過于繁瑣。

9、網(wǎng)絡(luò)測(cè)試

1.網(wǎng)絡(luò)切換測(cè)試

1)WIFI切至2G/3G/4G/5G;

2)WIFI切至無(wú)網(wǎng);

3)2G/3G/4G/5G切至WIFI;

4)2G/3G/4G/5G切至無(wú)網(wǎng);

5)無(wú)網(wǎng)切至2G/3G/4G/5G;

6)無(wú)網(wǎng)切至WIFI;

2.驗(yàn)證各種網(wǎng)絡(luò)情況下是否正常

關(guān)于網(wǎng)速的選擇:

3G:300k-2Mbps左右

2.5G(GPRS)一般在100kbps

2G(GSM)一般在5-9kbps

如果不習(xí)慣自定義設(shè)置帶寬等,可直接測(cè)試網(wǎng)速逐漸提升。設(shè)置好以后,就可以啟動(dòng)你的小程序進(jìn)行各種網(wǎng)絡(luò)測(cè)試了。

10、兼容性測(cè)試

手機(jī)系統(tǒng):在 IOS上,小程序的邏輯代碼運(yùn)行于JavaScriptCore 中,在Android上,這個(gè)任務(wù)則是交給 X5 內(nèi)核來(lái)完成。所以有條件的話,不僅要覆蓋Android和 IOS,包括主流的Android和 IOS品牌也要覆蓋,比如華為,小米,iPhone11,iPhoneXR等等。覆蓋到最新的試用版和當(dāng)前流行的主要版本。

微信版本:與微信版本的兼容性問題主要體現(xiàn)在小程序API庫(kù)的版本上。因?yàn)槲⑿判〕绦騍DK的API版本一直都在更新,導(dǎo)致SDK的API有可能有向下的兼容性問題。例如在最新版本小程序SDK上開發(fā)的程序不能在低版本的SDK上像預(yù)期的那樣運(yùn)行。所以測(cè)試微信版本的兼容性之前要先確定小程序使用的庫(kù)版本在哪些微信版本號(hào)上支持。

屏幕大?。何⑿判〕绦蚨x了一個(gè)新的尺寸單位rpx(responsive pixel)。它可以適配不同的屏幕大小,但是需要注意一個(gè)特殊的尺寸1rpx,因?yàn)檫@個(gè)尺寸經(jīng)常在iphone7p上出現(xiàn)問題。所以,只需要關(guān)注一下即可。

11、版本配置測(cè)試

針對(duì)不同的模板,在前端程序代碼中修改相應(yīng)的配置參數(shù),做到版本與版本之間的切換。

12、接口測(cè)試

目前大部分都是微服務(wù)的架構(gòu),小程序調(diào)用的是后臺(tái)的接口,所以這里的接口測(cè)試和平時(shí)的接口測(cè)試是一樣的,但我們需要了解微信小程序提供的接口是什么類型。

1)有接口文檔的,參照接口文檔進(jìn)行接口測(cè)試。

2)沒有接口文檔的,使用Charles或Fiddler抓包(同App抓包)。

13、性能測(cè)試

1)頁(yè)面的白屏?xí)r間;

2)首屏?xí)r間;

3)資源占用;

4)頁(yè)面渲染時(shí)間

14、緩存測(cè)試

用戶本地緩存(小程序文件、授權(quán)數(shù)據(jù)、登錄數(shù)據(jù)等)不能超過10MB,緩存的作用是提高程序的流暢性、減少網(wǎng)絡(luò)請(qǐng)求、節(jié)省服務(wù)器資源,其緩存測(cè)試點(diǎn):清除緩存時(shí)是否強(qiáng)制退出、后臺(tái)清理以及關(guān)機(jī)等情況,每次提交或退出時(shí),是否清除了本次表單的緩存。

15、小程序埋點(diǎn)測(cè)試

小程序埋點(diǎn)測(cè)試與其他端流程基本一致:產(chǎn)品提出埋點(diǎn)需求,開發(fā)人員在平臺(tái)配置埋點(diǎn)事件,然后進(jìn)行代碼埋點(diǎn),測(cè)試人員再測(cè)試埋點(diǎn)。

注意:小程序測(cè)試過程中經(jīng)常遇到的坑:層級(jí)頁(yè)面跳轉(zhuǎn)、兼容性、緩存。

三、小程序常見問題

1.小程序的架構(gòu)是怎么樣的?

小程序的架構(gòu):包含View視圖層、AppService邏輯層。

View層用來(lái)渲染頁(yè)面結(jié)構(gòu),AppService層用來(lái)邏輯處理、數(shù)據(jù)請(qǐng)求、接口調(diào)用,它們?cè)趦蓚€(gè)線程里運(yùn)行。

視圖層使用WebView渲染,邏輯層使用JSCore運(yùn)行。視圖層和邏輯層通過系統(tǒng)層的JSBridage進(jìn)行通信。

2.小程序測(cè)試和APP測(cè)試的異同點(diǎn)有哪些?

小程序測(cè)試和APP測(cè)試在功能測(cè)試上邏輯一樣,主要是理解項(xiàng)目的需求設(shè)計(jì)等,查看功能模塊、業(yè)務(wù)流程、同一功能不同入口時(shí)有效性檢查、頁(yè)面交互性檢查、輸入輸出等邏輯進(jìn)行測(cè)試。不同點(diǎn)包括以下幾個(gè)方面:

開發(fā)方面:小程序開發(fā)周期一般在兩周左右,需要在公眾平臺(tái)上進(jìn)行審核,審核周期一般較短;APP的開發(fā)周期在一個(gè)月左右,APP需要應(yīng)用商店進(jìn)行審核,審核周期較長(zhǎng)。

1)權(quán)限上的區(qū)別:微信小程序需要驗(yàn)證是否有微信授權(quán),未授權(quán)/授權(quán)登錄程序,同一微信號(hào)不同手機(jī)登錄查看數(shù)據(jù)顯示情況;APP測(cè)試則需要考慮是否可以訪問手機(jī)通訊錄、相冊(cè)、相機(jī)等權(quán)限。

2)性能方面:小程序頁(yè)面可能只會(huì)關(guān)注響應(yīng)時(shí)間,而APP則還需要關(guān)心流量、電量、CPU、GPU、Memory等。

3)兼容方面:小程序是基于瀏覽器的,所以更傾向于瀏覽器和電腦硬件,而瀏覽器的兼容則是一般是選擇不同的瀏覽器內(nèi)核進(jìn)行測(cè)試(IE、chrome、Firefox)。APP的測(cè)試則必須依賴客戶端,不僅要看分辨率,屏幕尺寸,還要看設(shè)備系統(tǒng)。

4)從測(cè)試場(chǎng)景來(lái)看:APP是客戶端的,則必須測(cè)試安裝、更新、卸載。除了常規(guī)的安裝、更新、卸載還要考慮到異常場(chǎng)景。包括安裝時(shí)的中斷、弱網(wǎng)、安裝后刪除安裝文件,小程序是基于瀏覽器的,所以不必考慮這些。

5)從系統(tǒng)架構(gòu)來(lái)看:小程序測(cè)試只要更新了服務(wù)器端,客戶端就會(huì)同步會(huì)更新。但是APP端是不能夠保證完全一致的,除非用戶更新客戶端。如果是APP下修改了服務(wù)端,意味著客戶端用戶所使用的核心版本都需要進(jìn)行回歸測(cè)試一遍。

6)緩存方面:緩存的作用是提高程序的流暢度、減少網(wǎng)絡(luò)請(qǐng)求,節(jié)省服務(wù)器資源,有時(shí)候用戶會(huì)進(jìn)行清理緩存的情況。APP和小程序都會(huì)存在緩存,但小程序最大只有10M的本地緩存,測(cè)試時(shí)需要考慮清除緩存時(shí)強(qiáng)制退出、后臺(tái)清理、關(guān)機(jī)等情況。

7)運(yùn)行流暢度:原生App運(yùn)行在操作系統(tǒng)中,所有的原生組件可以直接調(diào)用GPU進(jìn)行渲染;小程序運(yùn)行在微信的進(jìn)程中,只能通過WebView進(jìn)行渲染。用HTML+CSS+JS開發(fā),配合微信的解析器最張渲染出來(lái)的原生組件的效果,比H5體驗(yàn)上更好。

8)占用空間方面:App 會(huì)一直存在手機(jī)中占用空間,太多的 App 可能會(huì)導(dǎo)致內(nèi)存不足;小程序因?yàn)椴恍枰惭b,占用內(nèi)存空間忽略不計(jì);

3.非公用部分

不同版本直接的切換,需要保證彼此的功能模塊和數(shù)據(jù)獨(dú)立性不受干擾,也就是不同版本的管理后臺(tái)添加的數(shù)據(jù)只應(yīng)該調(diào)用到各個(gè)對(duì)應(yīng)模板的前臺(tái)小程序中,不同的版本小程序從前臺(tái)提交的數(shù)據(jù)也只會(huì)提交到各自管理后臺(tái)。

4.公用部分

切換不同的版本,都會(huì)顯示相同的功能模塊和公共數(shù)據(jù)信息。

5.小程序測(cè)試技術(shù)

1)小程序的特點(diǎn)

1.類似WEB.非HTML5

2.即用即走,隨手可得

3.擁有離線能力

4.基于微信跨平臺(tái)

5.媲美原生操作體驗(yàn)

四、H5的認(rèn)識(shí)

H5優(yōu)勢(shì):

1.H5可以跨平臺(tái),開發(fā)成本相對(duì)較低;

2.H5可隨時(shí)上線就更新版本,適合快速迭代;

3.H5可以輕量的觸達(dá)用戶,提供更快捷的服務(wù);

4.在微信入口或者瀏覽器上,用戶只需點(diǎn)開鏈接就可以獲取我們所提供的服務(wù)。

H5劣勢(shì):

1.H5->的轉(zhuǎn)化強(qiáng)依賴于瀏覽器;

2.H5目前基本無(wú)法將數(shù)據(jù)存儲(chǔ)在本地,依賴實(shí)時(shí)性數(shù)據(jù),網(wǎng)絡(luò)狀態(tài)不好的時(shí)候卡到哭。

3.性能相對(duì)較低,影響用戶體驗(yàn)。

H5功能驗(yàn)證

1.通過H5網(wǎng)頁(yè)(非手機(jī)的返回功能)的返回功能可以返回,不會(huì)出現(xiàn)無(wú)法返回的情況。

返回邏輯:

  1. 對(duì)于頁(yè)面中的返回,以及瀏覽器自帶的返回的測(cè)試。頁(yè)面中的返回要考慮業(yè)務(wù)邏輯,返回到相應(yīng)層次,需要從用戶角度返回的轉(zhuǎn)跳邏輯,不能出現(xiàn)死循環(huán)。并要注意返回后是否需要刷新頁(yè)面請(qǐng)求通過H5頁(yè)面(非手機(jī)自帶返回鍵)的返回功能鍵返回,可以返回到正確的頁(yè)面(上一級(jí)/退出H5)點(diǎn)擊返回與back鍵,回退頁(yè)面是否是期望頁(yè)面。

  2. 橫屏豎屏相互切換,能自適應(yīng),并且布局不會(huì)亂掉;或頁(yè)面只支持橫或豎屏限制。

  3. 在手機(jī)上從list點(diǎn)擊進(jìn)入detail頁(yè)面,要在原窗口打開,這樣可以通過頁(yè)頭的返回按鈕返回,而不需要通過手機(jī)的返回鍵返回,這樣交互上更友好。

  4. 關(guān)注頁(yè)面請(qǐng)求,是否會(huì)有多余的請(qǐng)求,或者請(qǐng)求后有多余的數(shù)據(jù)返回,盡量精簡(jiǎn),否則會(huì)浪費(fèi)流量。

5.圖片適配測(cè)試,根據(jù)不同屏幕和分辨率做適配,以及適配后的清晰度,高端機(jī)取雙倍尺寸的圖--app兼容測(cè)試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容