關於軟件測試行業現狀的一些思考

新年伊始,這段時間先後完成了19年年度工作規劃,作為一名測試開發工程師,同時也算是具備一兩年面試經驗,在此就目前軟件測試崗位的現狀結合18年的個人工作感悟,做一些以點及面的總結與思考,與大家分享、交流。

軟件測試行業供需現狀

隨著敏捷、devops等模式的引入以及數據治理、人工智能應用的發展,軟件交付週期逐漸縮短,技術複雜度不斷提升對測試人員提出了越來越高的要求。因此,對校招、社招人員的要求也是在不斷提高的,一方面響應基礎功能需求的手工測試人員基本飽和,另一方面懂測試的測試開發崗位面試達標者比例過低。

通過校招來看,本科應屆生中通過參加機構培訓來提高測試能力的比例逐漸上升,但由於機構培訓內容全面性和深度以及技術的時效性與行業實際要求匹配度較低。碩士應屆生中女生應聘者較多,對於社招相當一部分人員只是在公司參與測試工具、平臺部分代碼開發工作,重複開發情況居多,或者僅僅是現成測試平臺、框架的使用(外包公司),同時並不關注當前行業內測試技術的發展,對測試開發的價值體現也並不清晰,幾乎二三十名應聘者中,一般只有一兩個達標。

基於當前現狀,在18年初部門成立了測試學院,旨在提高測試人員基礎水平,統一測試的基準認知,目前主要面向校招人員,提供各專項測試技術的崗前培訓。

軟件測試行業的發展現狀

之前寫過《2018年度軟件測試行業現狀報告》的解讀以及對軟件測試左移與右移思考的文章,其中總結了以下幾點:

  1. 測試人員對需求分析的投入在逐漸增大,同時測試人員逐漸開始注重客戶問題的分析,更關注用戶體驗和用戶反饋。
  2. 敏捷和類敏捷型項目已經佔到了已經極高的百分比,而DevOps模式的使用已經持續數年穩定增長,DevOps正在成為軟件交付的最佳模式 , 同時我們發現瀑布或類瀑布開發模式比重逐漸降低。
  3. 較去年,自動化測試技術比例基本保持穩定且處在一個高佔比的狀態。不瞭解、不使用自動化的越來越少。同時令人興奮的是,發現越來越多的測試人員將自動化技術應用於日誌和數據分析、綜合監測。

敏捷及DevOps模式的應用,對測試人員提出了不同於以往的要求(以前測試基本上都在開發階段之後和產品上線之前完成),使得測試人員在開發階段之前加大了對需求分析等測試分析和設計(測試左移)、同時不斷提高自動化測試技術的投入和應用、促使測試技術多樣化(如,日誌和數據分析、綜合質量運營監測)發展(測試右移)。

同時,敏捷一直強調“團隊為質量負責”,測試不再是測試人員的專屬,這裡我們需要重新思考下,質量由整個團隊負責,那麼測試的價值如何更好的體現——如何提高測試效率。

DevOps模式更是對測試、尤其是自動化測試、編碼能力提出了更高的要求。

功能測試人員發展的侷限性

從實習算起,大概做了將近兩年的功能測試,一方面功能測試的深度廣度的潛在延伸性很強,另一方面想突破傳統功能測試思維的確很難。在軟件測試左移的思想中,測試人員對需求分析的投入在逐漸增大,這裡的難點就是如何突破傳統認知的測試設計深度、廣度問題。

大多數功能測試人員,半年工作經驗可以基本的瞭解軟件測試相關流程,但因專注於功能需求的分析、驗證、容易出現忽略功能需求背後的業務需求、用戶需求的情況,對產品整體的質量把握不到位,容易出現得此失彼的問題,也能難將功能測試做成一個閉環。

功能測試的深度和廣度的延伸性不僅僅體現了功能需求本身,還包括產品架構設計、開發技術棧、服務內容與模式、用戶群體等等。

自動化測試方向認知的片面性

談到自動化測試,很多人認為這是測試人員職業發展的一個方向,但對這個方向的認識並不都是充分的,比如,當面試的時候問到自己設計的自動化測試用例的優缺點,自動化測試框架選擇的合理性體現在哪裡時,很難有清晰的回答。這些情況在現在的面試過程中很常見,而如果僅僅是這樣的話,只是依賴一些現成的工具、框架來進行用例的轉化,這還無法說明具備自動化測試能力,只能說明會使用了某些工具。如何圍繞產品質量提高測試效率,不僅僅是把手工用例轉變為自動化用例這麼片面,其中還包含了自動化測試策略、框架的選型、自動化的可維護性、可擴展性、可持續性等等方面的諸多考慮,比如,如何有效解決自動化代碼量隨著用例數量的增加而增長的問題?一個難以維護、擴展的自動化測試實踐,是失敗的。

“圍繞產品質量,提升測試效率,通過不斷的技術創新、應用,不斷提高測試整體流程能力(單位時間能夠提供多少服務)。”這是我之前對測試開發崗位的描述,其中自動化測試工程師作為其中一角色同樣適用,那麼關於效率提升的目的是什麼呢?假如一個測試團隊的人數相對固定、測試時間充足,他提升效率的目的又是什麼呢?從這種角度來思考,個人認為測試效率提升的根本意義在於:

  • 做更多的有價值的測試(更深入的需求分析、測試設計或者對測試右移的投入)
  • 實現真正的縮減成本(減少或抽調人力投入)
  • 擁抱變化,適應開發模式的轉變,比如類敏捷、devops模式下的頻繁迭代/持續部署。

除此之外,測試人員具備代碼能力,的確是目前未來測試行業的基礎要求。

資深測試專家、測試架構師稀缺

測試能力分層建設,旨在培養專項的測試技術人才,不斷擴展專項測試技術的深度。這是很多公司人員組織架構或人員培養的一種方式,我們部門也在嘗試測試能力分層建設。這種建設的背後還有另一個隱藏的原因:一專多能的測試技術人才稀缺或者培養一專多能的測試人才成本非常高。

軟件測試分為很多類,比如大家熟知的功能測試、自動化測試、性能測試、可用性測試、除此之外還包括用戶行為分析、數據分析等相關工作,都是圍繞產品質量提供不同測試技術服務。資深測試專家、測試架構師通過對產品架構、設計的理解,通過測試策略的設計,可以有效的多維度保障產品質量,避免測試遺漏或過度測試。

延伸思考

1.國內軟件測試行業未來會產生哪些變化呢。

猜想:基礎的功能測試由開發團隊負責,測試人員更傾向於自動化測試開發、安全測試、測試建模、精準測試、性能測試、可靠性測試、灰度和監控等專項測試工作中,DevTestOps模式到來。

2.測試行業選擇Python開發語言如何

猜想:近年人工智能,物聯網、區塊鏈、機器學習等熱門技術應用都可以看到Python的身影,其影響及應用的廣度和深度正在不斷的擴散,很有前途。

關於軟件測試行業現狀的一些思考


分享到:


相關文章: