軟件測試職業發展三步曲之一 - 軟件測試職業發展方向

天地玄黃,宇宙洪荒;所謂光陰似箭,因爲一轉眼滾滾的歷史車輪就將人類文明推進了二十一世紀的信息時代!葛大爺有對白曰:“二十一世紀最寶貴的是什麼?”對曰:“人才!”何爲人才?sincky曰:“適應時代潮流,把握社會需求,併爲我中華老大帝國創造社會價值的人!”哎喲,不諏了,其實今天筆者在這裏要和大家探討的,是軟件測試的職業發展問題,重點要闡述的是軟件測試從業者的職業發展方向,歡迎大家按enter鍵換行,繼續瀏覽!

   一個人從大學畢業,即開始發生從學生時代向職業人士的過渡,這種過渡走的好,可以實現畢生宿願,體現個人價值,不管你是否喜歡,功名、利祿盡收眼底;如果走的不好,則會誤入歧途,縱有凌雲壯志、萬丈豪情,難免一生鬱郁不得志,終歸化作片片飛塵,無語對穹蒼!那麼如何才能順利的完成這種過渡、踏上我們豪邁的職業旅程呢?答曰:認清自己,選擇適途!戰國的魏人荊軻具有“十步殺一人,千里不留行”的本領,曾向魏王獻策曰:“國君,我是職業殺手,我殺人的技術很強!”魏王問:“那麼你想殺誰呢?”對曰:“殺他個國君如何?”魏王大驚,慌然離去!後來荊軻離開魏國,與燕太子丹密謀,留下了“圖窮匕首見”、“荊軻刺秦王”的千古佳話。荊軻,良禽也,擇木而棲和太子丹合作,是他的高明之處;不過筆者認爲他是一個典型的“低管理、高技能”的人才,當他緊握嬴政的脖領、持劍相逼時,他太得意忘性了,可見他沒有領導的“統御力”和“決斷力”,所以落了個刺殺失敗、拔劍自刎的下場,雖然他的俠義與膽識流暢千古,但是終究是個“殺手”而已;當今社會下,如果“低管理、高技能”的人幹工作幹到丟了性命,那也真是一個笑談了!

   目前我們國家高等學歷大幅度擴招,造成社會的低端人才嚴重過剩,大學生畢業找不到工作、或者找不到合適的工作例子鱗次櫛比;但是社會各行各業對高端人才的需求又求賢若渴;那麼如何解決這種矛盾呢?從大環境來說,國家應該改革教育體制、提高教學質量、重視高端人才的培養,但是,一個問題一旦上升到國家的層次,就要等它個十年八年!我們沒有辦法改變世界,但是我們有能力改變自己;所以我們從個人的角度來講,講講我們這些軟件測試的從業者們,如何“認清自己、選擇適途!”

   縱觀當今社會各行各業,對於個人的職業發展方向,從宏觀上都可以劃分爲四個羣體,即:

   “低管理、低技能”
   “高管理、低技能”
   “低管理、高技能”
   “高管理、高技能”

   而在IT 行業這種劃分方法更爲合理,sincky爲其命名爲“一起點-三方向示意圖”:

   告別了象牙塔,帶着對校園生活裏那段風花雪月的追憶,年輕的畢業生們走上了社會;這時候的年輕人,大多數是屬於“低管理、低技能”的羣體,我們沒有工作經驗,不知道企業的工作流程,不清楚各個職業的工作技能,更不具備任何行業的管理能力;然而值得慶幸的是,人類問明發展到現在所出現的衆多行業,都已經有了衆多可以參考的羣體,這些羣體就理所當然的成了我們可以借鑑的發展方向!雖然我們的起點都是一個,但是可以選擇的發展方向卻是豐富多樣!

   高管理-低技能,即是我們通常所說的管理路線!在IT業,這個方向的成功者不乏項目經理、項目總監直至企業的最高管理層;但是走這個方向也要有技術方面的積累,因爲管理者的影響力中,除了職位賦予的權力以外,還包括個人人格方面的能力和專業領域的專業能力,而後者就是技術水平!而計算機行業本身,也決定了技術底蘊對職業發展的重要影響,所以年輕的IT朋友們,如果想爲自己的職業人生設計成這個路線,除了適當的技術積累外,更要有意識的鍛鍊自己的管理素質,下圖可做參考:

   低管理-高技能,即通常所說的技術路線!IT業以技術爲主導,對於喜歡鑽研技術、探討技術的人,可以選擇該條路線,走的深入、走的徹底!只因中國對於技術與管理的認識不同,造成很多人認爲做技術不賺錢、不被重視,自身誤以爲不過是個工程師而已,所做事情只是輔助企業的運作。實際上,在歐美發達國家,資深技術人員的薪資非常高,從業時間的週期也相當長,在Microsoft、IBM等巨頭企業,不乏年齡在50歲以上的資深程序員或系統架構師,而其薪資也和高級管理者一樣高!而另外一個不爭的事實是,企業對於管理的職位是有限的,並且一些優秀的技術人員不願做管理,或者不適合做管理,因此社會上出現的資深技術專家(或者類似職位),爲喜好技術的從業人員提供向上的通道。

   高管理-高技能,即諮詢方向是較爲均衡、全面的路線,也是衆多企業希望員工努力的方向。然而有調查結果顯示,由於現實種種因素的制約,大約90%的個人是分別沿着管理方向或者專家方向發展的,真正實現在諮詢方向達到一定的高度的人少之又少,而且在這爲數不多的諮詢方向達到又一定高度的人才,往往又會由於企業資源的限制無法將個人價值完全發揮而最終離開所在企業,成爲專業培訓師、諮詢師;一些國際知名的諮詢公司如麥肯錫、安達信乃至畢博或其他,可謂大家在個人職業生涯到達一定階段,作爲自己繼續突破職業瓶頸的發展路線。

   那麼,對於軟件測試的從業者,我們的出路在哪裏?我們的職業發展該如何設計?我們的發展方向又有哪些呢?這裏筆者和大多數測試同行意識相同,筆者也曾在多篇文章裏標明,中國的軟件測試行業尚屬起步階段,其發展的步履上佈滿了荊棘與泥濘;然而其發展速度可謂驚人的,從筆者剛畢業時候對軟件測試的“0”概念、從業同行者寥寥無幾,到最近2年的各大媒體紛紛報道的中國軟件測試人才缺口20萬、軟件測試工程師將成爲未來10年最緊缺的人才之一、包括筆者所接觸的衆多國內外優秀企業對高端測試人才年薪10萬、15萬、20萬的招聘需求……可見,選擇軟件測試這個朝陽行業的朋友,做了一個比較正確的選擇!然而,如何任何事物總有它的兩面性和矛盾性:2006年初在北京、上海、深圳舉辦的幾次春季大型招聘會上,多家企業紛紛打出各類高薪招聘軟件測試人員的海報,出人意料的是,收到的簡歷尚不足招聘崗位數的50%,而合格的竟不足30%……引起我們思考的是,我們的軟件測試從業人員還有很大一部分不滿足當今社會的需求;而另一層含義是,我們還有很大的提升空間!因此解決該矛盾的突破點是:每個人在這個行業裏找到自己的發展方向,規劃自己的職業藍圖,從而有針對性的鍛鍊自己的職業技能,增加個人的職業砝碼!

