我的一位同事曾經(jīng)很認真地問過我一個問題脊串。他說他現(xiàn)在從事軟件測試工作已經(jīng)4年了辫呻,但是他不知道現(xiàn)在的工作和自己在工作3年時有什么不同,他想旁觀者清琼锋,也許我能回答他的問題放闺。此外他還想知道他做軟件測試工作到第5年或第6年會怎么樣。后來他在工作到第5年的時候轉(zhuǎn)崗了缕坎。雖然他已經(jīng)轉(zhuǎn)崗了怖侦,但是最近聯(lián)系時,他依然問我這個問題谜叹,似乎這個問題困惑他很深匾寝、很久了。
這件事情對我的觸動很大荷腊,我相信這個問題是帶有一定普遍性的艳悔,我也開始系統(tǒng)思考這個問題。
軟件測試是一個缺乏發(fā)展空間女仰、做到一定階段后只能通過“轉(zhuǎn)崗”來尋找發(fā)展機會的職業(yè)嗎猜年?
肯定不是。
Martin Pol疾忍,歐洲業(yè)界公認的“Test Guru”(大佬乔外,精神領袖),1998年歐洲第一屆杰出測試貢獻獎獲得者一罩,并獲得英國騎士勛章杨幼。Martin在測試領域已經(jīng)幾十年,最后在測試工作上名利雙收擒抛。而且推汽,據(jù)說他的大女兒和小女兒都是做測試的,這是名副其實的“測試世家”歧沪。
但是Martin的例子并不能解決“軟件測試本身有哪些發(fā)展”這個問題。作為“精神領袖”莲组,Martin只能讓我們看到最美好的結(jié)果诊胞,讓我們知道這條路是能走通的。有人已經(jīng)成功了,這給了我們信心和希望撵孤。
那么軟件測試的職業(yè)發(fā)展方向有哪些迈着?作為軟件測試工程師,又該如何為自己制訂職業(yè)發(fā)展規(guī)劃邪码?
軟件測試的職業(yè)發(fā)展方向
軟件測試在職業(yè)發(fā)展上裕菠,概括說來可以分為“管理”和“技術”兩大類。除此之外闭专,軟件測試還可以在質(zhì)量領域發(fā)展奴潘。
一、軟件測試在管理上的發(fā)展
軟件測試管理是大家比較熟悉的軟件測試職業(yè)發(fā)展路線之一影钉,比較流行的設置包括測試組長画髓、測試經(jīng)理、測試代表平委、測試主管奈虾、測試總監(jiān)、測試部長等廉赔。不同的公司中相同職位的工作范圍可能略有不同肉微,按照管理級別的高低,大致又可分為以下三級蜡塌。
- 初級軟件測試管理者:測試組長
測試組長一般由有兩年左右工作經(jīng)驗的測試工程師擔當碉纳。
由于企業(yè)的規(guī)模和產(chǎn)品復雜度存在差異,測試組長可能會管理2~5名軟件測試工程師岗照。一般來說村象,測試組長不會負責整個產(chǎn)品,只是負責其中的一個或多個特性攒至。
測試組長并不是完全的管理者厚者。他們從事的管理工作大多僅集中在測試計劃的制訂和執(zhí)行上;在產(chǎn)品測試上迫吐,他們常會負責產(chǎn)品重點库菲、難點的測試;除此之外志膀,他們還要負責帶新員工熙宇,讓測試工作可以順利進行下去。
- 中級軟件測試管理者:測試經(jīng)理溉浙、測試代表烫止、測試主管
測試經(jīng)理、測試代表戳稽、測試主管排名不分先后馆蠕,都屬于中級軟件測試管理者,一般由有4年左右工作經(jīng)驗的測試工程師擔當。
中級軟件測試管理者負責的對象為產(chǎn)品互躬,可能會管理10~20名軟件測試工程師(其中包括測試組長)播赁。
中級軟件測試管理者最重要的工作還是運作測試項目,制訂并執(zhí)行測試計劃吼渡,測試結(jié)束后還需要對產(chǎn)品質(zhì)量進行評估容为,給出產(chǎn)品發(fā)布建議。要做好這些寺酪,需要他們掌握更多的項目管理知識坎背,深入理解項目價值,做好項目范圍管理房维、質(zhì)量管理沼瘫、成本管理、時間管理咙俩、風險管理和人力管理耿戚。除此之外,他們還要和開發(fā)人員阿趁、市場人員膜蛔、服務人員等密切配合、緊密合作脖阵,其間皂股,溝通協(xié)調(diào)能力必不可少。
他們依然是產(chǎn)品測試的骨干命黔,還是會負責產(chǎn)品測試的重點呜呐、難點工作,所以他們也不是純粹的管理者悍募。
- 高級軟件測試管理者:測試總監(jiān)蘑辑、測試部長
測試總監(jiān)、測試部長是軟件測試的高級管理者坠宴,一般都有10年以上軟件測試工作經(jīng)驗洋魂,負責的對象是產(chǎn)品線或公司。
高級軟件測試管理者需要理解產(chǎn)品的商業(yè)目標喜鼓,直接對產(chǎn)品成功負責副砍。他們需要對測試團隊的發(fā)展負責,進行人員招聘和培養(yǎng)庄岖,留住關鍵人才豁翎,提高或更新不合格人員,提升團隊的勝任力和職業(yè)能力隅忿;負責項目財務管理(預算和控制)谨垃;負責資源的計劃與分配启搂;持續(xù)改進測試能力硼控,提升效率和產(chǎn)品質(zhì)量刘陶,從測試的角度對交付產(chǎn)品的成本、周期和質(zhì)量負責牢撼。
我認為匙隔,即使是高級軟件測試管理者,也不可能是純粹的管理者熏版。他們依然需要保持對軟件測試各種技術的領先性蜈块,因為軟件測試技術是上述工作能夠順利開展的基礎院刁。
二、軟件測試在技術上的發(fā)展
軟件測試在技術上的發(fā)展方向,似乎不像軟件測試在管理上的發(fā)展方向那么明確帚豪。一種觀點是按照測試資歷和能力分為助理軟件測試工程師(或者是實習軟件測試工程師)、初級軟件測試工程師桨啃、中級軟件測試工程師踩蔚、高級軟件測試工程師和主任軟件測試工程師(或是資深軟件測試工程師)。但是我認為這種分類方式并沒有突出“軟件測試技術”禾嫉,所以我個人更傾向于一種簡單的分法——產(chǎn)品測試技術和專項測試技術灾杰。
產(chǎn)品測試技術是指把某個具體(或一類)產(chǎn)品測試得更好的技術;專項測試技術并不是針對具體的產(chǎn)品熙参,而是測試領域普遍適用的技術艳吠。
- 產(chǎn)品測試專家:軟件測試架構師
軟件測試在技術上可以向產(chǎn)品測試技術專家方向發(fā)展。
有些公司稱產(chǎn)品測試技術專家為軟件測試系統(tǒng)架構師(簡稱為測試架構師)孽椰,我認為這個稱謂是非常貼切的昭娩。
測試架構師和系統(tǒng)架構師在職責上是有一定對應關系的。
系統(tǒng)架構師在業(yè)務(需求)向開發(fā)技術轉(zhuǎn)換的過程中起到了橋梁作用黍匾,負責產(chǎn)品開發(fā)的整體架構設計栏渺;測試架構師是在業(yè)務(需求)向測試技術轉(zhuǎn)換的過程中起橋梁作用,負責產(chǎn)品測試的整體架構設計膀捷。
系統(tǒng)架構師負責對產(chǎn)品開發(fā)中的技術重點和難點進行研究與攻關迈嘹;測試架構師負責對產(chǎn)品測試中的測試重點和難點進行研究與攻關,為測試組織提供最優(yōu)的測試方法全庸。
系統(tǒng)架構師協(xié)助開發(fā)項目經(jīng)理制訂項目計劃和控制項目進度秀仲;測試架構師負責協(xié)助測試經(jīng)理制訂測試項目計劃和控制測試項目進度。
系統(tǒng)架構師負責組織開發(fā)項目團隊內(nèi)部的技術培訓工作壶笼;測試架構師負責組織測試團隊內(nèi)部的技術培訓工作神僵。
系統(tǒng)架構師需要有一定的戰(zhàn)略規(guī)劃能力、業(yè)務建模能力覆劈、數(shù)據(jù)分析處理能力保礼、面向產(chǎn)品生命周期的質(zhì)量保證和持續(xù)改進能力沛励;測試架構師同樣需要這些能力。
有人評價系統(tǒng)架構師是產(chǎn)品開發(fā)的“靈魂”炮障,那么測試架構師就是產(chǎn)品測試的“靈魂”目派。
- 專項測試工程師
軟件測試在技術上,還可以向?qū)m棞y試工程師方向發(fā)展胁赢,成為軟件測試某領域的專家企蹭。
從測試體系的角度來看,軟件測試發(fā)展至今智末,已經(jīng)形成了一套完整的測試體系谅摄。測試體系中的任何一個環(huán)節(jié),測試策略系馆、測試分析設計送漠、測試執(zhí)行、測試評估由蘑、測試流程等每個領域的內(nèi)涵都很豐富闽寡,包含了很多可以深入發(fā)展研究的技術,比如自動化測試技術纵穿、測試工具(包括產(chǎn)品測試模擬工具和測試流程管理工具)開發(fā)下隧、缺陷分析和測試評估技術等。
從產(chǎn)品質(zhì)量屬性的角度來看谓媒,專項測試技術還可以包含性能測試技術淆院、可靠性測試技術、安全性測試技術等句惯。
實際上土辩,產(chǎn)品測試專家(軟件測試架構師)也需要精通上文提到的各項測試技術,如測試分析和設計抢野、自動化測試技術拷淘、性能測試技術。但是指孤,產(chǎn)品測試專家使用的任何技術都是為產(chǎn)品服務的启涯,他需要針對當前測試的特定產(chǎn)品選擇最合適的測試技術,并針對不同的產(chǎn)品對測試技術進行適配調(diào)整恃轩。而專項測試技術專家并不關注具體產(chǎn)品结洼,而是偏向技術共性方面的研究。
表2-1和表2-2概括了一些常見的專項測試技術發(fā)展方向叉跛,供大家參考松忍。