一個軟件測試工程師的成長日記(連載四)
1.4 職業生涯的考慮--技術還是管理
職業生涯規劃是每個專業人員都應該慎重考慮的問題。測試工程師是一個專注程度很高的技術背景職位,職業上應該往哪個方向發展,是測試工程師到了一定時候應該考慮的問題。在IBM,因為業務涉及很廣的范圍,因此,提供給員工們選擇的空間非常廣闊。就技術職位而言,發展的方向主要包括技術方向和管理方向。另外,轉向商業業務部門也是可能的選擇。那么,作為測試工程師,在技術上或管理上都有哪些可以選擇的發展方向?一個菜鳥工程師,應該如何選擇方向?
1.4.1 測試工程師的技術發展路線
作為職業發展起步,測試工程師可以先把自己定位為某種專門測試的專家,如功能測試專家、系統測試專家等。無論從哪種專門的測試開始,測試新手都有機會了解測試的一般方法論和通用的原則,這些知識對于不同的測試領域都是必需的。此外,針對不同的測試,測試新手需要學習特定的測試方法。例如,對于功能測試工程師而言,黑盒測試理論、測試用例構建和分析等技術是必不可少的;而對于系統測試工程師,了解不同種類系統的特性、性能指標,學習系統測試構建方式等技術是必修課;而對于構建測試工程師而言,學習構建技術的原理、系統部署技術、增量和全量發布技術等內容對于進行構建測試是非常重要的。有了一般性的技術和針對特定測試種類的專業技術作為基礎,測試新手需要通過項目經驗的累積,逐漸達到測試專家的水平。關于測試工程師的技術發展路線見圖1-5。
由于不同的測試種類之間是有關聯的,對于不同的業務步驟也很具有針對性。作為某種測試的專家,通常只熟悉和這類測試相關的系統特性或功能。如果希望對系統有更全面的認識,這時可以考慮轉為另一種測試類型的測試工程師。在轉換測試類型時,并不需要重新學習測試理論,而僅需要學習新的測試類型的測試技術和被測試的系統模塊。測試工程師成為多種測試類型的專家以后,對整個系統的測試方法和測試流程都會有全面且深入的理解。
到了這個階段,測試工程師要面臨的是另一次選擇。有了對多種測試類型的積累,工程師對被測的業務也有相對深入的理解,這時,可以轉向基于基礎產品的項目開發的主要測試負責人的角色,或者成為一名技術支持專家,專門解決和客戶有關的技術問題。如果希望在測試方面做得更專注,那么,也可以選擇成為產品的測試架構師,從不同的高度更深遠地影響產品測試的方法論和策略。如果工程師起初并沒有轉向別的測試類型,而是專注在同一種測試類型上,那么,就有更多的時間集中地把一種測試類型研究透徹,目標是成為這種測試類型的專家或大師。每種測試類型都需要方法和實踐上的創新,而測試高手和大師無疑更能推動這種創新。
我們說過,在敏捷開發團隊中,測試工程師作為開發項目的成員存在。在積累了一些項目經驗并具備相關的技能以后,測試工程師可以開始嘗試敏捷開發團隊的其他角色。一種典型的選擇是成為開發工程師,把專注的點從測試變成開發。擁有產品質量控制經驗的開發工程師,從技術上更能把握對設計和實現的質量考慮。當然,開發和測試就工作性質而言差別較大,對于剛從測試工程師轉型的開發工程師,學習開發模型及相關技術會是一個不小的挑戰。
本身經驗已經比較豐富的測試工程師,可以轉成產品架構師,直接參與設計。直接成為架構師以前,測試工程師應該已經了解一些測試以外的內容,如業務需求和市場背景、產品整體架構、適當的實現細節等。因此,從測試工程師轉型為產品架構師,也是個很有挑戰性的變化。如果希望技術做得更深入,產品架構師也許不是最好的選擇;信息架構師角色,如應用架構師、基礎設施架構師等,為走深入技術路線的測試工程師提供廣闊的選擇空間。
在IBM,純技術背景的專家只要做得足夠好,都能得到認可。在這種氛圍條件下,測試工程師可以根據自己的興趣選擇職業發展方向。有人說,興趣是一個不時變化的玩意兒,不錯,因此,在這里不乏從測試工程師轉型成其他角色后又重新回來的案例。有一個足夠大的舞臺,周圍有許多各方面技術的專家,也有許多成功或失敗的案例作為借鑒,測試技術專家在確定自己的職業發展路線時擁有非常廣闊的選擇空間。
小艾作為測試工程師加入團隊,隨著經驗的積累和技能的提升,越來越多的選擇會擺在面前。當達到一定程度的時候,如何選擇職業生涯發展路線的問題會再一次出現在小艾的面前。
1.4.2 與人打交道--管理測試團隊
在一個大型的軟件開發項目里,完成開發任務的主體是整個團隊,而非單獨的個人。為了使團隊有效運作,管理角色不可或缺。在測試團隊中,管理的任務通常由測試組長和測試經理負責。區別于純技術的職位更多地關注技術的細節,管理人員必須花相當多的時間與人打交道。作為測試管理人員,為了讓團隊以高效率運作,需要關注人力資源和合理分配,使測試工程師的技術優勢得以發揮。在定義測試任務時,測試組長從宏觀的角度考慮現有資源是否可以滿足完成測試任務的需求;如果資源不足,是否可以通過溝通解決。測試經理還需要關注轄下組員的技術和職業發展訴求。測試管理者好比測試團隊的大腦,"大腦"要完成對團隊整體行動的決策和總體指揮。從分工角度來看,管理人員和技術專家的區別是非常明顯的。
相對于一般的項目管理,測試管理需要更專注于風險控制和質量控制。項目出現變更時,測試進度就有可能受影響,進而有可能影響產品的最終質量,或者說,項目的風險有可能提高。管理人員應采取必要措施,控制項目的風險。從技術角度看,測試管理人員需掌握項目管理的相關技能。
隨著測試工程師的經驗累積,以及對相關測試技術和項目管理技術的掌握,到一定程度時,測試工程師就可以選擇轉向管理角色,成為測試組的技術組長或測試項目經理。技術組長在技術上至少能達到一般組員的水平,而工作上則體現出更強的技術領導力和影響力。因為技術組長關注的面更廣,同時有更多和人相關的事情需要處理,因此對技術細節的關注度會不可避免地降低。測試項目經理則關注測試項目的進度和項目管理的細節。
測試組長的職位本身還是技術性質的,而測試組長的進一步發展方向又是什么呢?測試組長面臨的選擇相當豐富,在管理的道路上進一步發展,測試組長可以嘗試測試經理或開發經理的職位,把更多的注意力投放在管理方面;從業務方向看,由于已經積累了比較深厚的測試專業知識和一定的業務知識,測試組長可以轉而嘗試業務方面的職位,如技術銷售、技術服務等;如果希望繼續從事專注于技術類的工作,測試組長可以基于某個測試種類深入鉆研,成為這個測試類型的高級角色。
1.5 學習筆記--測試入門之小艾觀
萬事開頭難,小艾作為菜鳥測試工程師加入到測試項目團隊,以一名新人的視角學習了不少關于測試入門的知識。有了基本的知識及對測試專家廣闊的發展前景的把握,小艾將有機會在測試的海洋開始一段新的旅途。學習之余,小艾也得到不少感悟。
要成為專業技術人員,花大量時間和精力學習專業技術是不可避免的。學習基本功是一個苦練的過程,但同樣需要講究學習方法。知識學習其實是體系性的,軟件測試有一套完整的知識體系,把握知識體系的脈絡,會讓學習更加得心應手。
除了技術,對于測試新手而言,了解測試的業務和基本方法同樣重要。測試是一個工程化的過程,測試在軟件工程過程中必不可少,而且和項目的成敗關系密切。測試新人既應該知道測試人員肩上的重擔,同時也會以作為一名測試專家而自豪。
同是測試工程師,修為和級別可以有很大的差異。有不少"特性"會從測試專家和測試高手的身上顯現出來。如何才能成為測試專家和測試高手?與其說這種修為是專業技能的提升,不如說是思考能力和思維深度的提升。"學而不思則罔",作為測試工程師,思考(Think)是讓學習成果升華的過程,同時也是解決問題所依賴的"必殺利器"。這種思維的能力不光測試專家應當具備,對所有專業技術人員來說都非常重要。
"人無遠慮,必有近憂"。雖說加入測試團隊的時日很短,但作為測試新人,對職業生涯的考慮也是很重要的。測試工程師的職業發展有多種方向可供選擇,根據個人的興趣和特點,以測試工程師作為起步職位,可以嘗試的職位也非常多。職業規劃的最佳方向可能是:找到自己感興趣的,同時又是能做得好的。小艾發現,工作也是生活的一部分,只有對感興趣的事情,才樂意花更多的時間和精力去鉆研。隨著學習和工作的深入,測試其實是件既有趣又很有挑戰的事情。
在軟件開發團隊,最寶貴的資源不是知識,也不是技術,而是人。團隊中大多數同事都是樂于分享的人,共享和溝通的氛圍對新人的入門很有好處,對于團隊的長遠發展和提高確實大有裨益。通過向身邊同事的提問,小艾了解了許多書本和文檔中無從獲取的信息,開闊眼界的同時,技術也明顯提高了。小艾發現,這里從來不缺能回答問題的人,只要愛動腦筋,多提問題,總有意外的驚喜和收獲。
(未完待續)
相關鏈接: