目錄
此文章轉(zhuǎn)自我在?知乎?上的同名問答
前端測(cè)試是前端工程方面的重要分支,有過一些探索,這里簡(jiǎn)單分享一下。
首先,還是要強(qiáng)調(diào)一點(diǎn):
前端是一種特殊的GUI軟件
看過我最近一年內(nèi)做前端工程方面相關(guān)分享的人可能有印象,我總是在強(qiáng)調(diào)這一點(diǎn)。前端測(cè)試也跟這個(gè)理論基礎(chǔ)有所關(guān)聯(lián)。
在這里,我還想吐槽一下:
API測(cè)試方法論在測(cè)試GUI時(shí)并不能解決所有問題。
與很多前端工程師討論過前端測(cè)試,大家更多的還是盯著API測(cè)試方法論。誠(chéng)然,前端有那么一小部分代碼是可以用API測(cè)試保證質(zhì)量的,但前端項(xiàng)目中的絕大多數(shù)代碼是GUI界面,前端測(cè)試應(yīng)該向傳統(tǒng)GUI測(cè)試方法論需求解決方案:GUI軟件測(cè)試_百度百科?,這個(gè)百科詞條介紹的很不錯(cuò),大家可以感受一下GUI測(cè)試相關(guān)概念和方法。它的測(cè)試用例、覆蓋率統(tǒng)計(jì)、測(cè)試方法等等都與API測(cè)試有著很大的不同。
統(tǒng)一了這個(gè)認(rèn)知之后,我們來討論一下前端GUI測(cè)試的特殊性。根據(jù)百科詞條上的那些介紹,相信大家都能感覺到GUI測(cè)試的成本非常高,而前端這種特殊的GUI軟件,具有天生的快速迭代特征,這使得case維護(hù)成本也變得非常高,經(jīng)常跟不上迭代速度。
一個(gè)標(biāo)準(zhǔn)的互聯(lián)網(wǎng)應(yīng)用產(chǎn)品的前端部分,我粗略估計(jì)大概有20%的業(yè)務(wù)基礎(chǔ)代碼比較穩(wěn)定,比如通用組件、通用算法和數(shù)據(jù)模塊等,可以針對(duì)這些建立復(fù)雜一些的API和GUI測(cè)試用例來保證質(zhì)量。剩下80%的部分不是很穩(wěn)定,每天都在迭代,針對(duì)他們維護(hù)case的成本非常高。目前業(yè)界中號(hào)稱做了自動(dòng)化測(cè)試的項(xiàng)目,也大多是在做那穩(wěn)定的20%。
關(guān)于穩(wěn)定部分的單元測(cè)試方法我這里就不贅述了,?@貘吃饃香?的答案給出了很多關(guān)鍵字,有興趣的去搜索就好了。我想討論的是針對(duì)剩下80%不穩(wěn)定部分的工程化測(cè)試方案。據(jù)我了解,前端測(cè)試面對(duì)這些問題還是很無力的,業(yè)內(nèi)大部分團(tuán)隊(duì)還是靠堆人解決。
面對(duì)這種現(xiàn)狀,我其實(shí)也沒想到過什么好的方法,基本原則就是:
以最低的成本建立和維護(hù)自動(dòng)化測(cè)試用例。
到目前為止,就想到過兩個(gè)方案(都不是測(cè)試方案,只是回歸測(cè)試輔助):
這個(gè)方案可以說根本不是什么技術(shù)方案,而是一個(gè)辦公設(shè)施,就是我們準(zhǔn)備一個(gè)工位,擺上所有我們需要測(cè)試的主流設(shè)備,然后設(shè)備通過某種方式與一臺(tái)電腦相連接,測(cè)試人員坐在工位上,在電腦中輸入某個(gè)url,就能同步到所有設(shè)備中,然后開始逐個(gè)的人肉測(cè)試。
超級(jí)工位大法示意圖(應(yīng)該很多設(shè)備的,這里就是隨便展示一下而已。。。)
相比現(xiàn)在的前端GUI測(cè)試,超級(jí)工位已經(jīng)算是從0到1的飛躍了,雖然沒解決什么技術(shù)問題,但為測(cè)試前的準(zhǔn)備工作做好了鋪墊。如果把前端測(cè)試比作吃屎,超級(jí)工位就是為這餐準(zhǔn)備了一個(gè)好一點(diǎn)的餐桌。。。
更多建議: