雜談:聊聊測試開發

在很多IT企業管理者的眼裏,測試就是點點點。面試過程中,很多面試官會問,爲何選擇做測試不選擇做開發?雖然知道“編程能力稍差”、“如果所有人都去做開發了,誰來促進產品質量”纔是深層道理,但是始終都要轉彎抹角要給面試官留下一個好一點的印象。企業老闆大多寧願高薪請一個新手開發,也不願意出高薪請一個資深測試。測試圈子裏,不少人因爲這種偏見陷入更加迷茫的狀態。

基於測試的目的,我認爲軟件測試最基礎的價值是間接促進產品的質量,能夠讓用戶使用滿意。產品質量堪憂,這將無法挽留用戶(因爲市場可替代的產品實在太多了),產品便失去其價值,也就無法爲公司創造營收,沒營收,公司別說發展了,生存都很艱難[有源源不斷的資本輸入除外]。作爲測試人員,不幸的是,這崗位人才缺口不大,尚且很多公司都倡導敏捷型開發,將測試僅定位在對功能、業務完整性的檢測上,導致測試人員普通被按在IT職業鄙視鏈底層摩擦,企業的職位晉升、薪酬待遇均不同程度遭遇不公。

直至測試開發概念和崗位的出現,才逐步改變技術界對軟件測試的看法。

測試開發,是測試圈對技術界的一次持久性衝擊,將極大程度調整IT職業的鄙視鏈。測試開發,技術、業務兼修,是探求技術和業務最大公約數的一個神奇職位。

測試開發技術的應用具有巨大經濟價值。爲何這般說呢?至少在自動化方面就能夠節省大量回歸測試的時間成本。舉本人某個實踐項目的例子,在應用UI自動化測試技術過程中,300多個用例,不低於1500個測試步驟,自動化腳本執行是30分鐘左右。如果是人爲模擬去點擊,假設一個步驟執行平均時長是2s(基於人類行爲的一定延遲性),那麼1500個步驟,測試人員不停歇地測試,需要50分鐘,這還未涉及到測試所需要下一步思考時間、業務數據的對比時間 、中途被人打斷測試的等待時間等等。那麼,可以大膽假設在非常理想狀態下,人工去檢測主要流程和功能,所耗時間總共是60分鐘。一次迴歸的測試時間,人工檢測和自動化監測在效率上就差了一倍(注意,這是基於理想的狀態下對比的結果,實際上,遠遠不止),那麼,隨着需要回歸的次數增多,自動化所節省的時間積累,是很可怕的,這時間可以騰出來做更多的項目從而節省企業的人力成本。當然,自動化腳本的開發和維護也是需要時間的,但是越熟練,腳本開發和維護所需要的時間越少。所以,也有懂成本計算的企業寧願花多一兩倍的薪酬去聘請一個測試開發者,也不願在只懂功能測試花錢。

上面的例子,只是在UI自動化層面的闡述,實際上接口自動化的價值更大。特別是場景化測試,客戶端的頁面需要不斷切換,一大堆js、圖片加載渲染展示,都是需要時間的,接口測試纔不管你這些js、圖片是長什麼樣子的,只需要校驗請求後服務器返回的響應體裏面的業務數據是否符合預期。

隨着在測試開發方面學習和應用的深入,越發感覺自動化只是測試開發的入門,要深入,還有很長的路需要走。測試開發是一個綜合能力的職位,開發能力不一定要比後臺開發人員強,但是各方面的知識需要比之更全面,兼修產品思維、開發能力、運維水平、質量保證四門功課,要做IT領域的通才。因爲測試需要打交道的崗位太多了,最頻繁的當屬前端、後臺、產品。不懂得與他們溝通,測試工作也是很難做好的。走測試開發之路,關鍵還是計算機基礎和編程設計思想,最終服務的是軟件質量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章