前幾天在技術交流群裡,大家聊起了自動化測試在當前降本增效大環境下的落地實踐,以及遇到的一些挑戰。聊了蠻多的話題,我總結下來主要集中在如下三點:
- 自動化測試是否有必要繼續投入?
- 降本增效下的自動化測試實踐,有哪些可參考案例?
- 除了自動化測試,阻礙效率的因素有哪些?如何解決?
就這三個話題,我想結合我的實踐經驗,談談我觀察到的現象和一些解決問題思路。
1、自動化測試是否有必要繼續投入?
首先很肯定的說,自動化測試是有必要繼續投入且長期投入做下去的,為什麼?
答案很簡單,因為技術的發展本身就是更好的更高效的技術替換原有的低效的技術,這是技術發展的自然規律,不以人的意志為轉移。
與軟體工程領域很類似的就是工業界,也是透過大規模的自動化流水線替代了原有的手工作坊,這樣大規模的自動化流水線才能降低技術研發的前期巨大投入,從實驗室作品轉變為可以為普通人所接受並使用的工業化產品。比如手機,比如汽車,都是在如此規律中發展變化的。
但是,需要注意:技術的發展和落地演進,前期確實需要投入一定的成本,且短期的收益無法覆蓋成本的。
只有長期的投入和不斷實踐最佳化,前期投入的成本才能在後期被大規模應用所攤薄成本,帶來正向的收益,自動化測試也不例外。
前幾年經濟形勢尚可,IT網際網路行業還存在泡沫時候,確實湧現出了不少自動化測試相關的工具/框架和最佳實踐案例。
雖然在當下降本增效的環境中,很多公司在降低IT和技術開支,但借用以前的工具/框架和最佳實踐案例,依然可以幫我們少走彎路,為質量保障提升帶來些許助力。
當然,從我個人的角度來講,自動化測試在落地實踐前,需要考慮清楚如下幾點事項:
- 短期專案,重點關注需求和交付質量即可,自動化測試慎用。
- 迭代快的專案,自動化測試用例和資料維護成本高昂,考慮資源和成本是否充足再決定。
- 自動化測試在當前大環境下,更大的價值是保質量,而不是提高效率(至少短期內成本大於收益)。
2、降本增效下的自動化測試實踐案例
當前大環境,各個IT網際網路公司都在大搞特搞降本增效,很典型的例子就是,以前會有專職的測試開發負責各種測試平臺和工具開發,為業務測試提供支撐。
而現在,測試開發的大部分工作內容也是參與業務測試,工具和平臺開發佔比越來越小。
還有一個典型的例子就是對商業工具的採購。
前幾年做To B的軟體SaaS公司,活的還可以,這幾年接連倒閉或轉換業務方向,能活下來的越來越少,客單價也越來越低,筆者是深有體會。
當下自動化測試更合理的做法是,開發一些小工具(比如造資料)或者直接用成熟開源的測試工具/平臺,能讓測試用例跑起來,滿足主流程的一些日常回歸就足夠了。越想深入,成本越高,收益的邊界遞減效應越明顯。
下面是一個技術交流群的群友分享的他們目前的自動化測試案例:
有專門的自動化測試組,開發工具+新增指令碼,新功能上線,自動化用例再同步。
功能測試同學專注於功能和業務測試,以及維護自動化測試指令碼,UI主流程迴歸還是手工。
新功能測試任務拆分時,分為功能測試和自動化測試,等功能釋出到線上,自動化再跟上即可。
當然,上述案例僅是交流時這位同學描述的,具體詳細情況我不甚瞭解。他的這個案例我評估下來,其實投入的成本還是比較高的,一般小公司養不起專職的自動化測試團隊。
而且這樣做還容易導致這樣的問題:自動化測試對功能測試同學來說就是一個黑盒,維護自動化測試指令碼沒有工作成就感和反饋,時間久了容易懈怠。
自動化測試組對業務理解會不夠深入,時間久了很容易務虛,向著工具平臺組發展。整體來說,他們測試團隊的成本應該是居高不下的。
不過他們這樣的做法,有一個亮點,就是自動化測試的建設和日常運營是分開的,不會耦合在一起導致更加高企的沉沒成本。長期來說這種方式還算比較合理,但這個又很考驗管理者的能力,這就是下面我要分享的內容。
3、阻礙效率的因素以及提升效率的思路
其實很多時候我們在講提高效率,用技術手段解決效率低下問題,我的看法是有點隔靴搔癢。因為真正導致效率低下的因素是需求的不明確、頻繁的需求變更、大量的溝通和會議以及跨團隊協作,這些佔其中大部分因素。
少部分因素則是工程師個人技術能力和職業素養問題,以及更少部分的工具平臺問題。
用一位技術群同學的話來說,效能提升=管理手段70%+人員能力20%+工具平臺10%。雖然不是特別準確,但也很形象的解釋了團隊越大效率越低的現象背後的原因。
自動化測試在落地之前,一定要明確目標是什麼,要解決什麼問題。如果是為了提高效率,最後大機率會以失敗收尾。
應該將自動化的關注點放在和業務低耦合的區域,比如造資料,比如監控跑批,而不是提高自動化測試用例的覆蓋率!
相比於用工具和技術手段解決低效率問題,還不如想想,如何讓需求寫的更明確,如何讓產品研發都按照排期交付提測。
如果只是不斷壓縮測試時間,讓測試同學又跟進專案進度,又保證質量,又要落地維護自動化,那很快測試團隊會陷入顧此失彼的境地。
最終的結果就是,測試更累,質量保障和效率提升都沒得到明顯效果,領導在那兒氣急敗壞說測試什麼正事都沒做好。