所屬門派:IT業
“假如存在沒有任何錯誤的程式,那麼世界也會不複存在。”
因錯誤而存在,因修正錯誤而存在,這就是軟體測試工程師的存在之道。雖然測試不是解決錯誤的根本舉措,但卻是必須的手段。
軟體測試工程師(Software Testing Engineer)的主要工作職責是,理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤(Bug),決定軟體是否具有穩定性(Robustness),寫出相應的測試規範和測試案例。簡而言之,軟體測試工程師在一家軟體企業中擔當的是“品質管理”角色,及時錯誤修正及時更正,確保產品的正常運作。據有關調查資料表明,目前國內許多軟體企業內部的測試人員和開發人員之比在1:5,與國外軟體業1:1的比例還相去甚遠。
門派技能:
軟體測試工程師主要職責為:
1、負責項目/產品的測試工作,分析產品需求,建立測試環境和計劃,保證產品品質以及測試工作的順利進行;
2、按照軟體工程規範和專案管理流程,實施、管理和知道軟體開發不同階段的各種測試,並提交測試報告。測試的計劃安排包括人員安排、進度、使用的軟硬體環境、測試的流程等;
3、提交測試報告,並撰寫使用者說明書;
4、參與軟體測試技術和規範的改進和制定。
入門資質:
一般需要至少專科學曆,一到兩年測試工作經驗。要熟悉軟體的測試技術、方法、流程、測試文檔,若想進一步提升,還要熟悉自動化測試的流程、管理及深層開發(包括測試架構等);瞭解若干主流測試載入器,如功能測試工具winrunner、quicktestpro,效能測試工具LoadRunner,組態管理工具TestDirecter, Visiual Source Safe等;熟悉一些主流的軟體工程方法論和思想,如RUP、CMM、CMMI、XP、PSP、TSP;瞭解軟體工程,軟體生命週期模型基礎,瞭解軟體組態管理;能夠根據不同企業的產品特點,要求瞭解相應的開發測試方法。對於資深的軟體測試人員,有些企業還要求其本身有自主開發測試載入器的能力。
由於需要與開發人員及時溝通,因此作為一個出色的軟體測試工程師,還需要有良好的溝通技巧以及優秀的言語表達能力,具備良好的團隊合作精神。
入門經:
縝密的邏輯思維能力 為了應對軟體使用者千差萬別的使用習慣和軟體在使用過程中出現的各種現象,軟體測試工程師應該具有逆向思維能力,能夠以使用者的角度出發,捕獲一切可能性,對細節有不同尋常的關注能力。此外,軟體測試工程師還要有窮追到底的精神,並且要善於溝通和撰寫各類專業報告。
出色的溝通能力 要成為優秀的軟體測試工程師,要具備出色的溝通能力和表達能力,既能夠和技術開發人員溝通無礙,又能用簡潔明了的話語向客戶、管理者等這些非技術人員闡述系統在哪些方面還有缺失有待改進。在同開發人員的溝通過程中,要注意溝通技巧,提高溝通效率,和開發人員保持良好的人際關係。當測試人員發現軟體有問題時,不僅需要跟開發人員溝通,找到問題出在哪兒,闡述自己挑錯的理由,有時候甚至要提出解決方案,直接參与前期需求和代碼的修改。一個優秀的軟體測試工程師能夠適時地站在各自的立場上考慮、解釋並解決問題,從而盡量避免衝突和對抗。
全面的技術能力 作為軟體測試工程師,雖然無須精通各種語言各類技術,但必須全面理解被測軟體系統,明白該使用何種工具進行測試。要做到這一點一般需要有一定的編程經驗,這些經驗可以加深對軟體開發過程的理解。
耐得住性子 軟體測試工作是枯燥的,甚至重複性的,有時需要花費驚人的時間去分離、識別和指派一個錯誤,因此需要測試人員能靜得下心耐得住性子。這個工作不容許有絲毫的心浮氣躁。同時,邏輯嚴密但不乏重複成分的測試工作也容易使人倦怠,因此需要一定的自我督促能力。
規範測試流程 公司不正規的測試流程,不標準的測試方法,將使軟體測試人員終日陷入碌碌無為的點擊按鈕的不良狀態中。
晉階易筋經:
初級測試工程師
入門級,具有一些手工測試經驗,開發測試指令碼並開始熟悉測試生存周期和測試技術;
測試工程師
能夠獨立編寫自動化的測試指令碼程式並擔任測試編程初期的領導工作,進一步拓展程式設計語言、作業系統、網路與資料庫方面的技能;
進階測試工程師
協助開發或維護測試或編程標準與過程,負責同級的評審,並能夠指導初級的測試工程師;
Team Leader
一般具有5年左右工作經驗,負責管理一個小團隊。負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品,負責開發項目的技術方法,能夠為使用者提供支援與示範;
測試經理
能夠擔當測試領域內的整個開發生存周期業務,能夠為使用者提供互動和大量示範,負責項目成本、進度安排、計劃和人員分工;
計劃經理
具有多年純熟的開發與支援(測試/品質保證)活動方面的經驗,管理從事若干項目的人員以及整個開發生存周期,負責把握項目方向與盈虧責任。
秘傳“薪”經:
薪資黃金點
軟體測試工程師在IT行業中越來越受到重視,其薪資也節節高升。測試工程師的起薪從2000~5000元/月不等,若有四年工作經驗的話,薪資在8000元/月左右,具體視不同地區、不同性質企業、測試工程師的不同能力而定。一般工作5~8年的軟體測試工程師的薪資是剛出道時的新手的一倍,而10年以上工作經驗的軟體測試工程師薪資卻走了下坡路,和5~8年的從業者持平甚至有些企業開出了略低的薪資,看來這行的折舊率較高。
軟體測試行業的從業者7成左右都擁有本科學曆,本科學曆的從業者的薪資約為大專學曆從業者的1.33倍左右,而碩士學曆的從業者薪資起點明顯高於本科學曆從業者,約為後者的1.49倍。一般外語能力精通者的薪資為平均薪資的1.29倍左右,熟練者為平均薪資的1.09倍,值得注意的是,深圳、杭州和大連的外語能力精通者的薪資均超出平均薪資不少,其中杭州的外語能力精通者的薪資是平均薪資的1.79倍。
以3.5年左右從業工作經驗的軟體測試工程師的各地薪資情況來看:
深圳地區的平均年薪是全國各城市最高的,超出7萬元,其中外商獨資歐美企業的年薪為7.8萬元,國營企業的年薪緊隨其後,超過了7.3萬元,合資/合作非歐美企業的年薪較低,約為6萬。
北京地區該職位的平均年薪逾5.8萬元;其中外商獨資企業的年薪為全國之最,將近8.5萬元,而其餘各類型企業的年薪都在5~6萬元左右。
廣州地區該職位的平均年薪約為4.5萬元;其中外商獨資歐美企業的年薪最高,達到了7萬元;合資/合作歐美企業也能拿到6.2萬元的平均年薪,合資/合作非歐美企業就較遜色,年薪不到4萬元。
上海地區軟體測試工程師的平均年薪為6.3萬元,歐美獨資和歐美合資的薪資不相上下,分別為7.9萬和7.7萬元。國營企業略高於平均線,達到6.5萬元,其餘各類企業則都表現平平。
杭州地區該職位的平均年薪達到了5.5萬元;其中外商獨資歐美企業和合資/合資歐美企業的年薪相當,均為6.9萬元,國營企業的薪資也頗吸引人,超過了5.9萬元,民營/私企和合資/合作非歐美企業的年薪均不到5萬元。
大連地區該職位的平均年薪為3.8萬元;其中外商獨資企業和合資/合作歐美企業的年薪均超過了4.7萬元;國營企業的軟體測試工程師的年薪也近4萬元左右,而民營/私企和合資/合作非歐美企業的年薪則相對較低。
福利
上海地區的軟體測試工程師享有的帶薪年假是全國各地最多的,一年中平均有10天,北京、廣州、大連均為8天,杭州和深圳相對較少,為6天。
以上這些地區在軟體測試的培訓方面都做得不錯,基本上均有6成以上的從業者可享受到公司提供的培訓計劃,但上海的軟體工程師的培訓比例不到5成。杭州和深圳兩地的培訓是全國各地區最出色的,逼近8成。
深圳、上海均有2成的從業者可享受房貼或者補充房屋公積金,大連和北京則有3成以上的從業者可享受公司的房貼或者補充房屋公積金,廣州更是達到了4成以上,而杭州此項福利的比例較低,僅為1成。