前端工程——測試篇

2018-02-24 15:49 更新

原文出處:https://github.com/fouber/blog/issues/7
作者:fouber

目錄

此文章轉自我在?知乎?上的同名問答

前端測試是前端工程方面的重要分支,有過一些探索,這里簡單分享一下。

首先,還是要強調(diào)一點:

前端是一種特殊的GUI軟件

看過我最近一年內(nèi)做前端工程方面相關分享的人可能有印象,我總是在強調(diào)這一點。前端測試也跟這個理論基礎有所關聯(lián)。

在這里,我還想吐槽一下:

API測試方法論在測試GUI時并不能解決所有問題。

與很多前端工程師討論過前端測試,大家更多的還是盯著API測試方法論。誠然,前端有那么一小部分代碼是可以用API測試保證質(zhì)量的,但前端項目中的絕大多數(shù)代碼是GUI界面,前端測試應該向傳統(tǒng)GUI測試方法論需求解決方案GUI軟件測試_百度百科?,這個百科詞條介紹的很不錯,大家可以感受一下GUI測試相關概念和方法。它的測試用例、覆蓋率統(tǒng)計、測試方法等等都與API測試有著很大的不同。

統(tǒng)一了這個認知之后,我們來討論一下前端GUI測試的特殊性。根據(jù)百科詞條上的那些介紹,相信大家都能感覺到GUI測試的成本非常高,而前端這種特殊的GUI軟件,具有天生的快速迭代特征,這使得case維護成本也變得非常高,經(jīng)常跟不上迭代速度。

一個標準的互聯(lián)網(wǎng)應用產(chǎn)品的前端部分,我粗略估計大概有20%的業(yè)務基礎代碼比較穩(wěn)定,比如通用組件、通用算法和數(shù)據(jù)模塊等,可以針對這些建立復雜一些的API和GUI測試用例來保證質(zhì)量。剩下80%的部分不是很穩(wěn)定,每天都在迭代,針對他們維護case的成本非常高。目前業(yè)界中號稱做了自動化測試的項目,也大多是在做那穩(wěn)定的20%。

關于穩(wěn)定部分的單元測試方法我這里就不贅述了,?@貘吃饃香?的答案給出了很多關鍵字,有興趣的去搜索就好了。我想討論的是針對剩下80%不穩(wěn)定部分的工程化測試方案。據(jù)我了解,前端測試面對這些問題還是很無力的,業(yè)內(nèi)大部分團隊還是靠堆人解決。

面對這種現(xiàn)狀,我其實也沒想到過什么好的方法,基本原則就是:

以最低的成本建立和維護自動化測試用例。

到目前為止,就想到過兩個方案(都不是測試方案,只是回歸測試輔助):

1. 不太靠譜的“超級工位”大法。

這個方案可以說根本不是什么技術方案,而是一個辦公設施,就是我們準備一個工位,擺上所有我們需要測試的主流設備,然后設備通過某種方式與一臺電腦相連接,測試人員坐在工位上,在電腦中輸入某個url,就能同步到所有設備中,然后開始逐個的人肉測試。
超級工位大法示意圖(應該很多設備的,這里就是隨便展示一下而已。。。)
相比現(xiàn)在的前端GUI測試,超級工位已經(jīng)算是從0到1的飛躍了,雖然沒解決什么技術問題,但為測試前的準備工作做好了鋪墊。如果把前端測試比作吃屎,超級工位就是為這餐準備了一個好一點的餐桌。。。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號