測試開發都這麼厲害了?為啥不直接轉業務開發?

狂师發表於2024-03-28

大家好,我是狂師!

前段時間,在後臺收到一則留言:"請問一下,你覺得開發技術好,還是測試技術好,如果測試技術好,為什麼不直接開發,幹嘛做測試?"

這是一則很有意思且大多數技術新人普遍存在的困惑,今天就以此問題,給大家統一解答,分享一下筆者的觀點。

1、首先,從技術本身來講,

開發技術和測試技術都是軟體工程中不可或缺的技術能力,它們各自具有獨特的價值和重要性。無法簡單地說哪個技術更好,因為它們的優劣取決於具體情境和需求。

開發技術專注於實現軟體的功能和特性,它涉及到程式語言、演算法、資料結構、設計模式等多個方面。優秀的開發技術能夠確保軟體具有高效、穩定、安全的效能,滿足使用者需求。

測試技術則專注於確保軟體的質量和可靠性,它涉及到測試用例設計、自動化測試、效能測試、安全測試等多個方面。優秀的測試技術能夠及時發現軟體中的缺陷和錯誤,為軟體開發提供質量保障。

2、從崗位職責來講,就軟體工程來說,

開發工程師則是一個更廣泛的概念,包括軟體設計人員、軟體架構人員、軟體工程管理人員、程式設計師等一系列崗位。他們的主要工作是進行軟體的開發和生產,技術要求較為全面,包括但不限於程式語言、資料庫技術、平臺技術等多個方面。

而測試工程師,隨著近些年行業發展趨勢,大體又分為兩類:業務測試工程師、測試開發工程師。

  • 業務測試工程師,主要負責開發和執行軟體測試,以確保軟體產品的質量和可靠性。他們需要設計、編寫和執行測試計劃和測試用例,識別和報告軟體缺陷和錯誤,參與軟體開發生命週期,並與開發團隊密切合作。測試工程師需要掌握軟體測試理論、方法和工具,同時還需要具備分析問題、識別潛在風險和提出解決方案的能力。

  • 而測試開發工程師,是一種特殊的角色,他們既是開發人員,又負責軟體測試。他們關注軟體產品的可測性、穩健性和效能,並在軟體設計初期就參與審閱和推動改進。測試開發工程師需要編寫測試工具和自動化測試程式碼,同時也需要執行一些基礎的功能測試或白盒測試。他們需要掌握多種程式語言、測試技術、開發技術,同時還需具備測試工程師的敏銳思維,能夠從使用者體驗、產品業務角度解決問題。

總的來說,測試開發工程師、開發工程師和業務測試工程師在職責和技能要求上各有側重,但他們共同的目標都是確保軟體產品能符合客戶、使用者需求,同時滿足質量和可靠性要求。測試開發工程師更側重於開發和自動化測試,開發工程師更側重於軟體的開發和生產,而測試工程師則更專注於測試計劃和測試用例的設計和執行。三者之間的協作對於軟體專案的成功至關重要。

這也符合 Google 測試之道一直強調的每個工程師都應注重質量,質量是內建的,而非僅僅是測試人員的責任。

3、再者,我的觀點

在我之前出版的《自動化測試實戰寶典》一書中,提到的 “一名優秀的測試開發工程師應該比開發更懂開發,比產品更懂業務,不然你如何發現開發和業務更深層次的問題呢?”

雖然這一觀點,現實工作中,能達到的人並不多,但實際上它更多是對測試開發工程師角色的一個高度期望和要求。這種表述並不是字面上的絕對比較,而是強調測試開發工程師需要具備跨越開發和產品領域的綜合能力和視角。

  • 首先,測試開發工程師比開發更懂開發,並不是指測試開發工程師在開發技術層面一定比專業的開發工程師更精通,而是指測試開發工程師需要深入瞭解開發的過程、技術棧、常見的錯誤模式以及開發的思維方式。這樣,他們才能設計出更有效的測試用例,更精準地定位問題,更快速地與開發團隊溝通協作。測試開發工程師需要站在開發的角度思考問題,預見並防範可能出現的問題,從而確保軟體的質量。

  • 其次,測試開發工程師比產品更懂業務,也不是說測試開發工程師一定比產品經理更瞭解業務需求,而是強調測試開發工程師需要對業務邏輯有深入的理解,瞭解業務背後的目標和需求,以便更好地設計測試用例和發現潛在的業務問題。測試開發工程師需要站在使用者的角度思考問題,確保軟體的功能符合業務需求和使用者期望。

這種跨領域的綜合能力使得測試開發工程師在發現開發和業務問題方面具有獨特的優勢。他們可以透過深入瞭解開發過程和技術棧,發現開發人員可能忽略的潛在問題;同時,透過深入理解業務邏輯和需求,發現產品可能存在的功能缺陷或不符合使用者期望的地方。

需要注意的是,這一觀點並不是要求測試開發工程師在所有方面都要超過開發或產品人員,而是強調他們需要具備一種綜合的視角和能力,以便更好地履行測試和開發工程師的職責,確保軟體的質量和可靠性。

在實際操作中,測試開發工程師可以透過與開發團隊和產品團隊緊密合作,積極參與專案討論和需求評審,不斷提升自己的業務和技術能力,從而更好地發現和解決開發和業務問題。同時,他們也需要保持開放和學習的態度,不斷吸收新的知識和技術,以適應不斷變化的專案需求和技術環境。

4、最後

質量不是被測試出來的,質量也不等於測試,同時質量並非僅僅依賴於測試階段,而是需要在整個軟體開發過程中進行預防和確保。測試只是其中的一環,而不是質量的唯一保障。

同時測試工程師是一個把質量意識輸出到整個團隊的人,是一個流程推動者,是一個需求挖掘者,是一個質量把關者,一方面我們確實透過自己的經驗和技術手段去挖掘更多的 Bug,另外一方面,透過傳播質量意識儘可能的去從產品上游去避免 Bug。

開發測試比本身沒有實際任何意義,只是人員數量上的比率,如果在你的職位頭銜上有測試的字樣,你的任務就是怎麼使得那些頭銜上沒有測試的人可以更好地去做測試。

希望這些觀點,能給你帶來新的啟發,共勉!

相關文章