測試初級階段:
測試工程師,屬于軟件測試職業生涯的初級域,其適用范圍是入行軟件測試3年內的常規測試從業者,其主要內容是按照測試主管(即直接上司)分配的任務計劃,編寫測試用例、執行測試用例、提交軟件缺陷,包括提交階段性測試報告、參與階段性評審等。
管理+技術路線:
首先是常規路線,這條發展路線要求管理與技術并重,因為軟件測試的行業特點決定了這個因素:測試工程師向上晉升到測試主管、測試經理、測試總監,直至咨詢域的更高方向!
測試主管是企業項目級主管,對于中小型軟件企業也可以是企業級主管,屬于中級發展域,適用范圍是2到5年職業經驗的測試從業者。其內容是根據項目經理或測試經理的計劃安排,調配測試工程師執行模塊級或項目級測試,并控制與監督軟件缺陷的追蹤,每個測試環節與階段的順利進行。嚴格來說,這個級別更多屬于測試的設計者,因為企業的測試流程搭建是由更高級別的測試經理或相關管理者來做的,測試主管負責該流程的具體實施;而更多的,是思考如何對軟件進行更加深入、全面的測試。測試主管比較有創造性的內容就是測試設計,而恰恰很多企業忽略了或沒有精力來執行此內容!應該說,在一個企業里做了3年左右測試的人員,很容易晉升到該職位,而之所以晉升,是與個人測試技術的過硬、測試方法的豐富,加上對測試流程的監控力與執行力的職業素質息息相關!
測試經理是更高級別的測試管理者,屬于高級測試方向域。對于大中型軟件企業,該職位尤為重要,并且對其職業要求也比較高,一般適合4到8年的測試從業者,在管理與技術能力雙雙比較成熟的情況下,可以結合具體環境晉升到該級別。測試經理負責企業級或大型項目級總體測試的策劃與實施。測試經理除了需要統籌整個企業級或項目級測試流程外,還要對于不同軟件架構、不同開發技術下的測試方法進行研究與探索,為企業的測試團隊成員提供指導與解決思路,同時還要合理調配不同專項測試的人力資源(如業務測試工程師、自動化測試工程師、白盒測試工程師、性能測試工程師),對軟件進行全面的測試;另外,一些企業里,測試經理還需要與客戶交流與溝通,負責部分的銷售性或技術支持性。
測試總監,屬于常規發展路線的最高域,該職位一般在大型或跨國型軟件企業,或者專向于測試服務型企業有所設立,一般設立測試總監的企業,該職位都相當于CTO或副總的級別,是企業級或集團級測試的最高領導者,駕馭著企業全部的測試與測試相關資源,管理著企業的全部測試及質量類。而其職業要求,也是技術與管理雙結合。
技術路線:
技術路線中級域:
技術路線,劃分為三個半方向,分別是自動化測試工程師、白盒測試工程師、性能測試工程師和認證測試工程師;前三者適用于通用軟件測試領域,認證測試工程師乃嵌入式測試領域職位,至少目前僅出現在嵌入式領域。
自動化測試工程師,定義在功能測試范疇,指通常所說的依靠自動化測試工具進行軟件黑盒測試的工程師。從大環境講,自動化測試是軟件測試執行階段的必然趨勢,社會對于軟件測試的認可度以及對自動化測試人才的需求必將日益增加。
白盒測試工程師,定位于在軟件測試周期的單元測試階段對軟件進行的代碼級測試的人,包括代碼走讀、代碼功能與邏輯測試、代碼內存泄漏檢查、代碼運行效率檢查、代碼測試覆蓋率分析等。如果說,自動化測試只是依靠腳本語言完成測試腳本編寫與調試的過程(因為自動化測試工程師的重點不在編寫腳本),對于自動化測試工程師的技術要求要相對偏低的話,那么白盒測試工程師就要對大型程序開發語言的完全掌握,因此其技術要求相對偏高!
性能測試工程師,即在系統測試階段、功能測試后對軟件系統性能指標進行采集分析和運行效率檢測的人。在一個盡量壓縮的測試流程里,功能測試可以手工進行,白盒測試可以不做,但是性能測試必須要做,除非該軟件非網絡類軟件即單機版軟件!軟件測試,從宏觀上可以劃分為三個大方面:功能測試、性能測試、安全性測試,功能測試說明軟件做對了,功能測試+性能測試說明軟件做好了,三者結合起來說明軟件做的非常好!安全測試暫且拋之不提,這是下一個發展域的內容,但是為了把軟件做好,為了真正軟件的質量,性能測試絕不容忽視;只因目前很多企業由于時間、成本、人力條件的限制,暫且不做性能測試。性能測試工程師相對來說,是三個技術路線里技術要求最高的,因為軟件的性能瓶頸歸根結底落實到代碼的運行效率這個問題上,因此性能測試要做好,性能測試工程師起碼要懂開發;而為了發現性能問題,要懂軟件開發架構;為了定位性能問題,要懂操作系統、網絡協議、應用服務器乃至數據庫的原理與使用;為了最終解決性能問題,要根據定位的問題有針對性的對代碼、操作系統、網絡架構、服務器、數據庫進行優化!當然性能測試是一個系統工程師,絕對不是一兩個人的事情,對于常規性能測試工程師,具備定位性能問題的能力即可。
技術路線高級域:
進入技術路線的高級域,根據中級域的四個路線,可以細分成五個路線,分別是自動化測試工程師、白盒測試工程師、性能測試工程師、安全性測試工程師、標準化工程師,這些高級技術類人才完全與常規測試經理平齊,屬于軟件測試職業發展高級域。
自動化測試工程師由自動化測試工程師晉升而來。如果說常規自動化測試工程師只是負責自動化測試腳本本身的設計與開發,那么自動化測試工程師的內容就是自動化測試這項的實施!也就是說,錄制腳本-添加驗證點-回放腳本只是最初始的自動化階段,要在企業實施自動化測試,要有自動化測試工程師來設計數據驅動,開發測試框架,甚至一些企業內部自主開發小型測試工具(而非商業工具)的先例,這些也都是建立在自動化測試工程師具有深厚的技術底蘊后,主導其他人員協調完成的事情。
白盒測試工程師,其內容包含常規白盒測試工程師的內容,除此之外,要協助測試經理或測試總監攻關測試方法與技術性難題,因此其技術水平更加雄厚。如果常規白盒測試工程師是停留在某種程序設計語言類型的代碼級測試,那么白盒測試工程師就要脫離程序設計語言本身,結合不同架構、多種開發技術交互的情況下,尋找代碼測試方法,并具有對代碼優化的能力。性能測試工程師,來源于常規性能測試工程師,按照常規性能測試工程師的技術要求,性能測試工程師應該具備性能測試整體方案的設計能力,以及軟件系統性能問題定位和性能優化的能力!除此之外,也要對主流的軟件開發模式下的應用系統具有敏銳的洞察意識和感知意識。
安全性測試工程師,其實從性能測試工程師衍生出來,因為只有具備性能測試經驗的人,才對軟件的開發模式、實現架構和技術本身充分了解,才會感知和預見軟件系統存在的安全漏洞,加上其本人是測試出身,才知道如何通過系統漏洞嘗試攻擊軟件系統,達到測試的目的。目前國內軟件行業對于安全性測試的認識尚未清晰,該職業也更沒有普及,一般只限于軍事類、機密類、防病毒類或其他高安全性軟件的測試中。
技術路線專家域:
在技術路線,向上繼續提升的方向,我們稱之為“技術專家”;如果說前面描述的技術職位的所涉范圍都定位在企業內部,即企業級性能測試工程師,那么技術專家,我們可以看作是領域級專項人才!隨著軟件測試行業的職位不斷細化,每個人在自己擅長的領域走向深入,都可以成為該領域的技術專家,技術專家在自已經營的領域里,具有個人獨到的見解和深厚的技術實力,而這類人才可以不再從事具體的測試,而是提供行業性測試技術咨詢、培訓等,為軟件測試整體行業的發展,起到了鮮明的帶頭作用。管理方面:
管理方面中級域:
從事了1到3年左右的常規測試工程師,在經過對個人性格特點剖析后,如果認為自己是一個傾向于“高管理-低技能”的類型,那么想要實現自己的職業提升,可以向中級發展域的配置管理工程師、質量工程師、業務測試工程師轉型。配置管理(SCM)與質量(SQA)同是CMM中的關鍵過程域(KPA),也同是現代軟件工程里的必要角色,與軟件測試同屬軟件開發團隊的重要組成部分。只因這兩個角色在軟件工程里的人員配比數量相對較少,還不如軟件測試這樣規模化乃至于形成行業,而最多是一個職業;另外一個社會現象是,企業很少直接從社會直接招聘配置管理工程師和質量工程師,而通常的做法是從企業內部的現有測試員工隊伍里選拔,而轉型后的測試工程師,就成為SCM或SQA。分析其原因,我們可以感知,SCM、SQA與軟件測試工程師都是關注于軟件質量的相似職位,社會對于配置管理、質量的定義和內容并未普及,與其直接從社會招聘“0”基礎的人來培養,倒不如從軟件測試人員里升華!一般來說,這兩種職位的上報對象是項目經理或相同級別管理者。
轉型后的配置管理與質量工程師,一定要轉變一個意識,那就是常規測試工程師的范圍很大一部分(不是全部)只限于測試流程,而配置管理和質量的范圍是面向整個軟件開發流程,二者的職業要求都非常重視軟件工程知識體系的建立和軟件開發總體流程的實施能力。由于配置管理工程師除了企業配置管理流程的搭建與實施外,一般會涉及配置管理工具的管理與維護,而質量工程師更多的是軟件開發流程的控制與維護,故而配置管理對技術的要求稍高于質量。
業務測試工程師,定義為面向行業類軟件業務邏輯與流測試的人員。當前軟件開發類型,很大一部分是行業類軟件的應用,如ERP、SCM、CRM、OA、電信、金融、財務、嵌入式、通信、手機、游戲……這就要求從事行業類軟件測試的人員具備行業背景、業務知識,熟練該行業流程。從社會上出現的很多對此類經驗要求的測試工程師招聘信息中,我們更加肯定這種趨勢;所謂存在即是道理,既然社會上有了需求,那么就可以作為個人發展的方向。而另外一個特點是,業務測試工程師的內容主要是黑盒測試,屬于功能范疇,因此對技術要求不大,設置一些大型行業類軟件企業的業務測試工程師薪資豐厚,但是完全可以不懂技術,因為它的性質決定了不需要懂很多的技術!他們甚至連軟件的界面測試都不做——交給常規測試工程師實施,而完全關注軟件的業務性和易用性,由于其深厚的行業背景,可以為軟件的在正式發布前提出很多建設性的意見,而這些建議正是軟件開發商提高產品易用性、增加用戶滿意度、開拓市場、創造利潤的關鍵因素之一!
管理方面高級域:
當管理路線的中級域方向繼續上升至高級域,就分別到達配置管理經理、質量經理、產品經理、業務專家。
如果說配置管理工程師、質量工程師更加側重于配置管理流程、質量流程的實施與日常管理維護,那么配置管理經理、質量經理就是更側重于配置管理流程、質量流程的建立與改進。一般在中小軟件企業,可能沒有這兩個角色,而全部的配置管理或質量都由工程師擔當;但是大中型軟件企業對配置管理經理、質保經理求賢若渴。軟件系統越龐大,軟件開發團隊規模就越龐大,軟件開發流程中出現問題的幾率就越高,高效管理軟件開發流程,不斷改進軟件質量,是每個軟件企業在技術上沒有顧慮后的下一個急需攻破的難關!
業務專家,屬于行業內咨詢、顧問的角色,已經幾乎脫離了測試本身,而更多為企業的產品需求分析、設計、開發、測試等各個環節提供指導,其目的也是提高軟件的易用性和穩定性,減少后期不必要的需求變更。該職位也同樣在目前熱點行業的大中型軟件企業有所設立。
產品經理,這個職位在很多企業有所設立,可以說它是質保經理的派生,只是它更側重于軟件在產品化之前的質量監控,包括軟件開發流程、軟件測試等技術與管理的各個方面。
管理方面咨詢域域:
管理路線的最高發展域是咨詢域,與技術路線的專家域類似,在配置管理、質量、軟件產品化、行業領域達到高深造詣的人才,他們有豐富的從業經驗、深厚的管理底蘊,具有對軟件工程高瞻遠矚的慧眼和膽識,往往供職在專業的咨詢與培訓企業,提供IT業管理類咨詢與培訓的服務,推動著軟件行業的前進。國內外很多為軟件企業進行CMM咨詢和實施的企業里,就是這些人才的大本營之一!