軟件測試職業發展模型圖

軟件測試職業發展模型圖

   軟件測試職業發展方向,大體上與上述的通用職業發展路線圖相吻合,也可以分爲管理路線、技術路線、管理+技術路線;只是針對該行業本身,有其特殊性和細緻性。其圖示如同兩個重疊的”V”字樣,我們爲其命名爲“雙V模型”;該模型適用於大多數行業性軟件測試從業人員,一些特殊領域如遊戲測試、嵌入式測試、硬件測試,也可作爲參考。本文是三部曲之一,只介紹職業發展方向定義,在下一曲會介紹各個職業方向應該具備的知識與技能體系!

   雙V的底點是測試工程師,屬於軟件測試職業生涯的初級域,其適用範圍是入行軟件測試3年內的常規測試從業者,其主要工作內容是按照測試主管(即直接上司)分配的任務計劃,編寫測試用例、執行測試用例、提交軟件缺陷,包括提交階段性測試報告、參與階段性評審等。初入測試行業,進入企業從事測試工作的人員,都要從該層次做起,雖然有時感覺乏味無趣,甚至迷茫困惑,但是我們可以根據個人的興趣與特長,向上選擇適合自己的路線,因爲誰都不會甘心一輩子只做一個普通的測試工程師,那麼大家看到這裏,就可以摩拳擦掌,看看向上發展的通道中,哪一個適合自己,然後立刻從現在開始,確定自己未來5年、10年甚至一生的發展目標邁進,用筆者經常跟學員說的一句話來形容:把握現在,即刻做起,相信自己是最強的!

   首先是常規路線,即雙V模型的重疊線,這條發展路線要求管理與技術並重,因爲軟件測試的行業特點決定了這個因素:測試工程師向上晉升到測試主管、測試經理、測試總監,直至諮詢域的更高方向!

   測試主管是企業項目級主管,對於中小型軟件公司也可以是企業級主管,屬於中級發展域,適用範圍是2到5年職業經驗的測試從業者。其工作內容是根據項目經理或測試經理的計劃安排,調配測試工程師執行模塊級或項目級測試工作,並控制與監督軟件缺陷的追蹤,保證每個測試環節與階段的順利進行。嚴格來說,這個級別更多屬於測試的設計者,因爲企業的測試流程搭建是由更高級別的測試經理或相關管理者來做的,測試主管負責該流程的具體實施;而更多的工作,是思考如何對軟件進行更加深入、全面的測試。因此筆者認爲測試主管比較有創造性的工作內容就是測試設計,而恰恰很多公司忽略了或沒有精力來執行此工作內容!應該說,在一個企業裏做了3年左右測試工作的人員,很容易晉升到該職位,而之所以晉升,是與個人測試技術的過硬、測試方法的豐富,加上對測試流程的監控力與執行力的職業素質息息相關!

   測試經理是更高級別的測試管理者,屬於高級測試方向域。對於大中型軟件公司,該職位尤爲重要,並且對其職業要求也比較高,一般適合4到8年的測試從業者,在管理與技術能力雙雙比較成熟的情況下,可以結合具體環境晉升到該級別。測試經理負責企業級或大型項目級總體測試工作的策劃與實施。隨着軟件行業的發展,企業對軟件工程裏各個角色的定位逐漸明顯,測試經理完全與開發經理(一些公司也成爲項目經理)平齊,除了需要統籌整個企業級或項目級測試流程外,還要對於不同軟件架構、不同開發技術下的測試方法進行研究與探索,爲企業的測試團隊成員提供指導與解決思路,同時還要合理調配不同專項測試的人力資源(如業務測試工程師、自動化測試工程師、白盒測試工程師、性能測試工程師),對軟件進行全面的測試;另外,一些企業裏,測試經理還需要與客戶交流與溝通,負責部分的銷售性或技術支持性工作。嘿嘿,看看那些高薪招聘測試經理的企業對該職位的要求裏外語口語的描述,就可見一斑!

   測試總監,屬於常規發展路線的最高域,如果再往上發展,那隻能是諮詢域了;不過筆者並沒有將其在圖中標記出來,因爲該職位對於國內目前的大多數軟件公司根本沒有設立,也就沒必要再在圖中體現了。該職位一般在大型或跨國型軟件企業,或者專向於測試服務型企業有所設立,由於其企業自身的職位定位不同,以及軟件測試整體行情所處的階段,這裏不好歸納陳述;但是一般設立測試總監的企業,該職位都相當於CTO或副總的級別,是企業級或集團級測試工作的最高領導者,駕馭着企業全部的測試與測試相關資源,管理着企業的全部測試及質量類工作。而其職業要求,也是技術與管理雙結合;基於目前軟件測試行情看,這種高管理-高技能的發展目標,不會適合大多數人的選擇,社會也不會提供如此衆多的測試總監職位讓我們去應徵!

   應該說,大多數測試從業者都不是技術與管理雙優的人,而如今一些到達測試經理或測試總監級別的優秀測試人才,已經領先一步開闢了這條發展路線的先河,希望這些朋友和大家多多分享經驗,讓更多的朋友彌補自己管理或技術上的不足,在這條路線上有所建樹,共同提高,在實現個人人生價值的同時,也自然而然的推動了軟件測試行業的發展;行業發展了,測試人員不再被忽視了,待遇自然也提高了,也就不會有很多朋友迷茫的跟我說“我的日常工作只是點擊按鈕和按鍵盤”了,因爲我們相信行業的不斷成熟,會逐漸將軟件測試職業細化,我們的從業者就可以真正的在如下的管理路線和技術路線找到自己的位置,並潛心走向深入的!

   軟件測試,是技術主導的職業;不管選擇哪條發展路線,都是需要一定的技術沉澱,只是相對來說,管理路線對技術方面要求不高而已。那麼我們就先挑重頭的技術路線展開討論。一般來說,一個普通的測試工程師剛入行,3個月左右熟悉企業的工作流程和模式,那麼今後的工作內容趨於平穩。然而社會是殘酷的!如果單單停留在測試工程師的階段,若干年後,相信你再也競爭不過那個時候的應屆畢業生,當你的工作技能和職業素質趨於與那些朝氣蓬勃的年輕人相當時,企業會毫不留情的選擇他們,而release你,因爲你的成本消耗要比他們高,這是大實話!然而現實又是公平的!因爲軟件開發技術的不斷日新月異,軟件功能需求的不斷豐富多樣,決定軟件開發這一系統工程的錯綜複雜,因此爲了保證軟件的質量,就要提高測試的水平,這也就爲軟件測試職業的細化起到先決因素,也是目前社會上出現招聘專項測試工程師的必然趨勢!因此,這個趨勢給了我們這些常規測試工程師一個空前的好機會!所謂“以毒攻毒”,軟件開發靠的是技術,爲了測試軟件,也必須用技術;那麼我們就來看一下從技術路線,軟件測試職業發展有哪些方向。

   技術路線,筆者結合國內外軟件測試行業現狀,劃分爲三個半方向,分別是自動化測試工程師、白盒測試工程師、性能測試工程師和認證測試工程師,在“雙V模型”中右側體現;前三者適用於通用軟件測試領域,認證測試工程師乃嵌入式測試領域職位,至少目前僅出現在嵌入式領域,因此以虛線標記,即“三個半”的“半”。前三條路線對技術的要求程度逐漸增加,三條曲線的斜率也依次遞增(認證工程師不參與比較)。

   自動化測試工程師,筆者爲其定義在功能測試範疇,指通常所說的依靠自動化測試工具進行軟件黑盒測試的工程師。筆者接觸的很多測試界朋友,尤其年輕的剛入行者,對測試工具充滿了無限的興趣,他們喜歡那種編寫腳本、調試成功後的快感,喜歡看到自定義的日誌裏記錄了本來手工測試煩瑣的無聊頭頂的工作、而採用自動化方式實現後如此清晰豐富的內容後的興奮!可以理解,因爲筆者也是從那段時光走過來的,現在也負責於我們學員的自動化測試教學工作。從大環境講,自動化測試是軟件測試執行階段的必然趨勢,社會對於軟件測試的認可度以及對自動化測試人才的需求必將日益增加,從目前國內做自動化測試的從業者薪資情況看,也普遍高於常規測試工程師,最淺顯的道理是“自動化測試比手工測試有了技術含量,^--^”雖然自動化測試在整個行業的普及不是一朝一夕,但是從個人角度講,自動化測試可以作爲個人的發展方向之一,因爲如果你率先掌握了這種技術,等到社會需要時,你已成爲這個職位的成熟操作者!而國內的51testing把握了時代前沿,與自動化測試工具巨頭廠商Mercury(美科利)合作,在中國唯一推出Mercury自動化測試全套技能認證(CPE/SP/CPC),相比其它初等認證,它的實效性和價值性更具意義,也爲測試從業者提供了一個進入自動化測試領域的快捷方式!

   白盒測試工程師,筆者定位於在軟件測試周期的單元測試階段對軟件進行的代碼級測試的人,包括代碼走讀、代碼功能與邏輯測試、代碼內存泄漏檢查、代碼運行效率檢查、代碼測試覆蓋率分析等。如果說,自動化測試只是依靠腳本語言完成測試腳本編寫與調試的過程(因爲自動化測試工程師的工作重點不在編寫腳本),對於自動化測試工程師的技術要求要相對偏低的話,那麼白盒測試工程師就要對大型程序開發語言的完全掌握,因此其技術要求相對偏高!而另一方面,白盒測試在目前國內軟件行情下,一些公司根本不做,其成本高、代價大的特點決定了這個現狀,而一些對軟件質量要求非常高(如軍事類、電信類、財務金融類等)的企業,也會調動開發工程師來實施此事。但是,還是那句話,測試行業在發展,測試人員能力在提升,軟件的開發技術在複雜化,要對軟件進行儘可能全面的測試,白盒測試不可忽視!當下專門高薪招聘白盒測試工程師的企業也比比皆是,從中我們可以感知,白盒測試工程師會是很多有開發背景、意欲進入測試行業的良好突破口,白盒測試人員的需求也會逐漸增加。

   性能測試工程師,即在系統測試階段、功能測試後對軟件系統性能指標進行採集分析和運行效率檢測的人。筆者認爲,在一個儘量壓縮的測試流程裏,功能測試可以手工進行,白盒測試可以不做,但是性能測試必須要做,除非該軟件非網絡類軟件即單機版軟件!這裏筆者再提一個觀點供大家參考:軟件測試,從宏觀上可以劃分爲三個大方面:功能測試、性能測試、安全性測試,功能測試說明軟件做對了,功能測試+性能測試說明軟件做好了,三者結合起來說明軟件做的非常好!安全測試暫且拋之不提,這是下一個發展域的內容,但是爲了把軟件做好,爲了真正保證軟件的質量,性能測試絕不容忽視;只因目前很多企業由於時間、成本、人力條件的限制,暫且不做性能測試。性能測試工程師相對來說,是三個技術路線裏技術要求最高的,因爲軟件的性能瓶頸歸根結底落實到代碼的運行效率這個問題上,因此性能測試要做好,性能測試工程師起碼要懂開發;而爲了發現性能問題,要懂軟件開發架構;爲了定位性能問題,要懂操作系統、網絡協議、應用服務器乃至數據庫的原理與使用;爲了最終解決性能問題,要根據定位的問題有針對性的對代碼、操作系統、網絡架構、服務器、數據庫進行優化!當然性能測試是一個系統工程師,絕對不是一兩個人的事情,對於常規性能測試工程師,具備定位性能問題的能力即可。正因爲性能測試工程師技術要求的高超,該職位的待遇也是目前測試技術路線最高薪的一個,實爲綜合技術能力較強的測試人員的明智選擇!

   上述四職業路線由於其技術程度的突出,一般在企業裏由測試經理直接所屬,與測試主管級別具有相同的待遇,並處於相同發展域。

   進入技術路線的高級域,根據中級域的四個路線,可以細分成五個路線,分別是資深自動化測試工程師、資深白盒測試工程師、資深性能測試工程師、安全性測試工程師、標準化工程師,這些高級技術類人才完全與常規測試經理平齊,屬於軟件測試職業發展高級域。

   資深自動化測試工程師由自動化測試工程師晉升而來。如果說常規自動化測試工程師只是負責自動化測試腳本本身的設計與開發,那麼資深自動化測試工程師的工作內容就是自動化測試這項工作的實施!筆者早年在IBM公開講座時候,講過一篇《以RUP原則實施自動化測試》的主題,RUP裏提倡自動化測試是一個龐大的系統工程,絕對不是有了技術、有了工具、有了掌握技術和使用工具的人就可以實施的,而是應該把自動化測試當成一個針對企業自身的項目來看待,需要經過引入、計劃、設計、測試、執行、配置管理等環節(參見Sincky的blog『大音希聲 大象無形』),而這些自動化測試的流程搭建,就是資深自動化測試工程師的份內之事。另外,筆者要強調,按照國內外自動化測試領域的發展趨勢,我們把自動化測試劃分爲四個發展階段(我的blog裏也有闡述);也就是說,錄製腳本-添加驗證點-回放腳本只是最初始的自動化階段,要在企業實施自動化測試,要有資深自動化測試工程師來設計數據驅動,開發測試框架,甚至一些企業內部自主開發小型測試工具(而非商業工具)的先例,這些也都是建立在資深自動化測試工程師具有深厚的技術底蘊後,主導其他人員協調完成的事情。

   資深白盒測試工程師,其工作內容包含常規白盒測試工程師的內容,除此之外,要協助測試經理或測試總監攻關測試方法與技術性難題,因此其技術水平更加雄厚。如果常規白盒測試工程師是停留在某種程序設計語言類型的代碼級測試,那麼資深白盒測試工程師就要脫離程序設計語言本身,結合不同架構、多種開發技術交互的情況下,尋找代碼測試方法,並具有對代碼優化的能力。由於該路線在國內很少有實例參考,這裏不再贅述。

   資深性能測試工程師,來源於常規性能測試工程師,按照常規性能測試工程師的技術要求,資深性能測試工程師應該具備性能測試整體方案的設計能力,以及軟件系統性能問題定位和性能優化的能力!初此之外,也要對主流的軟件開發模式下的應用系統具有敏銳的洞察意識和感知意識。軟件開發的架構會日益複雜化,軟件應用的各種軟硬件平臺、數據庫類型、服務器類型、網絡協議層出不窮,不得不說,都爲性能測試的從業者們提出了嚴峻的考驗!值得慶幸的是,各種同類產品的廠商在開發產品時都遵從業內統一標準,性能測試人員結合自身的豐富經驗,加上對軟件性能測試技術的研究,這樣的考驗我們欣然面對,這樣的人才則會日益增多,在軟件測試行業裏充當佼佼者地位。

   安全性測試工程師,筆者將其從性能測試工程師衍生出來,因爲只有具備性能測試經驗的人,纔對軟件的開發模式、實現架構和技術本身充分了解,纔會感知和預見軟件系統存在的安全漏洞,加上其本人是測試出身,才知道如何通過系統漏洞嘗試攻擊軟件系統,達到測試的目的。目前國內軟件行業對於安全性測試的認識尚未清晰,該職業也更沒有普及,一般只限於軍事類、機密類、防病毒類或其他高安全性軟件的測試工作中。

   再次強調,人類進入文明社會後,任何社會活動都不是獨立的個體能夠實現的;在高度講究團隊合作、協同辦公的今天,軟件測試工作更不是測試工程師幾個人就能做完所有的事情的;上述各發展路線的技能要求,只是爲了增強個人職業突破的砝碼,你的砝碼越多,“被利用”價值越大,爲企業創造利潤的程度越高,企業自然給予你更豐厚的回饋!達爾文伯伯的“優勝劣汰”自然規律不會變,“多勞多得、少勞少得”的市場規律也不會變!

   曾經有如此衆多的測試職業發展路線放在我面前,結果我沒有珍惜;等到軟件測試行業發展到成熟階段,我想入行卻入不了行的時候,我才後悔莫及;塵世間幹測試最大的不幸莫過於此;如果非要問sincky:再往上的發展通道是什麼,那麼sincky一定要告訴你,技術專家域!

   在技術路線,向上繼續提升的方向,我們稱之爲“技術專家”;如果說前面描述的技術職位的所涉範圍都定位在企業內部,即企業級資深性能測試工程師,那麼技術專家,我們可以看作是領域級專項人才!隨着軟件測試行業的職位不斷細化,每個人在自己擅長的領域走向深入,都可以成爲該領域的技術專家,技術專家在自已經營的領域裏,具有個人獨到的見解和深厚的技術實力,而這類人纔可以不再從事具體的測試工作,而是提供行業性測試技術諮詢、培訓等,爲軟件測試整體行業的發展,起到了鮮明的帶頭作用。在一些專業的諮詢、培訓公司,或者IBM、Microsoft等巨型公司,不乏這樣的人才;然而目前在我國,這樣的人才較少,但是卻可以爲我們大家提供努力方向,只要我們每個在技術路線供職的測試從業者,規劃好自己的職業人生,並以堅韌的毅力和頑強的鬥志,若干年後,你我皆可笑談測試人生,把酒臨風,其喜洋洋者矣!而目前在國內幾個IT行業發達的省市,專項於軟件測試服務或一些大型軟件企業,也有這樣的職位暫露頭角,我們深信,社會對高端人才的需求趨勢是越來越大的,更多的優秀企業也會爲員工提供更多、更廣的發展空間,值此大好形勢,就看我們個人如何充分利用這些上升通道了。

   在我們的軟件測試從業人員裏,有這樣一部分羣體:他們非計算機相關專業畢業,不懂軟件開發,由於國內種種對軟件測試人才的偏激認識,認爲測試人員不需要懂開發,只要會編寫文檔、執行用例即可;因此很多測試工程師並不具備開發背景,並且對軟件技術掌握膚淺,而對於沒有技術底蘊的人強迫其走技術路線,不能不說是一種折磨!因此,這個羣體裏的朋友,是不是認爲自己只能做一輩子常規測試工程師呢?答案是否定的,因爲在“雙V模型”的左側,是軟件測試職業發展的管理路線。軟件測試的管理路線,與通用職業發展示意圖的“高管理-低技能”並不完全相同,只因軟件測試獨具的行業特點,我們認爲軟件測試行業的非技術路線發展方向,更多的是從軟件測試行業衍生出來的職位,如質量保證、配置管理。如果說軟件測試職業發展的技術路線更側重於職業技能的提升,那麼這條管理路線則更側重於職業素質的積累(筆者強調是“側重”,並不表示不需要);換句話說,技術路線更側重人的智力因素,而管理路線更側重人的非智力因素。

   從事了1到3年左右的常規測試工程師,在經過對個人性格特點剖析後,如果認爲自己是一個傾向於“高管理-低技能”的類型,那麼想要實現自己的職業提升,可以向中級發展域的配置管理工程師、質量保證工程師、業務測試工程師轉型。

   配置管理(SCM)與質量保證(SQA)同是CMM中的關鍵過程域(KPA),也同是現代軟件工程裏的必要角色,與軟件測試同屬軟件開發團隊的重要組成部分。只因這兩個角色在軟件工程裏的人員配比數量相對較少,還不如軟件測試這樣規模化乃至於形成行業,而最多是一個職業;另外一個社會現象是,企業很少直接從社會直接招聘配置管理工程師和質量保證工程師,而通常的做法是從企業內部的現有測試員工隊伍裏選拔,而轉型後的測試工程師,就成爲SCM或SQA。分析其原因,我們可以感知,SCM、SQA與軟件測試工程師都是關注於軟件質量的相似職位,社會對於配置管理、質量保證的定義和工作內容並未普及,與其直接從社會招聘“0”基礎的人來培養,倒不如從軟件測試人員裏昇華!一般來說,這兩種職位的上報對象是項目經理或相同級別管理者。

   轉型後的配置管理與質量保證工程師,一定要轉變一個意識,那就是常規測試工程師的工作範圍很大一部分(不是全部)只限於測試流程,而配置管理和質量保證的工作範圍是面向整個軟件開發流程,二者的職業要求都非常重視軟件工程知識體系的建立和軟件開發總體流程的實施能力。由於配置管理工程師除了企業配置管理流程的搭建與實施外,一般會涉及配置管理工具的管理與維護,而質量保證工程師更多的工作是軟件開發流程的控制與維護,故而配置管理對技術的要求稍高於質量保證。隨着我國軟件行業水平的不斷髮展,衆多軟件公司紛紛通過CMM/CMMI,企業對於軟件開發團隊的角色配比制度也將逐漸健全,當前社會對配置管理與質量保證工程師的職位需求日益增加,種種現象表明,對於軟件測試工程師出身的從業者,轉型至SCM/SQA不失爲突破個人職業生涯瓶頸的又一通道!

   業務測試工程師,筆者定義爲面向行業類軟件業務邏輯與工作流測試的人員。當前軟件開發類型,很大一部分是行業類軟件的應用,如ERP、SCM、CRM、OA、電信、金融、財務、嵌入式、通信、手機、遊戲……這就要求從事行業類軟件測試的人員具備行業背景、業務知識,熟練該行業工作流程。從社會上出現的很多對此類經驗要求的測試工程師招聘信息中,我們更加肯定這種趨勢;所謂存在即是道理,既然社會上有了需求,那麼就可以作爲個人發展的方向。而另外一個特點是,業務測試工程師的工作內容主要是黑盒測試,屬於功能範疇,因此對技術要求不大,設置一些大型行業類軟件公司的業務測試工程師薪資豐厚,但是完全可以不懂技術,因爲它的工作性質決定了不需要懂很多的技術!他們甚至連軟件的界面測試都不做——交給常規測試工程師實施,而完全關注軟件的業務性和易用性,由於其深厚的行業背景,可以爲軟件的在正式發佈前提出很多建設性的意見,而這些建議正是軟件開發商提高產品易用性、增加用戶滿意度、開拓市場、創造利潤的關鍵因素之一!

   當管理路線的中級域方向繼續上升至高級域,就分別到達配置管理經理、質量保證經理、產品經理、業務專家,這類人才地位高、待遇厚,一般資深的軟件工程領域專家都聚集於此。

   如果說配置管理工程師、質量保證工程師更加側重於配置管理流程、質量保證流程的實施與日常管理維護,那麼配置管理經理、質量保證經理就是更側重於配置管理流程、質量保證流程的建立與改進。一般在中小軟件企業,可能沒有這兩個角色,而全部的配置管理或質量保證工作都由工程師擔當;但是大中型軟件企業對資深配置管理經理、資深質保經理求賢若渴。軟件系統越龐大,軟件開發團隊規模就越龐大,軟件開發流程中出現問題的機率就越高,高效管理軟件開發流程,不斷改進軟件質量,是每個軟件公司在技術上沒有顧慮後的下一個急需攻破的難關!

   業務專家,屬於行業內諮詢、顧問的角色,已經幾乎脫離了測試工作本身,而更多爲企業的產品需求分析、設計、開發、測試等各個環節提供指導工作,其目的也是提高軟件的易用性和穩定性,減少後期不必要的需求變更。該職位也同樣在目前熱點行業的大中型軟件企業有所設立。

   產品經理,這個職位在很多企業有所設立,筆者認爲它是質保經理的派生,只是它更側重於軟件在產品化之前的質量監控工作,包括軟件開發流程、軟件測試等技術與管理的各個方面。由於該職位在業內沒有明顯定義,而根據不同企業的職位定位不同,這裏無法統一陳述。

   管理路線的最高發展域是諮詢域,與技術路線的專家域類似,在配置管理、質量保證、軟件產品化、行業領域達到高深造詣的人才,他們有豐富的從業經驗、深厚的管理底蘊,具有對軟件工程高瞻遠矚的慧眼和膽識,往往供職在專業的諮詢與培訓公司,提供IT業管理類諮詢與培訓的服務,推動着軟件行業的前進。國內外很多爲軟件企業進行CMM諮詢和實施的公司裏,就是這些人才的大本營之一!

   筆者認爲,在“雙V模型”的管理路線裏,中低級發展域的人才對技術與管理的區分較爲明顯,而到了高級與更高級發展域,更多的是複合型人才,軟件業以技術爲主導,沒有一定技術積累,還是很難達到高級境界;要在管理路線練出“上乘武功”,還是希望大家在主攻管理與流程類課題的同時,多豐富下自身的技術層面,嘿嘿!

