今天,思索下軟件工程師的出路。
首先,必須肯定,無論是哪個行業,只要成為精英,不愁發展。但是,絕大多數人,由於各種原因,成長並不順利。
下面是知乎的一些內容:
謝邀,這個是筆者測試崗位工作7年的總結,有興趣可以看看。
—————分割線————————
從畢業到現在已經快七年,同時也進入了30歲的門檻。以前一直以為30歲是一個離自己很遙遠的年代,不過卻這么快就來到了,好像畢業還是就在昨天。
七年的時間足夠讓一個人無論從身體、財富、思想、人際關系等等方面發生質的變化。比如:筆者現在身體就大不如前了,也許這也是一個好的信號,提醒自己該注意了。
寫了兩段廢話,這里回答下大家的疑問:為啥畢業不到七年,卻標記為八年的測試工作經驗呢?答案是:加班,呵呵。下面開始回到正題吧。
一般來說,做測試不久后(可能是半年,也可能是一年),自己就會去思考自己的職業發展方向。對於測試來說(轉崗的不算),無外乎就四個方向:測試管理方向、自動化測試方向、性能測試方向和測試分析方向。每個方向要學習的重點都不一樣,這里不去討論哪個方向更加有前途,因為適合的才是最好的,下面分別討論下每個方向大概的經歷以及需要注意的地方。
測試管理:測試管理一般來說過程為:項目經理->測試經理->測試總監-> 研發總監(CTO角色)。越往上走對具體的技術要求越低,但是對於技術(戰略)規划和管理能力要求越來越高。
對於初級測試管理崗位,其實更多的是一個服務角色,而不是管理角色。如果你對技術不是非常敏感,更加喜歡跟人打交道,並且喜歡去協調和組織工作;並且能夠受的了委屈,那么你可能更加適合去走管理崗位(但是千萬不要去放棄自己的技術,否則你第一道坎都邁不過去)。
選擇這個方向后,就要開始在溝通、執行力、反饋、解決問題等能力方面去培養和表現自己,讓上級看到自己這方面的能力,並且跟上級提出想去管理項目的意願,這樣你經過一段時間后肯定會有帶項目的機會,剩余的就靠自己去發揮了(小編:后面會分享一個項目經理如何去管理好項目,有興趣的同學可以關注下)。
自動化測試:自動化測試的一個很重要的目的就是提高測試效率,並且快速的反饋質量。但是各個領域的自動化還是有一些區別的,比如:web自動化和手機軟件自動化。而對於自動化來說,首先還是要去學習自動化的框架(這里跟一些朋友理解的自動化主要就是去寫代碼還是有一定區別的),好的框架能夠讓你事半功倍。而對於自動化人員來說,學習自動化框架對於自己后面的自動化開發工作是很有幫助的。
這里拿web自動化來舉例子吧!當前流行的就是selenium框架+腳本語言(python or ruby)。去系統的學習下selenium框架,並且嘗試搭建起來並且用於自己的項目,這樣你對自動化的理解可能就會更深入 (而不要將selenium想象成為簡單的錄制和回放)。腳本語言還是很簡單的,只要你有過編程的基礎,上手肯定很快,至於后面就看自己對技術對熱愛程度了,可能你會開發出更加適用於同類型產品的測試框架(在效率和可維護性上更牛逼),當然,不管走的多遠,都不要忘記了做自動化的目的。
自動化還有一個方向就是走SET的工作,大家不了解的去看看google測試之道吧,還是一本不錯的書籍。
性能測試:要做好性能測試,一個最重要的前提就是需要了解被測試產品的系統架構,掌握整個系統的數據流向和交互;這樣你才能夠分析出系統的壓力點,從而制定性能測試計划,否則你再牛逼的性能測試工具都可能達不到測試目的。
然后就是選擇一個性能測試工具,這里建議多分析下一些開源的性能測試工具,比如:ab性能測試工具。掌握這些工具的實現原理,這對於后面自己去優化工具來達到測試目的會有很大的幫助。而不是簡簡單單的覺得自己會使用loadrunner的錄制回放以及結果分析就是性能測試的大牛了,這樣我只能說,你對自己要求太低了。
實踐、分析、驗證、反復實踐,終有一天你會成為該領域的性能測試大牛以及測試專家,這里不得不說的就是,一般性能測試大牛同時也是測試工具開發的大牛,否則你可能還要去依靠別人(不符合大牛的身份)。
測試分析:這塊的技術因為無法量化的評估出效益導致很多測試人員不願意去走這條道路,這個跟國外的情況還是有很大區別的。大家感興趣的可以去看看James A. Whittaker 寫的《探索性軟件試》,看完后,可能你會覺得軟件測試真正的魅力原來在這里。而探索性測試僅僅只是測試分析的一方面;這里的測試分析包括:測試設計分析、測試策略分析、測試質量分析、測試需求分析等等;但是不得不說的是,這塊確實比較難,很多同學因為看不到自己的明顯進步或者研究了一段時間都沒有產出,從而放棄了,筆者不得不說這是一個很遺憾的事情(這個過程需要自己不斷的總結和積累,沒有一個通用的方法,但是你在這個領域持續做了1萬個小時,肯定會有產出,這樣你就是大牛,並且能夠發現測試的興趣)。
我自己的發展歷程,不過我總覺得有點特殊性:
- 圖靈社區 : 閱讀 : 我的測試之旅:(1)起點——作為軟件開發人員
- 圖靈社區 : 閱讀 : 我的測試之旅:(2)轉變——作為專職測試人員
- 圖靈社區 : 閱讀 : 我的測試之旅:(3)同期——加入測試自動化小組
- 圖靈社區 : 閱讀 : 我的測試之旅:(4)並行——自動化回歸測試
- 圖靈社區 : 閱讀 : 我的測試之旅:(5)難點——功能改進的測試
- 圖靈社區 : 閱讀 : 我的測試之旅:(6)跳轉——追逐新鮮事物的探險者
- 圖靈社區 : 閱讀 : 我的測試之旅:(7)啟程——Scrum中的測試工作者
- 圖靈社區 : 閱讀 : 我的測試之旅:(8)困難——沒有現成的測試工具
- 圖靈社區 : 閱讀 : 我的測試之旅:(9)行動——簡化測試文檔和流程
- 圖靈社區 : 閱讀 : 我的測試之旅:(10)貢獻——開發項流程(Development Item Process)
- 圖靈社區 : 閱讀 : 我的測試之旅:(11)嘗試——Scrum Master
- 圖靈社區 : 閱讀 : 我的測試之旅:(12)機遇——測試自動化培訓師和教練
- 圖靈社區 : 閱讀 : 我的測試之旅:(13)轉型——敏捷教練