測(cè)試用例設(shè)計(jì):從篩選到下單的完整思路)
做電商項(xiàng)目測(cè)試做到第七篇前面幾篇我們依次聊過商城框架、搜索、商品詳情、購(gòu)物車和訂單流程今天把目光收回到類目頁(yè)里比較特殊的一塊——化妝品頁(yè)面用例設(shè)計(jì)。這個(gè)類目不像手機(jī)殼、紙巾那樣“標(biāo)品化”它有大量需要測(cè)的屬性篩選、規(guī)格組合、合規(guī)字段和內(nèi)容審核位如果只按普通列表頁(yè)去設(shè)計(jì)用例上線后大概率會(huì)在一些意想不到的地方翻車。這篇文章我打算把自己實(shí)際做過的電商項(xiàng)目中化妝品類目頁(yè)從列表、詳情、加購(gòu)到下單涉及的用例設(shè)計(jì)思路完整捋一遍覆蓋篩選組合、SKU切換、合規(guī)字段、交互異常、數(shù)據(jù)埋點(diǎn)和回歸策略拿過去就能直接用。1. 化妝品類目頁(yè)的業(yè)務(wù)特殊性決定測(cè)試設(shè)計(jì)起點(diǎn)很多測(cè)試同學(xué)接手電商類目頁(yè)時(shí)第一反應(yīng)是打開頁(yè)面照著功能點(diǎn)一條條列用例。這個(gè)做法放在化妝品頁(yè)面上容易失控因?yàn)檫@個(gè)類目的信息架構(gòu)和普通標(biāo)品差別太大理解不透業(yè)務(wù)就看不到風(fēng)險(xiǎn)點(diǎn)。我建議先花半天時(shí)間把類目頁(yè)的業(yè)務(wù)特殊性梳理清楚再動(dòng)手設(shè)計(jì)用例。1.1 化妝品信息架構(gòu)和普通標(biāo)品最大的三個(gè)差異第一個(gè)差異是多維屬性篩選。手機(jī)殼的篩選項(xiàng)通常只有品牌、價(jià)格、適用型號(hào)撐死了加一個(gè)顏色但化妝品類目的篩選項(xiàng)能鋪滿兩屏橫向滾動(dòng)都翻不完品牌、價(jià)格區(qū)間、功效保濕/美白/抗皺/舒緩/修護(hù)、膚質(zhì)油性/干性/混合性/敏感肌、適用人群通用/男士/孕婦、質(zhì)地水/乳/霜/精華/面膜、是否特殊化妝品祛斑美白、防曬、染發(fā)等。這些篩選項(xiàng)不是前端寫死的而是運(yùn)營(yíng)在后臺(tái)類目樹上動(dòng)態(tài)配置的。這意味著用例設(shè)計(jì)不能只看接口參數(shù)還要回到類目樹配置本身每加一個(gè)篩選維度列表頁(yè)的請(qǐng)求參數(shù)、返回字段、空態(tài)文案、篩選高亮狀態(tài)的組合復(fù)雜度就成倍增長(zhǎng)。第二個(gè)差異是SKU維度的數(shù)量級(jí)。一個(gè)手機(jī)殼通常就一個(gè)SKU最多分個(gè)顏色但護(hù)膚品有容量、套裝、版本滋潤(rùn)版/清爽版彩妝有色號(hào)洗發(fā)水有功能型組合一套下來(lái)詳情頁(yè)的規(guī)格可能有三到四層。測(cè)試時(shí)不僅要對(duì)SKU切換后的價(jià)格、庫(kù)存、圖片做校驗(yàn)還得考慮當(dāng)前選中的規(guī)格組合在深鏈接、分享、購(gòu)物車回顯時(shí)的正確性。這個(gè)復(fù)雜度意味著SKU相關(guān)的用例不能只放在詳情頁(yè)模塊必須跨模塊設(shè)計(jì)。第三個(gè)差異是合規(guī)字段多且敏感?;瘖y品頁(yè)面必須展示備案編號(hào)普通化妝品備案或注冊(cè)編號(hào)特殊化妝品標(biāo)注生產(chǎn)許可證號(hào)、生產(chǎn)企業(yè)信息進(jìn)口品還要有中文標(biāo)簽和檢驗(yàn)檢疫信息。頁(yè)面上如果漏展示、展示錯(cuò)誤輕則被平臺(tái)處罰重則影響品牌方資質(zhì)審核。這類字段的校驗(yàn)通常沒有復(fù)雜邏輯但需要專門的核對(duì)用例并且每次內(nèi)容更新后要回歸。我在做項(xiàng)目時(shí)就遇到過詳情頁(yè)只展示備案號(hào)但漏了生產(chǎn)許可證號(hào)的情況這種問題靠功能測(cè)試的正常路徑根本發(fā)現(xiàn)不了必須有一張專門的合規(guī)字段核對(duì)清單。1.2 從用戶路徑梳理用例落點(diǎn)頁(yè)面用例設(shè)計(jì)如果一上來(lái)就盯著列表頁(yè)表格填充很容易漏掉上下文。我更習(xí)慣先把用戶路徑畫出來(lái)再在每條路徑上找異常分支。路徑分為四條主流線被動(dòng)瀏覽線首頁(yè)/活動(dòng)Banner → 化妝品類目Tab → 列表頁(yè) → 點(diǎn)擊商品進(jìn)入詳情。主動(dòng)檢索線搜索框 → 關(guān)鍵詞聯(lián)想 → 搜索結(jié)果列表 → 篩選/排序 → 詳情。直接訪問線從分享鏈接、收藏夾、購(gòu)物車回跳進(jìn)入詳情頁(yè)。決策轉(zhuǎn)化線詳情 → 查看圖文/評(píng)價(jià) → 選擇規(guī)格 → 加購(gòu) → 購(gòu)物車 → 結(jié)算。每條路徑拆出來(lái)的用例側(cè)重點(diǎn)完全不同被動(dòng)瀏覽線關(guān)注類目Tab的入口有效性、首屏數(shù)據(jù)量和曝光位主動(dòng)檢索線關(guān)注篩選條件組合、關(guān)鍵詞高亮、排序穩(wěn)定性直接訪問線關(guān)注URL參數(shù)缺失時(shí)的兜底、非法ID、已失效商品決策轉(zhuǎn)化線關(guān)注SKU選擇、庫(kù)存聯(lián)動(dòng)和加購(gòu)成功狀態(tài)。實(shí)際設(shè)計(jì)用例時(shí)我會(huì)把這些路徑整理成矩陣每條路徑至少覆蓋一個(gè)正常用例和兩個(gè)異常用例再把跨路徑共用的業(yè)務(wù)規(guī)則單獨(dú)抽出來(lái)做數(shù)據(jù)驅(qū)動(dòng)。這個(gè)思路也決定了用例組織形式不要只按頁(yè)面分模塊而要按“路徑頁(yè)面”交叉分模塊這樣執(zhí)行時(shí)更容易發(fā)現(xiàn)問題歸屬評(píng)審時(shí)也方便讓產(chǎn)品經(jīng)理快速理解覆蓋范圍。2. 列表頁(yè)核心用例篩選、搜索、排序與分頁(yè)的邏輯組合列表頁(yè)是整個(gè)類目頁(yè)的流量入口大部分功能用例都集中在這里。但這個(gè)區(qū)域的用例設(shè)計(jì)有一個(gè)陷阱就是很容易從“功能點(diǎn)”出發(fā)而不是從“邏輯組合”出發(fā)。篩選、排序、分頁(yè)單獨(dú)測(cè)都正常一旦組合起來(lái)就出現(xiàn)各種邊界問題。2.1 多維度篩選的組合測(cè)試矩陣怎么搭化妝品列表頁(yè)最典型的形態(tài)是頂部Tab綜合/銷量/新品/價(jià)格 左側(cè)分類樹或底部彈出篩選面板。篩選維度多到一定程度手動(dòng)窮舉所有組合很快就不現(xiàn)實(shí)——5個(gè)維度各3個(gè)選項(xiàng)全組合是243種全部測(cè)完不現(xiàn)實(shí)也沒有必要。我的做法分兩步第一步每個(gè)維度單獨(dú)驗(yàn)證。品牌選一個(gè)、功效選一個(gè)、價(jià)格區(qū)間選一個(gè)分別斷言列表返回結(jié)果中對(duì)應(yīng)字段全部符合條件。比如選了“保濕”功效結(jié)果列表里所有商品的功效標(biāo)簽都必須包含“保濕”選了“0-100元”所有展示價(jià)格都應(yīng)該在區(qū)間內(nèi)。價(jià)格邊界需要專門驗(yàn)證——?jiǎng)偤玫扔?00元是否包含后端用的是閉區(qū)間還是開區(qū)間這里最容易出隱性Bug我就在一個(gè)項(xiàng)目里遇到過“小于等于價(jià)格上限”和“小于價(jià)格上限”的字段錯(cuò)位導(dǎo)致價(jià)格正好等于100元的商品漏展示。第二步跨維度正交組合。重點(diǎn)不是把所有組合跑一遍而是優(yōu)先覆蓋高風(fēng)險(xiǎn)組合一個(gè)是“必然為空”的組合比如價(jià)格區(qū)間0-50元 敏感肌 高端品牌這種組合結(jié)果為空必須驗(yàn)證空態(tài)文案和推薦位另一個(gè)是“可能沖突”的組合比如“防曬 油皮 男士”結(jié)果可能很少但系統(tǒng)要能正常展示。執(zhí)行時(shí)可以用正交表或Pairwise工具生成一組有代表性的組合然后重點(diǎn)驗(yàn)證組合后列表是否重置、篩選條件是否保留、返回上一級(jí)時(shí)篩選狀態(tài)是否存在。這里有一個(gè)經(jīng)常被忽視的點(diǎn)篩選條件與URL參數(shù)之間的關(guān)系。很多電商列表頁(yè)支持分享用戶篩好了條件分享給朋友對(duì)方打開鏈接還要能看到同樣的篩選結(jié)果。用例必須覆蓋URL參數(shù)拼接、非法參數(shù)值例如功效abc、價(jià)格abc、缺失參數(shù)三種場(chǎng)景我見過線上因?yàn)榉窒礞溄由倨戳艘粋€(gè)篩選參數(shù)導(dǎo)致用戶看到的是未篩選的全量列表這個(gè)問題直到埋點(diǎn)數(shù)據(jù)出現(xiàn)異常才被發(fā)現(xiàn)。2.2 排序和分頁(yè)里容易被漏掉的場(chǎng)景排序不是簡(jiǎn)單的“點(diǎn)了按價(jià)格升序就按價(jià)格升序”。電商頁(yè)面的排序往往是多個(gè)因素疊加綜合排序可能包含銷量、好評(píng)率、運(yùn)營(yíng)加權(quán)新品排序不是單純的上架時(shí)間而是有一個(gè)“新品定義窗口”銷量排序在不同篩選條件下取的口徑也可能不同。測(cè)試用例至少要有以下幾類切換排序維度后列表內(nèi)容順序要變化且符合規(guī)則比如價(jià)格升序時(shí)列表價(jià)格必須單調(diào)遞增。篩選和排序同時(shí)存在時(shí)改篩選不改變當(dāng)前選中的排序方式但排序結(jié)果要基于新的篩選結(jié)果計(jì)算。排序穩(wěn)定性也叫“同序值穩(wěn)定性”。兩個(gè)商品價(jià)格都是59元時(shí)用戶刷新后相對(duì)順序不能亂跳否則會(huì)覺得頁(yè)面閃了一下體驗(yàn)極差。分頁(yè)邊界每頁(yè)數(shù)量比如20個(gè)的最后一頁(yè)不滿20個(gè)正好20個(gè)時(shí)下一頁(yè)是否有空頁(yè)快速滑到底時(shí)重復(fù)觸發(fā)加載更多是否會(huì)重復(fù)請(qǐng)求或數(shù)據(jù)重復(fù)。位置記憶用戶從列表第3頁(yè)進(jìn)入詳情再返回應(yīng)該回到第3頁(yè)而不是回到第1頁(yè)返回后篩選條件、搜索關(guān)鍵詞、滾動(dòng)位置盡量保留。我自己踩過的坑是分頁(yè)時(shí)的“商品失效與動(dòng)態(tài)排序沖突”。商品因?yàn)閹?kù)存不足在列表中被標(biāo)記為已失效此時(shí)用戶繼續(xù)往下翻因?yàn)榱斜頂?shù)據(jù)數(shù)量發(fā)生變化后端可能返回重復(fù)商品或直接翻不動(dòng)頁(yè)。這類問題排查半天往往不是算法問題而是前端對(duì)列表數(shù)據(jù)的處理方式——沒有根據(jù)商品ID做去重。用例設(shè)計(jì)時(shí)建議專門設(shè)計(jì)“翻頁(yè)過程中商品狀態(tài)變化”的場(chǎng)景讓前端和后端提前約定好增刪邏輯。2.3 搜索聯(lián)想與無(wú)結(jié)果態(tài)的細(xì)節(jié)化妝品頁(yè)面的搜索雖然入口在類目頁(yè)外面但對(duì)類目頁(yè)的測(cè)試影響很大因?yàn)橛脩暨M(jìn)列表頁(yè)之后大概率還是要搜一下。搜索聯(lián)想需要覆蓋品牌詞、功效詞、成分詞如煙酰胺、玻尿酸這類成分名、品類詞如口紅、面膜。聯(lián)想詞高亮、點(diǎn)擊聯(lián)想詞后跳轉(zhuǎn)列表并攜帶篩選條件這些都要單獨(dú)跑。尤其要注意同音詞、拼音、繁體中文的處理策略——不同項(xiàng)目要求可能不一樣但用例里必須明確一版口徑否則測(cè)試、開發(fā)、產(chǎn)品各說各話。無(wú)結(jié)果態(tài)也值得細(xì)測(cè)。搜索“某個(gè)新銳品牌”時(shí)健康態(tài)可能沒有結(jié)果這時(shí)頁(yè)面應(yīng)該給出“沒有找到相關(guān)商品”的文案同時(shí)帶一些兜底推薦比如熱門搜索、同類商品。我見過有的頁(yè)面無(wú)結(jié)果時(shí)只給文案沒有推薦位導(dǎo)致用戶直接流失也見過頁(yè)面兜底推薦的商品和搜索詞毫無(wú)相關(guān)性搜“眼霜”推“紙尿褲”這種低級(jí)問題必須用用例明確約束。測(cè)試時(shí)還建議把搜索詞本身的各種特殊字符跑一遍純空格、超長(zhǎng)字符、表情符號(hào)、SQL注入類字符驗(yàn)證頁(yè)面不報(bào)錯(cuò)且正常展示空態(tài)。下面這張表我執(zhí)行回歸時(shí)常用按表掃一遍能保證列表頁(yè)核心邏輯不漏用例維度關(guān)鍵場(chǎng)景容易遺漏的點(diǎn)篩選單選、多選、清空、組合空態(tài)、價(jià)格邊界、URL參數(shù)校驗(yàn)排序切換、穩(wěn)定、與篩選疊加同價(jià)格相對(duì)順序、刷新不亂跳分頁(yè)加載更多、返回位置商品失效導(dǎo)致的跨頁(yè)重復(fù)搜索聯(lián)想、跳轉(zhuǎn)、無(wú)結(jié)果拼音/繁體口徑、兜底推薦相關(guān)性3. 商品詳情頁(yè)用例規(guī)格、成分、合規(guī)字段一個(gè)都不能少列表頁(yè)把用戶引進(jìn)來(lái)詳情頁(yè)才是真正影響轉(zhuǎn)化率的地方。化妝品詳情頁(yè)的用例量級(jí)遠(yuǎn)大于普通標(biāo)品其中SKU切換、成分展示、合規(guī)字段這三塊是最容易出問題的。3.1 SKU 規(guī)格切換的完整校驗(yàn)鏈化妝品SKU少的也有兩三層容量30ml/50ml/100ml、版本清爽型/滋潤(rùn)型、套裝單支/兩件套/加贈(zèng)小樣。每一層切換都要校驗(yàn)以下內(nèi)容標(biāo)題中的規(guī)格名跟著變比如“XX面霜 50ml”和“XX面霜 30ml”不能混。主圖、詳情圖跟著變。有些項(xiàng)目是同一套圖有些項(xiàng)目是不同SKU配不同主圖必須人工確認(rèn)“選50ml時(shí)主圖是不是50ml的”這個(gè)點(diǎn)自動(dòng)化很難直接判斷建議用視覺對(duì)比輔助。價(jià)格、劃線價(jià)、促銷標(biāo)簽跟著變。切換規(guī)格后促銷標(biāo)簽沒有更新的情況很常見比如從參與滿減的50ml切到不參與滿減的30ml標(biāo)簽還在顯示“滿199減30”。庫(kù)存數(shù)字跟著變已售數(shù)量口徑如果頁(yè)面上有展示也要跟著變。加購(gòu)按鈕狀態(tài)當(dāng)前規(guī)格庫(kù)存為0時(shí)置灰并提示“已售罄”而不是允許加入購(gòu)物車后在購(gòu)物車?yán)镌賵?bào)錯(cuò)。默認(rèn)選中態(tài)進(jìn)入頁(yè)面時(shí)默認(rèn)選中哪個(gè)SKU通常是銷量最高或運(yùn)營(yíng)配置的那個(gè)需要和產(chǎn)品經(jīng)理確認(rèn)口徑。特別提醒一個(gè)場(chǎng)景SKU之間的組合可用性。假設(shè)面霜有三個(gè)容量但30ml和50ml又分別對(duì)應(yīng)不同的版本后端配置SKU時(shí)不是所有組合都存在。前端切換到不存在的組合時(shí)頁(yè)面必須自動(dòng)把不可選規(guī)格置灰或提示“該組合暫不可售”不能讓用戶選中后提交不了。建議專門構(gòu)造一張SKU組合合法表把后端返回的SKU矩陣和頁(yè)面置灰邏輯一一對(duì)照這一步能提前發(fā)現(xiàn)大量規(guī)格搭配問題。第二個(gè)提醒是SKU記憶。用戶選了50ml后退出詳情再回來(lái)甚至從購(gòu)物車回跳詳情選中的規(guī)格要能正確回顯。這類用例要放在跨頁(yè)面回歸里不能只在詳情頁(yè)單測(cè)。3.2 成分表和功效宣稱的展示規(guī)則成分表現(xiàn)在是化妝品詳情頁(yè)的標(biāo)配很多平臺(tái)會(huì)直接展示完整成分列表并按含量降序排列。測(cè)試關(guān)注的點(diǎn)包括成分列表的順序邏輯成分含量從高到低前端拿到的順序是否正確有沒有亂序。高風(fēng)險(xiǎn)成分提示像香精、酒精、部分防腐劑如果平臺(tái)做了風(fēng)險(xiǎn)成分標(biāo)注用例要驗(yàn)證標(biāo)注口徑和提示文案是否準(zhǔn)確。成分搜索詳情頁(yè)是否支持成分搜索比如用戶搜煙酰胺能跳到備案成分含該成分的商品。展示完整性成分表必須能拉到底長(zhǎng)文本不截?cái)鄾]有亂碼特殊字符括號(hào)、下標(biāo)、斜杠顯示正常。功效宣稱和詳情圖文的一致性詳情圖說“敏感肌可用”評(píng)價(jià)區(qū)和成分表里卻有高風(fēng)險(xiǎn)成分這個(gè)不完全等于功能Bug但測(cè)試人員應(yīng)該在用例評(píng)審時(shí)提出核對(duì)規(guī)則。這里有一個(gè)容易被忽略的思路功效宣稱的測(cè)試不能只看前端文案。很多電商后臺(tái)會(huì)配置不同的功效標(biāo)簽詳情頁(yè)顯示的保濕、修護(hù)、美白標(biāo)簽是從運(yùn)營(yíng)屬性里透出的。測(cè)試時(shí)準(zhǔn)備一批不同功效標(biāo)簽的商品逐一核對(duì)詳情頁(yè)是否與后臺(tái)配置一致尤其是特殊化妝品祛斑美白、防曬、染發(fā)、燙發(fā)等的標(biāo)簽這類宣稱受監(jiān)管要求更嚴(yán)格標(biāo)簽配置錯(cuò)了直接影響審核結(jié)果。我建議在用例里專門加一條“功效標(biāo)簽與后臺(tái)屬性一致性抽檢”的用例而不是把所有希望寄托在內(nèi)容審核環(huán)節(jié)。提示成分表和功效標(biāo)簽屬于“內(nèi)容屬性”而非“頁(yè)面功能”很容易被當(dāng)成純文案漏測(cè)。請(qǐng)務(wù)必在用例類型里單獨(dú)標(biāo)記為高優(yōu)先級(jí)內(nèi)容校驗(yàn)項(xiàng)。3.3 合規(guī)信息字段的專項(xiàng)核對(duì)合規(guī)字段的核對(duì)屬于“不做則已一做就要做全套”的用例。給化妝品詳情頁(yè)建一個(gè)合規(guī)字段模板至少包含以下字段的展示驗(yàn)證備案編號(hào)/注冊(cè)編號(hào)普通化妝品的備案編號(hào)和特殊化妝品的注冊(cè)編號(hào)格式不同需要按規(guī)則校驗(yàn)。生產(chǎn)企業(yè)名稱、生產(chǎn)地址、生產(chǎn)許可證編號(hào)。進(jìn)口化妝品的中文標(biāo)簽信息、境外生產(chǎn)企業(yè)信息。保質(zhì)期、生產(chǎn)日期、限期使用日期。使用方法、注意事項(xiàng)、警示語(yǔ)如“避免接觸眼睛”“使用前請(qǐng)測(cè)試”。具體用例要覆蓋字段齊全性、字段內(nèi)容與后臺(tái)配置的一致性、字段展示樣式換行、截?cái)?、鏈接跳轉(zhuǎn)。同時(shí)建議做一次信息完整性抽檢隨機(jī)挑選若干商品人工去后臺(tái)核對(duì)一遍詳情頁(yè)展示的所有合規(guī)字段而不是只看前端模板。我記得有一次版本迭代中詳情頁(yè)模板被改造開發(fā)只遷移了主圖和價(jià)格字段合規(guī)字段的樣式錯(cuò)位線上出現(xiàn)“備案編號(hào)字體小到看不清”的投訴就是因?yàn)闇y(cè)試時(shí)只校驗(yàn)了字段存在沒有校驗(yàn)樣式可讀性。這一節(jié)很重要因?yàn)楹弦?guī)問題不是功能Bug是運(yùn)營(yíng)風(fēng)險(xiǎn)。測(cè)試人員在用例設(shè)計(jì)時(shí)主動(dòng)把這塊納入范圍價(jià)值會(huì)遠(yuǎn)遠(yuǎn)高于一個(gè)普通的按鈕測(cè)試。4. 購(gòu)物車、下單與優(yōu)惠互動(dòng)的集成用例詳情頁(yè)測(cè)試完整了接著就要驗(yàn)證“加購(gòu)”這個(gè)動(dòng)作是否把信息正確傳遞到下個(gè)環(huán)節(jié)?;瘖y品類目的購(gòu)物車和訂單測(cè)試有一個(gè)特點(diǎn)促銷規(guī)則多、套裝多、贈(zèng)品多集成用例設(shè)計(jì)不好就會(huì)漏掉關(guān)鍵的聯(lián)動(dòng)場(chǎng)景。4.1 從詳情頁(yè)到購(gòu)物車的全鏈路校驗(yàn)加購(gòu)用例看著簡(jiǎn)單實(shí)際容易出錯(cuò)加購(gòu)成功后購(gòu)物車中商品名稱、規(guī)格名容量/色號(hào)、圖片、單價(jià)和詳情頁(yè)是否一致。商品加購(gòu)前失效詳情頁(yè)剛打開時(shí)還有貨等用戶選好規(guī)格點(diǎn)加購(gòu)時(shí)已經(jīng)下架系統(tǒng)應(yīng)提示“商品已下架”而不是把失效商品塞進(jìn)購(gòu)物車。重復(fù)加購(gòu)?fù)簧唐吠籗KU連續(xù)加購(gòu)購(gòu)物車是合并數(shù)量還是新增一條記錄不同項(xiàng)目策略不同用例要按產(chǎn)品定義執(zhí)行。購(gòu)物車中修改規(guī)格化妝品常見升級(jí)容量、換色號(hào)的操作修改后價(jià)格、庫(kù)存、優(yōu)惠計(jì)算必須聯(lián)動(dòng)。購(gòu)物車中的失效商品特價(jià)活動(dòng)結(jié)束、商品售罄后購(gòu)物車項(xiàng)應(yīng)標(biāo)記失效失效項(xiàng)不能參與全選、不能結(jié)算還要有單獨(dú)清除入口。這些用例如果在功能測(cè)試階段沒覆蓋到聯(lián)調(diào)階段再發(fā)現(xiàn)問題排查成本會(huì)高很多。尤其是“購(gòu)物車中修改規(guī)格”這條前端回傳的SKU ID如果出錯(cuò)訂單里的商品規(guī)格和價(jià)格對(duì)不上客服后臺(tái)看到的信息完全錯(cuò)誤是一類線上高危問題。4.2 化妝品訂單的典型價(jià)格計(jì)算場(chǎng)景化妝品類目是平臺(tái)促銷活動(dòng)的主戰(zhàn)場(chǎng)滿減、折扣、贈(zèng)品、會(huì)員價(jià)、套裝優(yōu)惠疊加在一起價(jià)格計(jì)算很容易出問題。設(shè)計(jì)訂單價(jià)格用例時(shí)我會(huì)圍繞三條主線單品折扣促銷價(jià)、閃購(gòu)價(jià)、會(huì)員價(jià)三者的優(yōu)先級(jí)如何頁(yè)面只顯示一個(gè)價(jià)格但后臺(tái)計(jì)算時(shí)要判斷多個(gè)規(guī)則。用例要構(gòu)造同一商品在不同狀態(tài)下會(huì)員/非會(huì)員、活動(dòng)前/活動(dòng)中的價(jià)格變化。滿減階梯滿199減30、滿299減60是否按優(yōu)惠力度取最高檔是否支持跨店滿減湊單臨界值時(shí)指訂單金額正好199.00是否參與優(yōu)惠四舍五入規(guī)則如何。這類用例建議和開發(fā)確認(rèn)清楚優(yōu)惠計(jì)算用的精度位數(shù)。贈(zèng)品邏輯買正裝送小樣小樣數(shù)量是否隨正裝數(shù)量翻倍很多規(guī)則是不翻倍贈(zèng)品是否占用庫(kù)存贈(zèng)品是否需要單獨(dú)展示在訂單里。贈(zèng)品用例要特別設(shè)計(jì)“贈(zèng)完即止”的場(chǎng)景贈(zèng)品庫(kù)存為0時(shí)是否會(huì)導(dǎo)致正裝無(wú)法下單正確行為通常是正裝可下單但不展示贈(zèng)品很多前端實(shí)現(xiàn)會(huì)在這一步直接把整個(gè)SKU置灰。還有一類套裝拆分場(chǎng)景一個(gè)套裝商品拆成多個(gè)子商品結(jié)算子商品的優(yōu)惠分?jǐn)偨痤~是否正確。這種用例通常要結(jié)合后端結(jié)算單核對(duì)不能只看頁(yè)面總價(jià)我會(huì)在用例執(zhí)行時(shí)讓開發(fā)提供一個(gè)查詢結(jié)算詳情的接口權(quán)限逐項(xiàng)比對(duì)分?jǐn)偨痤~。為了控制測(cè)試成本價(jià)格用例不會(huì)每個(gè)SKU都跑一遍而是按規(guī)則引擎的維度抽取典型商品組合比如“一個(gè)參與滿減的特妝品一個(gè)不參與活動(dòng)的標(biāo)品一個(gè)贈(zèng)品SKU”把平臺(tái)的典型規(guī)則都覆蓋進(jìn)去。4.3 庫(kù)存與限購(gòu)場(chǎng)景的邊界驗(yàn)證化妝品大促期間容易斷貨庫(kù)存用例的邊界處理直接關(guān)系到線上體驗(yàn)。常規(guī)場(chǎng)景庫(kù)存1件的商品加購(gòu)后詳情頁(yè)庫(kù)存應(yīng)變?yōu)?并置灰。兩個(gè)賬號(hào)同時(shí)下單同一個(gè)庫(kù)存1件的商品只有一人能成功。庫(kù)存扣減時(shí)機(jī)是下單時(shí)預(yù)占庫(kù)存還是支付時(shí)扣減用例要按項(xiàng)目定義執(zhí)行不能想當(dāng)然。超賣保護(hù)后端超賣攔截邏輯下前端是否給出友好提示。限購(gòu)場(chǎng)景在化妝品類目很典型尤其是限量版、禮盒這類商品。限購(gòu)規(guī)則一般是同一用戶ID、同一設(shè)備、同一收貨地址、同一手機(jī)號(hào)維度。用例要覆蓋賬號(hào)A和賬號(hào)B使用同一收貨地址下單是否被攔截不同賬號(hào)用同一手機(jī)號(hào)注冊(cè)是否被識(shí)別為同一人。這屬于風(fēng)控策略但功能測(cè)試同樣要驗(yàn)證提示文案和攔截時(shí)機(jī)是否符合預(yù)期。我做過一次大促演練發(fā)現(xiàn)限購(gòu)提示文案在跨設(shè)備場(chǎng)景下不生效用戶用同一賬號(hào)在不同設(shè)備輪流下單都成功了庫(kù)存被一個(gè)人擼走大半這種問題必須在用例里顯式覆蓋。5. 移動(dòng)端適配、異常容錯(cuò)與埋點(diǎn)專項(xiàng)功能用例設(shè)計(jì)完之后還有三類專項(xiàng)用例容易在評(píng)審時(shí)被跳過但對(duì)用戶體感影響極大適配、容錯(cuò)、埋點(diǎn)?;瘖y品類目的詳情頁(yè)圖片和視頻特別多這三類問題暴露得尤其充分。5.1 不同機(jī)型、系統(tǒng)版本下的適配用例普通功能測(cè)試跑在主力機(jī)型上沒問題不代表線上沒問題。我會(huì)在版本迭代中至少安排一輪真機(jī)矩陣系統(tǒng)覆蓋最新版和上一大版本橫豎屏切換。屏幕適配不同分辨率、全面屏劉海區(qū)域、底部安全區(qū)——加購(gòu)按鈕是否被手勢(shì)條擋住是經(jīng)典問題。深色模式詳情頁(yè)背景、文字顏色、圖片在深色模式下的可讀性。字體大小系統(tǒng)字體放大后詳情頁(yè)標(biāo)簽和價(jià)格是否換行錯(cuò)亂。圖片長(zhǎng)圖詳情頁(yè)長(zhǎng)圖滑動(dòng)的性能視頻自動(dòng)播放/暫停邏輯是否正常。還有一類動(dòng)態(tài)權(quán)限測(cè)試化妝品詳情頁(yè)如果集成了掃碼查真?zhèn)?、AR試妝等功能需要相機(jī)權(quán)限。用例必須驗(yàn)證拒絕授權(quán)、取消授權(quán)、授權(quán)后返回頁(yè)面三種狀態(tài)的跳轉(zhuǎn)和提示是否正常。很多項(xiàng)目的AR試妝模塊在拒絕權(quán)限后直接白屏就是因?yàn)橹粶y(cè)了授權(quán)路徑。5.2 弱網(wǎng)、接口異常和響應(yīng)兜底列表頁(yè)和詳情頁(yè)都依賴接口數(shù)據(jù)。弱網(wǎng)和異常場(chǎng)景如果只在網(wǎng)絡(luò)條件好的情況下測(cè)試上線后會(huì)被用戶教做人。我的做法是準(zhǔn)備一份接口異常用例清單接口超時(shí)加載中狀態(tài)持續(xù)多久超時(shí)后是否有重試按鈕。接口返回空數(shù)據(jù)列表頁(yè)顯示“暫無(wú)商品”詳情頁(yè)顯示“商品已下架”或其他兜底。接口返回錯(cuò)誤碼401、500、網(wǎng)絡(luò)異常是否有統(tǒng)一錯(cuò)誤提示且不白屏。圖片加載失敗默認(rèn)圖、品牌Logo替換圖是否正確。網(wǎng)絡(luò)切換WiFi切4G時(shí)正在加載的請(qǐng)求是否中止、重發(fā)是否有重復(fù)提交。在加購(gòu)和下單環(huán)節(jié)異常用例更重要。加購(gòu)請(qǐng)求重復(fù)點(diǎn)擊是否會(huì)生成多條購(gòu)物車記錄下單按鈕連點(diǎn)兩次是否會(huì)產(chǎn)生兩個(gè)訂單。這類冪等性問題建議用接口工具直接模擬超時(shí)加用戶重試比單純手點(diǎn)更容易復(fù)現(xiàn)。我在項(xiàng)目里用這種方式發(fā)現(xiàn)了加購(gòu)接口沒有做冪等處理重復(fù)點(diǎn)擊會(huì)產(chǎn)生兩條記錄修復(fù)后購(gòu)物車數(shù)據(jù)質(zhì)量明顯提升。5.3 埋點(diǎn)數(shù)據(jù)與運(yùn)營(yíng)位曝光邏輯埋點(diǎn)測(cè)試經(jīng)常被忽視但電商項(xiàng)目的運(yùn)營(yíng)決策全依賴埋點(diǎn)數(shù)據(jù)?;瘖y品頁(yè)面的埋點(diǎn)至少包含曝光事件列表頁(yè)商品曝光、詳情頁(yè)瀏覽、篩選面板打開、搜索結(jié)果頁(yè)曝光。點(diǎn)擊事件篩選條件點(diǎn)擊、排序切換、規(guī)格選擇、加購(gòu)按鈕、評(píng)價(jià)Tab。瀏覽時(shí)長(zhǎng)用戶停留時(shí)間、頁(yè)面離開時(shí)機(jī)。來(lái)源渠道從首頁(yè)Banner、搜索、活動(dòng)位進(jìn)入頁(yè)面時(shí)來(lái)源參數(shù)的透?jìng)魇欠裾_。埋點(diǎn)用例的核心是驗(yàn)證事件參數(shù)是否在正確時(shí)機(jī)上報(bào)、上報(bào)字段是否完整、是否有重復(fù)上報(bào)。具體做法是用抓包工具或埋點(diǎn)平臺(tái)實(shí)時(shí)查看上報(bào)記錄對(duì)照產(chǎn)品埋點(diǎn)文檔逐字段核對(duì)。最容易出問題的是來(lái)源渠道參數(shù)前端漏傳渠道編碼導(dǎo)致運(yùn)營(yíng)無(wú)法區(qū)分流量來(lái)源整個(gè)活動(dòng)的效果分析等于白做。還有一個(gè)容易漏掉的是運(yùn)營(yíng)位邏輯列表頁(yè)頂部可能有品牌Tab、活動(dòng)樓層、推薦位。這些位置的排序、展示條件、失效時(shí)間都要有獨(dú)立用例。活動(dòng)結(jié)束后推薦位如果變成空白需要驗(yàn)證是否有兜底內(nèi)容而不是留一個(gè)刺眼的空白區(qū)。6. 測(cè)試數(shù)據(jù)構(gòu)造、執(zhí)行優(yōu)先級(jí)與系列回歸策略用例設(shè)計(jì)得再好測(cè)試數(shù)據(jù)不給力也白搭。化妝品頁(yè)面的測(cè)試數(shù)據(jù)需要刻意構(gòu)造不能指望現(xiàn)有商品數(shù)據(jù)自然覆蓋所有條件。這部分的策略直接決定用例執(zhí)行的效率和可信度。6.1 構(gòu)建覆蓋化妝品多維度的測(cè)試數(shù)據(jù)集我建議維護(hù)一張化妝品測(cè)試數(shù)據(jù)清單按維度拆好品類覆蓋護(hù)膚、彩妝、香水、洗護(hù)、美容儀器等至少各有一個(gè)。功效覆蓋保濕、美白、抗皺、舒緩、防曬等至少各有一個(gè)特妝商品單獨(dú)標(biāo)記。膚質(zhì)/人群覆蓋油性/干性/敏感肌/孕婦可用/男士專用。價(jià)格梯度0-50、50-100、100-300、300以上邊界價(jià)格正好99、100、199元專門造數(shù)。庫(kù)存場(chǎng)景庫(kù)存0、庫(kù)存1、庫(kù)存大數(shù)、預(yù)售/缺貨。規(guī)格覆蓋單規(guī)格、多規(guī)格、套裝、SKU組合缺省。構(gòu)造數(shù)據(jù)時(shí)還要注意數(shù)據(jù)之間的組合關(guān)系尤其是篩選和詳情之間的一致性。如果造了一款保濕敏感肌的面霜那么篩選保濕和篩選敏感肌時(shí)它都應(yīng)該出現(xiàn)篩選美白時(shí)它不應(yīng)該出現(xiàn)。這種一致性是設(shè)計(jì)用例時(shí)最容易出錯(cuò)的地方建議造完數(shù)據(jù)先做一輪數(shù)據(jù)體檢把篩選條件逐個(gè)跑一遍確認(rèn)預(yù)期商品都在、非預(yù)期商品都不在再開始正式用例執(zhí)行。6.2 優(yōu)先級(jí)劃分與回歸安排用例多到一定程度必須排優(yōu)先級(jí)否則版本迭代根本跑不完。我的劃分原則P0主鏈路相關(guān)覆蓋瀏覽→詳情→加購(gòu)→結(jié)算→支付成功以及所有門店里合規(guī)字段展示完整性。P0用例必須全量跑不能跳。P1次級(jí)鏈路與關(guān)鍵異常包括篩選組合、SKU切換、優(yōu)惠疊加、限購(gòu)、弱網(wǎng)重試。P1用例在版本迭代時(shí)建議全量回歸時(shí)間緊可以按模塊抽減。P2兼容性、埋點(diǎn)、文案、樣式類優(yōu)先覆蓋高風(fēng)險(xiǎn)頁(yè)面比如詳情頁(yè)?;貧w策略上我習(xí)慣分三個(gè)層次發(fā)布前全量回歸發(fā)布后第一輪線上冒煙主鏈路抽測(cè)迭代過程中做增量回歸哪里改了什么相關(guān)的用例必須跟著跑?;瘖y品類目因?yàn)閮?nèi)容更新頻率高活動(dòng)位、品牌樓層、功效標(biāo)簽經(jīng)常變還要額外加一條規(guī)則每次運(yùn)營(yíng)內(nèi)容配置改動(dòng)至少把合規(guī)字段、商品標(biāo)簽、活動(dòng)入口三條用例線掃一遍避免漏測(cè)試的內(nèi)容變更在線上產(chǎn)生問題。6.3 系列項(xiàng)目經(jīng)驗(yàn)沉淀從用例評(píng)審到上線跟蹤做完整一個(gè)類目的用例設(shè)計(jì)真正沉淀下來(lái)的不是幾百條用例而是幾個(gè)可復(fù)用的東西。第一用例評(píng)審時(shí)和產(chǎn)品、運(yùn)營(yíng)對(duì)齊篩選維度的增減?;瘖y品篩選維度變化特別快今天加一個(gè)孕婦可用明天加一個(gè)男士專用評(píng)審時(shí)如果不在用例里預(yù)留后面每次加維度就要重構(gòu)測(cè)試矩陣成本極高。我推薦在用例設(shè)計(jì)文檔里單獨(dú)放一個(gè)“篩選維度擴(kuò)展點(diǎn)”每次運(yùn)營(yíng)提新維度需求時(shí)先對(duì)照這個(gè)擴(kuò)展點(diǎn)評(píng)估影響面再動(dòng)手返工。第二建立線上監(jiān)控的抓手。上線后我會(huì)盯三個(gè)數(shù)據(jù)類目頁(yè)的曝光到點(diǎn)擊轉(zhuǎn)化率、篩選使用率、加購(gòu)成功率。如果篩選使用率驟降多半是篩選交互或數(shù)據(jù)有問題如果加購(gòu)成功率下降優(yōu)先查SKU和庫(kù)存接口。這類線上數(shù)據(jù)比測(cè)試環(huán)境用例更能反映真實(shí)問題一旦發(fā)現(xiàn)異常就去排查對(duì)應(yīng)功能模塊的日志和埋點(diǎn)。第三把踩過的坑沉淀成測(cè)試備忘錄。比如SKU組合缺省必須置灰、價(jià)格邊界用閉區(qū)間、詳情頁(yè)合規(guī)字段要單獨(dú)做核對(duì)模板、搜索無(wú)結(jié)果要帶兜底推薦。這些備忘錄比任何理論都值錢新同事接手化妝品類目時(shí)直接看備忘錄能少踩大部分坑。最后再分享一個(gè)實(shí)操中養(yǎng)成的習(xí)慣頁(yè)面用例不要一次性寫完就提交先把它當(dāng)測(cè)試計(jì)劃用兩三天時(shí)間在測(cè)試環(huán)境里跑一遍把不合理的預(yù)期、遺漏的邊界、缺失的數(shù)據(jù)都改掉再正式提交評(píng)審和歸檔。這么做前期會(huì)慢一點(diǎn)但評(píng)審會(huì)順利很多執(zhí)行階段返工也會(huì)少很多。對(duì)電商這種半個(gè)月一個(gè)迭代的節(jié)奏來(lái)說這個(gè)前期投入非常劃算尤其像化妝品類目這種篩選、規(guī)格、合規(guī)全占滿的頁(yè)面提前過一遍用例比上線后補(bǔ)用例要省心得多。