為什麼網際網路公司需要測試人員?
偶然在知乎上看到一篇帖子:為什麼網際網路公司不開除測試,轉而讓大眾來測,找到一個bug給100元?幾年測試經驗下來,看到大家的討論,深感心有慼慼焉,於是也想淺談測試人員對於公司的重要性。
知乎原帖:https://www.zhihu.com/question/27236089
首先舉個身邊的例子,大致劇情是:開發團隊因為某某原因,感覺測試人員“有些多餘”,測試工作可以自己做。於是不再讓測試團隊跟,於是這麼進行了兩三次後,實在受不了線上“控制不住的”問題,於是又把測試人員請了回來。
一、對測試的常見誤解
關於測試,大致會有以下幾個方面的誤解:
-
將開發階段、測試階段完全剝離;
-
誤認為測試只是在產品做出來之後,使用它找 bug;
-
忽略了發現 bug 的時間點越靠後,修復它所要付出的代價就越大;
-
認為測試人員就是找 bug 的;
-
認為測試就是在介面點點點,找幾個茬。
二、重要的測試方法論
找 bug 或 bug 預防應該始終伴隨著產品的各個階段,這裡有個比較形象的比喻:敲釘子,如果一口氣敲完了才發現敲歪了,那就得拔出來重新來,可是東西上已經有一個很深的洞了。因此,對質量把控的兩個方法論包括:
-
質量預防。事先定好釘子的位置、方向、需要的深度等;
-
實時檢查。敲一敲,檢查一下,隨時糾正方向,確保前進的大方向是正確的。
測試的目標:
測試的核心職能:測試產品與需求(產品需求->使用者需求)的契合度
三、為什麼網際網路公司需要測試人員
對於測試工作為什麼不直接交給開發/產品/其他人員去做,反而僱傭專門的測試人員,可以使用下面的思路來回答這個問題:
-
測試是一項工程,需要計劃、策略、方案。非專門人員,無論從技巧、心態、方案上都無法很好勝任長期的質量保證
-
測試需要對產品的透徹理解,需要對使用者的同理心,需要對市場的把握,需要足夠好的大局觀,需要足夠的耐心,需要一定的技術功底,需要寬泛的知識面,需要良好的溝通能力,需要能夠協調團隊中不同角色。60 分的測試人員市場上大把大把的一大堆,但接近 100 分的測試人員實在非常緊缺,二者對於產品的影響就是:60 分人員產出 60 分經常差強人意的產品;而 100 分人員產出的是穩定&可靠&體驗超爽的“網紅”產品。
-
質量保證需要從有別於產品、開發、設計的視角來看待整個產品週期。
-
需要專門人員通過各種技術手段和流程改進,逐步解放團隊內部人員,讓他們把精力放在對產品的把握上。
-
質量保證既需要方法論,又需要效率,其他人員不能同時具備。
-
產品需要不同層面的質量(可用、易用、好用、愛不收手)。
-
非測試人員或許能碰得到 Bug 但不代表測得出 Bug。正如覺得電影不好看,也不一定就能拍出好電影。
總結:收益>投入時,投入才值得,這或許是對為什麼需要測試人員的最好回答了。如果將測試人員看做是專案投入的話,那麼其所能產生的收益必定更大,換言之,使用專門的測試人員是值得的投資。
四、測試人員地位為什麼在團隊中未被足夠重視?
1. 無論是否熟悉網際網路公司團隊合作模式,相比產品人員、開發人員,測試人員工作往往由於處於專案的中後期,而產生了這樣一個印象:
沒有產品人員/開發人員,根本出不了產品;而沒有測試人員,大概也是可以的。
2. 對於產品層面的直觀印象是:
你的團隊有測試人員,使用者/其他人員不會覺得你的產品好牛逼;
但你的團隊沒有測試人員,使用者/其他人員會覺得你的產品好 low。
3. 測試人員缺少強有力的資料支撐自己的重要性:
現在幾乎所有大中小型公司,考核測試人員的指標都越來越偏向於開發能力了。如果測試人員能開發出一個測試工具/平臺,彰顯自己的開發能力,不僅可以通過分享、工具推廣來增加自己的影響力,更可以在晉升答辯中獲得優勢;
而對於產品層面的直接影響,缺少類似開發能力這麼明顯的衡量標準。除非負責的產品直接有關收入、使用者量等指標,而測試人員又恰恰新提了一個方案,增加了收入、使用者量等(當然這種機會實在是千年難遇,畢竟 90% 的產品可能非人為可以控制);而實際專案往往面臨的是下面的場景:
測試人員對產品層面進行了種種優化建議/改進,但除了多一些 bug 外,似乎也沒有多少有力證據來證明測試人員對產品層面的影響。
五、對測試人員考核的一些思考
Bug 懸賞
眾測平臺:給符合資質的測試人員分派測試任務,最後根據 Bug 的數量或者測試任務的獎勵方式給予報酬;
感悟:這或許是鼓勵測試人員以外的人員來參與測試的最好方式了吧。
為什麼幾乎沒有公司根據 bug 的數量/嚴重級別,對測試人員進行“懸賞”?因為於大多數公司而言,測試任務量大/發現大量 bug 的專案在許多資源方面並沒有比成熟業務有利,大多數情況下,反而更被動。
當測試人員疲於專案測試,整天忙得暈頭轉向時,到績效考核/晉升時卻發現無“重量級話題”可說;而一些專案測試比較“悠閒”的人員,反而可以有時間去持續整合、自動化開發等,去做一些在考核時十分搶眼的事情。兩類人員常常限於自己的迴圈之中。
專案測試中,由於業界普遍對自動化的推崇,實際專案中往往出現了以下現象:
1) 為了自動化而自動化。現在一說到測試執行,如果說還沒有自動化,直覺上好像在進行“很 low”層次的測試一樣;
2) 強調自動化的程式碼覆蓋率,而非從整體測試策略來思考具體的測試執行方案;
3) 大量自動化覆蓋率、高執行通過率的情況下,仍然頻出線上問題。這裡不禁有一個疑問:如果自動化真的減少了人力投入的話,那麼節省下來的人力究竟對確保安全、無故障上線起到了什麼作用呢?
六、寫在最後
目前測試界的現狀是:對測試人員角色理解相對不太深入、測試人員的價值沒有被足夠重視、對測試人員考核的普遍傾向。在當前現狀下,如何在整個團隊中發揮測試角色的作用,又能對自己(如果你是 QA 的話)帶來成長/考核方面的益處呢?
原文:https://blog.csdn.net/huazhongkejidaxuezpp/article/details/8511004
本文授權轉載自 CSDN 部落格,作者多則惑少則明,版權歸其所有。
熱 文 推 薦
☞ 下一次 IT 變革:邊緣計算(Edge computing)