從軟件測試行業發展,漫談測試工程師職業發展之路

發表于:2021-4-07 09:23  作者:佚名   來源:今日頭條

字體: | 上一篇 | 下一篇 |我要投稿 | 推薦標簽: 軟件測試工程師 職業發展

  軟件測試行業供需現狀
  隨著敏捷、DevOps等開發模式的引入以及大數據治理與應用、人工智能機器學習與深度學習的應用的發展、軟件交付周期逐漸縮短、技術復雜度不斷提升對測試人員質量保障與效率提升等方面提出了越來越高的要求。因此,對人員的要求也是在不斷提高的,一方面響應基礎功能需求的手工測試人員基本飽和,另一方面懂測試的測試開發面試達標者比例過低。
  軟件測試行業的發展現狀
  通過之前對近幾年《軟件測試行業現狀報告》的解讀,以及結合對當下軟件測試左移與右移思考,總結了以下幾點:
  測試人員對需求分析的投入在逐漸增大,逐漸注重用戶反饋問題的分析,更關注用戶體驗。
  敏捷和類敏捷型項目已經占到了已經極高的百分比。DevOps模式的使用已經持續數年穩定增長,正在成為軟件交付的最佳模式 。 同時類瀑布開發模式比重逐漸降低。
  較去年,自動化測試技術比例基本保持在一個高占比的狀態。不了解自動化的越來越少。同時發現越來越多的測試人員將自動化技術應用于日志和數據分析、綜合監測。
  敏捷及DevOps模式的應用,對測試人員提出了不同于以往的要求,以前測試基本上都在開發階段之后和產品上線之前完成,使得測試人員在開發階段之前加大了對需求分析等測試分析和設計、同時不斷提高自動化測試技術應用,促進研發內建質量。(測試左移)
  隨著業務、用戶對產品質量提出更高的要求,以及測試開發技術發展與應用,促使測試技術多樣化發展,如,日志和數據分析、質量運營、服務監測等。(測試右移)
  同時,敏捷一直強調“團隊為質量負責”,測試不再是測試人員的專屬,這里我們需要重新思考下,測試的價值如何更好的體現——如何提高測試效率。
  DevOps模式更是對測試、尤其是自動化測試、編碼能力提出了更高的要求。
  功能測試人員發展的局限性
  一方面功能測試的深度廣度的潛在延伸性很強,另一方面想突破傳統功能測試思維的確很難。在軟件測試左移的思想中,測試人員對需求分析的投入在逐漸增大,這里的難點就是如何突破傳統認知的測試設計深度、廣度問題。
  大多數功能測試人員,半年工作經驗可以基本的了解軟件測試相關流程,但因專注于功能需求的分析、驗證、容易出現忽略功能需求背后的業務需求、用戶需求,對產品整體的質量把握不到位,容易出現得此失彼的問題,也難以將功能測試做成閉環。
  功能測試的深度和廣度的延伸性不僅僅體現了功能需求本身,還包括產品架構設計、開發技術棧、服務內容與模式、用戶群體等等。
  我們清楚的認識到,一個優秀的測試工程師,應該做到:
  懂業務:能夠站在用戶角度理解業務、用戶需求,能扎實通過測試設計的保證業務質量。
  懂技術:具備技術解決方案思維和能力,提升產品質量和測試效率。
  懂架構:具備產品架構的基本認識和識別架構設計中的質量、性能風險,保證產品需求和實現能夠滿足用戶需求及產品發展需要。
  我們不難得出測試逐漸向測試開發過渡已經是一種顯在的發展趨勢,無論我們決定將來走技術路線還是管理路線。
  但具備了一定的開發能力并不等同于能夠做好測試,之所有測試開發成為一種趨勢,是因為測試人員在具備優秀測試設計等業務測試能力的基礎上,若同時具備一定開發能力和技術解決思維,能夠更好的從質量、效率、風險、成本之間尋求一種平衡。
  自動化測試方向認知的片面性
  談到自動化測試,很多人認為這是測試人員職業發展的一個方向,但對這個方向的認識并不都是充分的,比如,當面試的時候問到自己設計的自動化測試用例的優缺點,自動化測試框架選擇的合理性體現在哪里時,很難有清晰的回答。
  如何圍繞產品質量提高測試效率,不僅僅是將手工用例轉變為自動化用例這么片面,其中還包含了自動化測試策略、框架選型,自動化的可維護性、可擴展性、可持續性等方面的諸多考慮,一個難以維護、擴展的自動化測試實踐,是失敗的。
  “圍繞產品質量,提升測試效率,通過不斷的技術創新、應用,不斷提高測試整體流程能力(單位時間能夠提供多少服務)!奔偃缫粋測試團隊的人數相對固定、測試時間充足,他提升效率的目的又是什么呢?
  從這種角度來思考,個人認為測試效率提升的根本意義在于:
  做更多的有價值的測試(測試左移或右移的投入)
  實現真正的縮減成本(減少人力投入)。
  擁抱變化,適應開發模式的轉變,比如類敏捷、DevOps模式下的頻繁迭代、持續部署。
  測試職業發展
  測試職業發展方向大致分為管理方向及技術方向。無論我們決定將來走技術路線還是管理路線。都需要注意測試逐漸向測試開發過渡已經是一種顯在的發展趨勢,這樣就要求我們需要具備一定的測試開發能力和技術解決思維。
  雖然測試開發逐漸成為測試人員的基本能能力要求,但不要進入一味追求開發能力。具備了一定的開發能力并不等同于能夠做好測試,之所有測試開發成為一種趨勢,是因為測試人員在具備優秀測試設計等業務測試能力的基礎上,若同時具備一定開發能力和技術思維,能夠更好的從質量、效率、風險、成本之間尋求一種平衡。
  培養全面的測試能力
  懂業務:能夠站在用戶角度理解業務、用戶需求,能扎實通過測試設計的保證業務質量。
  懂技術:具備技術解決方案思維和能力,提升產品質量和測試效率。
  懂架構:具備產品架構的基本認識和識別架構設計中的質量、性能風險,保證產品需求和實現能夠滿足用戶需求及產品發展需要。
  建立良好的質量意識
  我們清楚一切測試活動都是圍繞用戶、業務需求保障產品質量而開展,而保障產品質量的核心是測試設計,而非測試技術,測試技術大多僅是解決測試設計執行的可行性、效率問題。
  拓展測試廣度與深度
  隨著類敏捷、DevOps模式的發展、軟件交付周期逐漸縮短、技術復雜度不斷提升對測試人員質量保障與效率提升等方面提出了越來越高的要求。
  在敏捷開發模型的軟件生命周期中,我們通過不斷快速的迭代,以使其最大限度地符合客戶對系統的需求。此時測試的關注點基本停留在開發階段,以保證產品達到上線標準。引入DevOps之后,我們不僅要關注產品的質量是否達標,還需要使產品或功能價值預期得到及時的驗證。
  因此,我們不僅要將測試左移,還要進行測試右移,通過監控產品在生產環境的運作情況,來驗證其價值并獲得反饋,從而持續改進。我們通過以下三個方面來了解一下測試左移與右移。
  1.新功能是什么?
  在開發環境,我們開發新功能,并且通過測試保證其達到產品驗收標準。
  這就要求從產品生命周期開始時,各個角色(測試、開發、產品負責人等)對業務場景、用戶需求達成一致的認識,從而使其從需求到最后的測試驗證,進行高度的協作和溝通,最后交付最有價值的功能。同時測試人員能夠根據用戶需求進行需求分析,發現產品前期設計是否存在問題或者補充產品設計。同時,通過及早引入自動化測試,協助研發內建質量。
  這里體現出了測試左移的核心思想。
  2.新功能是否價值?
  我們將新功能部署到生產環境以后,接下來就應該衡量業務價值是否達到預期。
  通過對用戶日志或數據進行分析感知用戶的行為變化。比如:比如頁面新增了一個導出功能,發布上線后,發現用戶的點擊導出按鈕的次數幾乎為零,很可能是因為用戶根本不需要這個功能,或者導出按鈕的顏色、位置等易用性(產品質量屬性之一)原因導致用戶沒有使用。這時候需要思考如何對該功能進行調整。如果一個功能沒有使用或者沒有給產品帶來顯著的價值,在功能正確性和性能驗證上投入大量精力又有什么意義呢?
  這里體現出了測試右移的思想。
  3.新功能線上是否是可靠的?
  測試大多數情況只能覆蓋已知的測試場景。產品部署在用戶環境運行的過程中,可能會由于某些不確定性因素(比如數據量突然陡增,用戶訪問突然陡增、網絡不穩定或者數據盤損壞等等)導致產品或功能失效,由于其不確定性使得測試人員很難模擬測試場景,因此產品線上質量運營需要通過監控的手段開展,通常我們需要監控兩種特性:可用性、性能。
  通過持續獲取用戶日志或數據,分析產品性能、程序進程等穩定性、產品質量健康度進行問題報警、預警。同時增加用戶溝通反饋渠道,獲取用戶反饋從而及時調整。除此之外,這一點也充分體現了Dev、 QA、Ops的協作,像監控等原本只能Ops做的事,現在Dev或QA一樣可以做。
  這里也體現出了測試右移的思想。
  提升測試核心競爭力
  個人的核心競爭力與所在行業發展的趨勢,以及隨著行業及相關行業的發展對從業者提出的要求應該是有著直接關系的。
  所以我們需要以發展的眼光,來看未來測試行業會對我們提出哪些要求,進而驅動自己適應未來發展要求。
  什么是核心競爭力,我個人認為核心競爭力一定程度可以理解為不可替代性,所做的事情或者所具備的能力是否可以能被大部分人替代,這就是 是否具備核心競爭力的一個重要體現。
  相對于測試而言,核心競爭力可以是在某一領域的專業性深度足夠深。
  比如性能測試,曾在一次互聯網測試開發大會上,看見過某位前輩講到過的一個案例:在定位某個性能問題時,挖掘到操作系統內核的深度,并且發現是因操作系統內核缺陷導致的性能風險,這個定位問題的過程及結果就是測試專業性深度的體現。
  也可以是具備一定的測試廣度,并且能夠根據不同場景靈活適當的將其融合到一起,做到質量、成本、效率、風險的平衡。
  比如產品迭代初期,一方面產品初步成形,需求變更頻繁、功能穩定性差,同時受到客戶和市場壓力,往往迭代時間緊張,此時對于測試要解決的就是質量與效率平衡問題,自然而然想到自動化測試,然而這個時候自動化是不是合適的呢,顯然自動化初期投入到項目的確能起到效率提升的目的,但隨著迭代發展,會出現什么情況?需求變更引入的自動化維護成本,如果此時業務測試不具備測試開發能力,那么這個維護成本將變的更高,本來就項目時間緊張,自動化維護工作自然而然就變的力不從心,由此,一兩個版本迭代之后,自動化測試就慢慢淡出了視野之外。一般來講,需求度量一般要從最原始的需求開始,比如迭代初期項目時間緊,考慮到版本穩定性,通常不會選擇自動化測試(除非自動化的開展或重構成本非常的低),而是從需求優先級、質量目標、測試覆蓋等角度,對測試廣度、測試深度進行測試策略設計,優先保障核心功能質量。這也是很多公司對測試開發的要求是首先要懂測試、然后懂開發的原因,能夠對業務測試遇到的問題提出適合的技術解決方案,避免盲目開展自動化、工具開發,導致“藥不對癥”。
  雖然我認為核心競爭力一定程度可以理解為不可替代性,但并不意味著封閉,反而要有更加的開放思想,幫助團隊測試人員提升基礎能力水平,提升他們對測試的理解和認識,可以使得遇到更多志同道合的人。進一步思考測試技術能力的水平賦能和流程化能力建設,這對我們的發展有著更大的幫助,也是我們價值的重要體現。
  同時,需要不斷的了解一下當下比較主流的開發、測試思想、模式,如DevOps開發模式、測試左移與右移思想等等;測試應用領域,如人工智能測試;測試技術,如數據、接口的自動化等等,使得我們對測試的認識具有一定的前瞻性。

      本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理

評 論

論壇新帖

頂部 底部


建議使用IE 6.0以上瀏覽器,800×600以上分辨率,法律顧問:上海信義律師事務所 項棋律師
版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2021, 滬ICP備05003035號
投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

滬公網安備 31010102002173號

51Testing官方微信

51Testing官方微博

掃一掃 測試知識全知道

农村里的风流韵事