軟體測試工程師是低人一等還是一金難求--請看微軟觀點
5 人贊了文章
最近看到一些文章報道,軟體測試工程師那很高的薪水,很高的待遇,可是很多人還是越不過去那種心理障礙。大家都認為軟體測試工程師是為那些程序員打雜,甚至被人驅使,去收拾殘局......
軟體測試工程師真的低人一等么?從薪資待遇上,很多大公司都開了大價錢招募測試工程師,從這個程度上應該改變了現狀了,但是很多公司還是抱怨找不到人。
請看微軟工程師的觀點。
(1)Francis:卓越的軟體企業一定會確保測試團隊人力資源及水平
Francis Zhou 畢業於加州大學系統聖克魯斯分校。他於2000年加入微軟,曾在總部先後擔任軟體開發測試工程師及測試組長等職務,參與了 Windows XP及Windows Presentation Foundation的開發。2005年初他正式加入微軟亞洲工程院並先後參與了TTS, Microsoft Speech Server, ActiveSync, GamesUX等項目的開發及測試。他現任測試經理,主管遊戲平台及移動平台多媒體軟體的測試開發。
我會從一個職業軟體管理人員的角度分析一下測試人員到底是不是「一金難求」。
單從微軟中國研發集團招聘數據統計來看,我們每年對軟體工程師(SDET)和軟體開發工程師(SDE)的數量需求基本相等,但SDET總是供不應求。其中原因固然有業界對測試工作的偏見而導致的軟體工程師偏重開發而迴避測試,但最大的原因還是因為市場上缺少同時具備良好測試及開發能力的工程師。兩種原因合在一起導致了合格的軟體開發測試人員的嚴重短缺。
一個良好的測試工程師需要從很多不同的角度考慮問題,在盡量廣度覆蓋的同時還要擁有深入調查研究問題的能力。而其深入調查研究問題能力 不亞於甚至要超過軟體開發人員。可以說,一個SDET比起與其技術水平相當的SDE對產品有可能作出更大貢獻,從而幫助他在事業上有更迅速的發展。
就像開發人員有不同水平一樣,測試人員之間也存在著很大的區別。一個會設計測試計劃、會開發測試自動化軟體、會debug、會調查研究問題的測試人員是非常寶貴的,而且往往難以取代。測試團隊的不完善會影響產品質量以及其開發過程,從而導致產品不能如期發布或存在嚴重缺陷。所以卓越的軟體企業管理人一定會確保測試團隊人力資源及水平。根據以上的事實,測試人員到底是「打雜」還是「一金難求」就不難判斷了。
(2)劉俐:環境造成測試人員低人一等這樣的看法
劉俐,軟體測試開發工程師,微軟亞洲工程院測試組,三年軟體測試經驗,現從事Microsoft Adcenter相關項目的測試工作
這是個經常被人說起的話題。到底測試人員是為程序員打雜的還是一金難求的國內軟體行業的特殊人才?
個人認為,測試工程師是一個對專業技術和自身素質都有一定要求的職業。一個優秀的軟體工程師無論在何處都是一金難求的。以我所在的微軟亞洲工程院為例,我們的測試工程師需要和開發工程師,規程經理一起合作,從產品定義(product definition)到產品開發(product development)再到產品維護(product servicing),在整個產品生命周期中,不斷貢獻各種建議、測試文檔以及測試數據。在這樣一個開發團隊中,測試工程師的地位和開發工程師,規程經理是一樣的——是軟體開發團隊中不可或缺的部分。
正因為測試工程師與開發工程師的同等重要性,使得軟體測試開發工程師(SDET)和開發工程師的錄用標準基本類似,但是由於外界長久以來的「不平等」觀點,左右了很多軟體開發人員的選擇:大部分人更樂意成為軟體開發工程師。這也就出現了所謂的軟體工程師「一金難求」的現象。
但同時,作為一個優秀的測試工程師,他應該具備與開發工程師相類似的軟體開發知識和技能,對被測試的軟體產品架構和所使用的技術了如指掌,同時還要有足夠的熱情和動力,憑藉積累的測試經驗,去尋找並指出產品中存在的漏洞。如果說以上這些還僅僅是對測試工程師工作要求的簡單描述,我們可以看到這樣的能夠幫助產品開發團隊尋找到重要缺陷的工程師永遠都會是一金難求的。
對於測試人員低人一等這樣的看法,我認為是由環境造成的。在微軟公司,我們營造的是測試和開發同等重要的環境。一個軟體測試開發工程師(SDET)一般會與開發工程師配合工作,負責開發相應產品模塊的自動化測試工具以及測試用例。當然,必須承認,微軟公司也一樣有很多項目是需要一些具有簡單技能的測試人員幫助運行手工測試的。而對於這些測試人員,我並不認為是「低人一等」,而是測試行業的「初級工作」。如同初級開發人員只負責編寫一些簡單邏輯的模塊一樣,測試工程師的簡單工作不應被大家詬病或者輕視的。同時,只要這些測試人員願意,他們完全可以在工作中不斷成長,最終成為一個優秀的經驗豐富的測試人員。
(3)李和恆:軟體測試覆蓋的範圍遠大於業界普遍看到的部分
李和恆,微軟亞洲工程院軟體測試開發工程師,從事測試工作已三年,先後參與過視頻編碼、在線會議和企業級即時通信等產品的測試工作,並主持web應用測試架構的開發。技術興趣為泛型編程,架構設計,測試自動化。
目前國內難以看到的高級測試技能使得業內人士低估了測試人員的職業發展空間,進而得出這樣的結論。事實上軟體測試所需要覆蓋的範圍遠大於目前被業界普遍看到的部分,因此測試人員往往沒有機會 去展示或者發展相應的高級測試技能。就一般而言,軟體測試除檢驗軟體行為是否符合產品設計之外,還應包括檢驗。
1. 設計階段
1.1. 產品設計(feature specification)本身是否符合客戶需要,是否容易被不精通計算機的用戶所使用
1.2. 架構設計(design specification)是否符合產品設計,是否容易導致缺陷,是否容易導致低劣性能和不穩定,是否有利於測試
1.3. 測試方案(test plan)是否對功能覆蓋完備,是否採用恰當方法測試每個不同領域,時間人力是否足夠,幫助開發人員提高質量的措施是否恰當和足夠,有否保證測試工具的質量
2. 實施階段
2.1. 某次代碼更新是否引發嚴重缺陷以至無法測試
2.2. 某個開發人員是否引入了太多缺陷
3. 穩定階段
3.1. 缺陷是否值得修復
3.2. 缺陷修復順序是否合理
3.3. 缺陷修復會否引發更多缺陷
4. 發布階段
4.1. 缺陷數量是否有擴大化的趨勢
4.2. 待發布版本是否符合發布標準
可見,為了完成這些任務,測試人員應該具備的技能包括
1.了解客戶需要(針對1.1),了解行業技術現況(針對1.2)
2.程序設計以至架構設計能力,調試能力(針對1.2,1.3,2.1,3.1,3.3)
3.了解產品相關技術,了解產品本身(針對1.1,3.2,3.3,4.1)
4. 了解開發人員的工作流程(針對2.1,2.2,3.2,4.2)
5. 了解產品代碼結構(針對1.2,1.3,2.1,3.1,3.3)
6. 部分的項目管理能力(針對1.3,2.1,2.2,3.1,4.1,4.2)
從中不難發現,一個具備上述能力的測試人員,從事開發人員是綽綽有餘的,職業發展的道路和開發人員也沒有太大的區別。
想學習更多測試方面的文章,請前往51Testing軟體測試網-中國軟體測試人的精神家園掌握哦~
推薦閱讀:
※論文大燜鍋:AER 評委性別與女性學者晉陞
※產品經理髮展前景(內含2017年互聯網職場白皮書)
※25歲後,最殘酷的真相是什麼?
※《把時間當作朋友》: 人生如同一場馬拉松,比拼的是方向和節奏