當前位置:
首頁 > 科技 > 誰需要採購自動化測試工具?

誰需要採購自動化測試工具?

作者 | 熊節

出處 | 高效開發運維

這個看似尋常的問題,我在過去十五年中遇到太多次,以至於我已經很清楚,這個問題背後隱藏著一個怎樣深不見底的坑。

去年我嘗試給一個挺傳統的 IT 組織引入持續集成,談到自動化測試的時候,對方的測試負責人問我,有什麼好的自動化測試工具,他們想採購一套。這個看似尋常的問題,我在過去十五年中遇到太多次,以至於我已經很清楚,這個問題背後隱藏著一個怎樣深不見底的坑。

簡而言之,只要聽到「想採購一套好的自動化測試工具」這個話,我就已經基本上知道,這個組織目前還幹不成自動化測試,基本上也幹不成持續集成。這個提問一出,我作為一個敏捷倡導者可以聊的話題基本上就終結了。

過去十五年的經歷給我留下的這個條件反射,背後的邏輯細想起來是這樣的:

首先,為什麼一個 IT 組織會想要採購「自動化測試工具」?這個採購是由誰發起、給誰使用的?

一般來說,專門想採購「自動化測試工具」,如果被測的軟體不是戰鬥機駕駛系統之類的冷門軟體,而是很主流的比如說 Web 應用,那麼發起這個採購的原因一定是對測試的現狀不滿。那麼,為什麼「對軟體質量的不滿」會映射為「對測試的不滿」,基本上,這說明開發部和測試部是分離的,開發和測試不在一個全功能團隊里。並且也只有這種情況下,測試部的領導才會認為可以買一套軟體給所有測試使用

再往下追問,即使需要一個自動化測試工具,這世界上開源的自動化測試工具汗牛充棟,為什麼一定要採購一個商業軟體?

這時候你就要去看這些商業的自動化測試工具在鼓吹什麼賣點了。從錄製測試腳本、到拖拽控制項組合邏輯、到 AI 自動生成測試腳本,這些昂貴的工具無一例外都在鼓吹一個賣點,叫做「不用寫代碼」。於是你就知道了,這些工具對測試部領導有吸引力,是因為領導手下的測試人員全都不會寫代碼。

然而,很不幸,不會寫代碼的測試人員,不管有沒有什麼工具幫他生成測試腳本,他也只能從圖形界面上模擬最終用戶的操作,做界面的自動化測試。而圖形界面的自動化測試,無一例外地存在一些內生的困難:運行慢;流程大量重複;不穩定;難以調試;難以維護。因為有這些內生的困難存在,嚴重依賴圖形界面自動化測試的團隊,無一例外,剛開始,錄製幾個用例,看著界面唰唰的自動翻滾,挺開心,等到用例多了,跑一趟要幾個小時,還隨機出錯,出了錯半天找不到問題在哪,頁面一改一堆測試失敗。不用太久,我的個人經驗,一般出不了半個月,這套用例就被廢棄了。華為的一些團隊執行力特彆強,可以堅持三個月,得到一堆特別慢、特別不穩定、特別難維護的用例,浪費特別多的時間和精力。

現實很殘酷。自動化測試也是程序。想把程序寫好,辦法很簡單,第一你要讓你的團隊具備寫好程序的能力,起碼要會寫程序;第二你要給他們一定的空間讓他們寫好程序。具體到自動化測試,這事情應該怎麼做,至遲到 2010 年已有定論:架構好測試金字塔;多寫單元測試,少些界面測試;界面測試遵循 BDD;設計好頁面模型;隨時重構測試代碼;隨時提取等效低成本測試。但要做到這些事,不僅需要會編程,還得相當會編程。很多組織不想做這些踏實的事,想取巧,想抄捷徑,所以他們就想買一套工具解決自動化測試的問題。可惜,無一例外地,他們全都掉坑裡了

一個相當會編程的人,一眼就能看出,錄製腳本這事太麻煩了,錄製出來的腳本還得各種重構各種整理,還不如一開始把頁面模型設計好,代碼量少得多。更不要說拖拽控制項組合邏輯,那玩意比編程慢太多,還沒有 IDE,只有 6 歲小孩學編程的時候才會覺得拖拖拽拽的挺好用。這種工具的出發點就是預設了使用者是外行、是弱智。這些工具預設了這份工作是該外行、弱智來做的,你覺得用這些工具能把這工作做到多好?

真正需要自動化測試的團隊,摸索來摸索去,最終總會找到這條正確的道路。比如阿里釘釘的團隊,為了快速驗證產品佔領市場,2014 年的時候開始搞 Scrum,每個月對外發布一個新版本,每個星期發布一個阿里集團內部測試版。回歸測試跟不上,怎麼辦,開發自己寫自動化的回歸測試。一個與業務目標對齊的全功能團隊,必然會走到這條路上。

但諷刺的地方在於,有能力把自動化測試做好的團隊,一定也有能力用開源工具組裝出適合自己的測試技術棧,畢竟開源工具實在太豐富了。所以他們不需要人來給他們賣自動化測試工具。雖然 ThoughtWorks 有相當不錯的自動化測試工具,他們也不會買。沒必要,自己組裝的功能也大差不差,用得還順手,犯不著花那冤枉錢。他們可能會說,你們的工具基於什麼開源軟體做的呀,這幾個功能還挺有意思的,要不我自己也做做看,我上次在某某技術大會聽過你的演講,講得特別好,回頭咱們多交流呀。

所以,這個市場上只有一種買家需要自動化測試工具這種商品,就是幹不成自動化測試的那種。越是幹不成,越是願意掏著大筆錢買工具,幻想這次能買到「讓不會寫程序的人寫出好程序」的神奇藥水。而做這種工具的廠商,也就慢慢地都迎合著這些買家的幻想,炮製出一份又一份「不用寫代碼就能搞好自動化測試」的江湖打葯。最新的江湖打葯,據說是摻了 AI 在裡面的。

所以,我一個敏捷倡導者,聽到這麼一個採購需求,還聊啥呢?聊人和交互重於流程和工具么?還是聊聊貴地有啥特色美食?友好地結束這個談話吧。

作者介紹

熊節,寶尊電商成都研發中心總經理,擁有十七年 IT 行業的從業經驗,在金融、零售、政府、電信、物流等行業的信息化建設方面有著豐富經驗,曾翻譯過《重構》、《軟體工藝》等多本軟體研發領域的重要著作,是中國 IT 業敏捷浪潮的領軍人物。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

FreeWheel業務系統微服務化過程經驗分享
蘋果公司喪失創新力了嗎?

TAG:InfoQ |