我以我們團隊招聘功能測試和測試開發工程師為例,帶你了解一下測試工程師的核心競爭力到底是什麼。
如果拋開這個特定的業務領域,他對測試技術本身以及產品技術實現都缺乏系統的思考和理解。換言之,他的價值僅僅能夠體現在這個特定的產品業務上,而一旦離開了這個業務領域,他的經驗積累很難被有效重用,也就是說他很難快速適應並勝任我們的業務領域測試。所以,他最終沒有得到我們的offer。
從這個案例中,你可以看出作為測試人員,必須要深入了解業務,但是業務知識不同等於測試能力。
看完他 的簡歷,我發現他參與開發過的測試框架和工具和我們當時在做的專案很匹配,加之他的背景也相當不錯,內心感覺這個職位基本就是他的了。但是,面談結束後,我徹底改變了想法。
他所做的的確是測試框架和工具平台的開發工作,但是他的核心能力純粹就是開發,他只關注如何實現預先設計的功能,而完全不關心所開發的測試框架和工具平台在測試中的具體應用場景。
我承認他的開發能力,但他並不能勝任我們的測試開發崗位。因為,測試開發崗位的核心其實是「測試」,「開發」的目的是更好地服務於測試,我們看重的是對測試的理解,以及在此基礎上設計、開發幫助測試人員提高效率並解決實際問題的工具,而不是乙個按部就班、純粹意義上的開發人員。
這兩個實際案例,是否已經引發你去思考這樣乙個問題:什麼才是測試工程師的核心競爭力?
目前的測試工程師分為兩大類別,一類是做業務功能測試的,另一類是做測試開發的,二者的核心競爭力有很大差別。那麼,接下來我就帶你一起去看看,功能測試和測試開發工程師的核心競爭力分別是什麼。
我先帶你看看業務功能測試工程師,也就是傳統意義上的測試工程師的核心競爭力,我歸納了以下幾點。
傳統測試工程師應該具備的核心競爭力
這部分內容,我按照一項能力對測試工程師的重要程度的順序,給你依次歸納了測試工程師要具備的七項核心競爭力,包括:測試策略設計能力、測試用例設計能力、快速學習能力、探索性測試思維、缺陷分析能力、自動化測試技術和良好的溝通能力。
第一項核心競爭力,測試策略設計能力
測試策略設計能力是指,對於各種不同的被測軟體,能夠快速準確地理解需求,並在有限的時間和資源下,明確測試重點以及最適合的測試方法的能力。
具備出色的測試策略設計能力,你可以非常明確地回答出測試過程中遇到的這些關鍵問題:
1.測試要具體執行到什麼程度;
2.測試需要借助於什麼工具;
3.如何運用自動化測試以及自動化測試框架,以及如何選型;
4.測試人員資源如何合理分配;
5.測試進度如何安排;
6.測試風險如何應對。
培養出色的測試策略設計能力,不是一朝一夕的事情,通常需要經過大量專案的實際歷練,並且你還要保持持續思考,主動去提煉共性的內容。
不像測試技術,你可以通過培訓或者網上資料的學習而有快速的提公升,測試策略設計能力一定是需要你在大量實踐的基礎上潛移默化形成的。
我認為,測試策略設計能力是功能測試工程師最核心的競爭力,也是最難培養的。
第二項核心競爭力,測試用例設計能力
測試用例設計能力是指,無論對於生命型別的測試,都能設計出高效地發現缺陷,保證產品質量的優秀測試用例。
要做好測試用例設計,不僅需要深入理解被測軟體的業務需求和目標使用者的使用習慣,還要熟悉軟體的具體設計和執行環境,包括技術架構、快取機制、中介軟體技術、第三方服務整合等等。
測試用例設計能力要求你不僅僅侷限於熟悉業務領域的測試用例設計,而是能夠融會貫通,熟練地把系統性的測試設計方法和具體業務有機結合,對任何被測軟體都可以輸出出色的測試用例。
要想提高測試用例設計能力,你平時就要多積累,對常見的缺陷模式、典型的錯誤型別以及遇到過的缺陷,要不斷地總結、歸納,才能逐漸形成體系化的用例設計思維。
同時,你還可以閱讀一些好的測試用例設計例項開闊思路,日後遇到類似的被測系統時,可以做到融會貫通和舉一反三。
第三項核心競爭力,快速學習能力
快速學習能力,包含兩個層面的含義:
1.對不同業務需求和功能的快速學習與理解能力;
2.對於測試新技術和新方法的學習與應用能力。
顯然,快速學習能力是各行業從業者應該具備的能力,但為什麼我會單獨列出來呢?
現今的軟體專案,尤其是網際網路專案,生命週期通常以「月」甚至是以「周」、「小時」為單位,乙個測試工程師需要接觸各種型別的測試專案,而不再像早年,可以在很長一段時間內只從事乙個產品或者相關產品的測試了,所以快速學習能力對測試工程師來說,就是至關重要了,否則就容易被淘汰。
快速學習能力,乍一看是比較難培養的,但其實也有一些小竅門。
比如,當你學習乙個新的開源工具時,建議你直接看官方文件:一來,這裡的內容是最新而且是最權威的;二來,可以避免網上資訊質量的參差不齊。知識輸入源頭是單一,而且權威的話,你的學習曲線也必然會比較平滑。
另外,當學習新內容時,你一定要做到理解其原理,而不是只停留在表面的、簡單的操作和使用,長期保持這種學習狀態,可以在很大程度上提高邏輯思維和理解能力。這樣,當你再面對其他新鮮事物的時候,也會更容易理解,形成良心迴圈。
第四項核心競爭力,探索性測試思維
本質上,探索性測試思維是「測試用例設計能力」和「快速學習能力」有機結合的必然結果。優秀的探測性測試思維可以幫助你實現低成本的「精準測試」,精準測試最通俗的理解可以概括為對開發**的變更,目標明確並且有針對性地對變更點一級變更關聯點做測試,這也是目前敏捷測試主推的測試實踐之一。
第五項核心競爭力,缺陷分析能力
缺陷分析能力,通常包含三個層面的含義:
1.對於已經發現的缺陷,結合發生錯誤的上下文以及後台日誌,可以**或定位缺陷的發生原因,甚至可以明確指出具體出錯的**行,由此可以大幅縮短缺陷的修復週期,並提高開發工程師對於測試工程師的認可以及信任度;
2.根據已經發現的缺陷,結合探索性測試思維,推斷同類缺陷存在的可能性,並由此找出所有相關的潛在缺陷;
3.可以對一段時間內所發生的缺陷型別和趨勢進行合理分析,由點到面預估整體質量的健康狀態,並能夠對高頻缺陷型別提供系統性的發現和預防措施,並以此來調整後續的測試策略。
這三個層面是依次遞進的關係,越往後越能體現出測試工程師的核心競爭力。
第六項核心競爭力,自動化測試技術
掌握自動化測試技術,可以把你從大量的重複性手工勞動中解放出來,這樣你可以把更多的時間花在更多型別的測試上。
一方面,自動化測試技術本身不繫結被測物件,比如說你掌握了gui的自動化測試技術,那麼你就可以基於中國技術去做任何gui系統的介面功能測試了。
另一方面,自動化測試技術需要測試工程師具備一定的寫**的能力,這通常與測試工程師職業發展的訴求不謀而合,所以你會看到很多測試工程師非常熱衷做自動化測試。
但是切記,自動化測試的核心價值還是「測試」本身,「自動化」僅僅是手段,實際工作中千萬不要本末倒置,把大量的精力放在「自動化」上,一味追求自動化而把本質的「測試」弱化了。
第七項核心競爭力,良好的溝通能力
測試工程師在軟體專案中作用,有點像「潤滑劑」:
所以,測試工程師的溝通能力會直接影響事務開展的效率。良好清晰的溝通能力,是乙個技術優秀的測試工程師能否獲得更大發展的「敲門磚」,也是資深測試工程師或者測試主管的核心競爭力。
測試開發工程師的核心競爭力
接下來,我再帶你一起看看測試開發工程師的核心競爭力
首先既然是測試開發工程師,那麼**開發能力是最基本的要求。可以說,乙個合格的測試開發工程師一定可以成為乙個合格的開發工程師,但是乙個合格的開發工程師不一定可以成為合格的測試開發工程師。這也就是案例二中的候選人沒有通過面試的原因。
第一項核心競爭力,測試系統需求分析能力
除了**開發能力,測試開發工程師更要具備測試系統需求分析的能力。你要能夠站在測試架構師的高度,識別出測試基礎架構的需求和提高效率的應用場景。從這個角度說,你更像是個產品經理,只不過你這個產品是為了軟體測試服務的。
第二項核心競爭力,更寬廣的知識體系
測試開發工程師需要具備非常寬廣的知識體系,你不僅需要和傳統的測試開發工程師打交道,因為他們是你構建的測試工具或者平台的使用者;而且還要和ci/cd、和運維工程師們有緊密的聯絡,因為你構建的測試工具或者平台,需要接入到ci/cd的流水線以及運維的監控系統中去。
除此之外,你還要了解更高階別的測試架構部署和生產架構部署、你還必須對開發採用的各種技術非常熟悉。可見,對於測試開發工程師的核心競爭力要求是非常高的,這也就是為什麼現今市場上資深的測試開發工程師的**會高於資深的開發工程師的原因。
軟體測試工程師的核心競爭力是什麼?
我以我們團隊招聘功能測試和測試開發工程師為例,帶你了解一下測試工程師的核心競爭力到底是什麼。這兩個實際案例,是否已經引發你去思考這樣乙個問題 什麼才是測試工程師的核心競爭力?目前的測試工程師分為兩大類別,一類是做業務功能測試的,另一類是做測試開發的,二者的核心競爭力有很大差別。那麼,接下來我就帶你一...
06 軟體測試工程師的核心競爭力是什麼?
一 教程裡這句話總結的比較好 只有當自己真正明白了自己的核心競爭力,才能理清 應該做什麼 和 應該怎麼做 這兩個問題,才能朝著正確的方向前行 二 根據作者列舉的兩個案例並寫的總結 作為測試人員,必須要深入理解業務,但是業務知識不能等同於測試能力 測試開發崗位的核心其實是 測試 開發 的目的是更好地服...
演算法工程師的核心競爭力
工作以來一直在思考演算法工程師這個崗位的核心競爭力,自己的心路歷程分為三個階段。第一階段 這一階段我認為演算法工程師的核心競爭力是對模型的理解,對於模型不僅知其然,還得知其所以然。於是我把目標檢測的經典 翻來覆去地看,將各種目標檢測模型分解成了n個模組,針對每個模組,反覆比對各篇 處理方式的異同,思...