天天看點

軟體測試職業發展(轉)

天地玄黃,宇宙洪荒;所謂光陰似箭,因為一轉眼滾滾的曆史車輪就将人類文明推進了二十一世紀的資訊時代!葛大爺有對白曰:“二十一世紀最寶貴的是什麼?”對曰:“人才!”何為人才?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模型”裡很多職位名詞在國内叫法不一,比如有人把初級測試工程師叫做測試員,我不贊同這種叫法,畢竟不是主流;而我的目的,隻是通過這些職位的工作内容來告訴大家在職業定位上需要達到的高度,名字嘛,隻是個代号而已!