另外,筆者提倡管理與技術兩條路線的平齊,而並非目前社會上認爲的技術要比管理低一等,技術是靠吃青春飯,在這些人才到達最高發展域的“諮詢”與“專家”層面,二者應該完全具有相同的地位和待遇,只是“稱謂”不同罷了!

   “雙V模型”是sincky結合當前國內外軟件測試行業現狀提出的職業發展流程圖,僅供測試從業者參考,並非一個“死”的框架,大家不要拘泥於流程圖本身;其實目前國內很多上升到高級域或最高域的資深人才,很多都是跳躍式、甚至跨越式的職業發展,因爲命運掌握在自己手裏,任何人都剝奪不了設計自身人生藍圖的權利;而另外一個角度是,任何人都不該不珍惜爲自己規劃職業生涯的機會!

   軟件測試,一個日出東方的國際型行業,雖然偶爾會瀰漫晨霧,甚或有暴雨來襲,但是我們都該堅持!有人說:“什麼叫失敗?”答曰:“放棄就是失敗!”每一次當我們身處逆境時,決不能用軟弱的眼淚作爲走向明天的見證,更不能用脆弱的感情去拴住生命的航線;是雄鷹就該搏擊長空,是蛟龍就該挽起狂瀾;滄海橫流,方顯英雄本色,疆場搏鬥,可露壯士肝膽!人生沒有豁免權,每位從業者只有懷着不息的鬥志,乘千里長風,破萬里巨浪,才能支配命運走向輝煌的明天!

   後記:Sincky,網名葉赫華;在我從事軟件測試培訓業的1年多裏,接觸了國內很多除了我們學員以外的軟件測試界朋友,其中新手居多。在我們的網站、論壇、我個人的blog、我的qq羣乃至其他朋友以我名義建的qq羣裏,最讓大家感冒的話題就是測試人員的職業發展!大家都在做測試工作,可以不知道明天做什麼,明年做什麼,或者若干年後做什麼!“行有行規”,除非不在軟件測試這個行業,否則就要遵守這個行業的規律!我覺得,我們的學員有職業發展培訓課程,可是面對外界這些熱心朋友的提問,長久以來,我一直想集中的寫點東西,起碼讓剛入行的新手對這一行業的職業發展方向有一個直觀的感性認知,我也心滿意足!但是這個行業還太嫩,並沒有章據可循,我搜索了幾天的國外網站,可是沒有成文的觀點可以參考!後來決定自己來寫,參照的對象就是國內現狀下的測試從業者,於是在和國內各個領域的測試高手朋友們的交流後,我在2006春節前夕用了一白天的時間畫出了“雙V模型”圖,而這篇文章的撰稿,用了我一天一夜的滿滿時間。在經歷幾次修改後,這篇文章在今天終於正式發佈了,沒有別的,只是希望給國內測試界朋友一個參考,歡迎大家批評、討論,發表自己的觀點!(我的msn地址:[email protected])“雙V模型”裏很多職位名詞在國內叫法不一,比如有人把初級測試工程師叫做測試員,我不贊同這種叫法,畢竟不是主流;而我的目的,只是通過這些職位的工作內容來告訴大家在職業定位上需要達到的高度,名字嘛,只是個代號而已!

   我的設想是寫三篇文章,叫做《軟件測試職業發展三步曲》系列,本文是第二曲,也是三步曲的核心,首先問世,主題是“軟件測試職業發展方向”,將來還會陸續推出第一曲“軟件測試職業選擇”、第三曲“軟件測試技能體系”,呵呵,如果大家對本文表示肯定的態度比較多,我會繼續寫下去,否則我還是回家幹我的山賊那份很有前途的職業吧!^-^ (2006年4月10日)

後記:本文寫於2006年4月10日,是我截至目前從事軟件測試職業的最後文章;憑藉個人的淺顯經驗和拙劣文筆,寫出這篇個人認爲比較有價值的文章,算是爲中國軟件測試業貢獻微薄之力。2年多來,此文在互聯網反響強烈,今日終於將此文榮歸故里、落葉歸根。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章