不一樣的sdet
首先,我要強調的是這篇文章討論的是微軟的
software development engineer in test,中文翻譯為測試開發工程師,簡稱sdet。不同於以手工或者指令碼幫助測試的軟體測試工程師 (ste, software test engineer),sdet是用程式設計方法結合正確的測試方法學來確保軟體符合正確的設計和使用者的需求,這裡強調的是用程式語言來設計程式並完成自動化的高效測試。下面我就細說一下我們sdet的不同之處。
首先,sdet和sde具有一樣的設計和程式設計能力,這是我們篩選簡歷的基本條件之一。無論在美國還是中國,我們從大學招來的sdet都要具有computer science的背景,不一定是computer science系畢業的(雖然有不少人的確如此)。幾所美國大學甚至開設了軟體測試博士站,我原來的產品組就聘用了一位軟體測試博士。sdet的**和設計要比sde的**(產品)還要有更高的穩定性和堅韌性(robustness)。產品有專人(就是sdet!)來測試,乙個版本乙個版本地發布。但是sdet的**沒有這種階段性,只要它要測的功能還在,sdet的測試**就得執行下去而且得無誤!即便測試的一線管理者,就是測試主管,也同樣需要有開發、設計能力。
第二個不一樣是對開發式創造性思維的獨特要求。這種獨特性體現在
sdet設計的測試用例的完整性。sdet需要有開放性的思維,才可能設想到千千萬萬使用者的各種需求,他們來自五湖四海,有不同文化、不同年齡、不同職業等等。同時,sdet又不能迷失在使用者的個案中,需要從眾多案例之中,選擇有代表性的進行重點測試,以點概面,用有限的時間達到較高的測試覆蓋率。
第三個獨特之處是
sdet的工作在微軟軟體開發過程中扮演著確保高品質產品的重要角色。因為sdet在整個過程中始終扮演著使用者的角色,對乙個產品從開始編寫**到最後發布的整個過程有全盤的了解,更能對使用者的體驗感同身受。sdet必須與pm、sde緊密合作確保正確理解使用者需求和產品功能設計的正確性,同時還要保證產品的可測試性。比如,一項功能或設計是不可測的或是使用者不需要的,sdet可以要求pm或sde修改設計說明或功能說明甚至提供修改意見。需要特別指出的是,sdet對軟體質量的sign off也是微軟所有產品中期和最終發布的前提條件之一。
sdet的職業發展
那麼微軟sdet的職業發展機會又是如何呢?總的來講,和微軟其他專業的同事大同小異,主要有幾個方向:
當然,如果個人興趣發生變更,技術帶頭人也可以通過一定培訓轉為培養、發展人才的管理人員,管理人員也可以回到技術帶頭人的軌道。
sdet也有轉為sde或pm的,甚至轉入技術諮詢、支援或市場方向,最終的職業道路不外乎是上述的兩個大方向。
sdet的日常工作
除了之前提及的在產品設計階段審核並批准
pm的功能說明和sde的設計說明外,sdet也要制訂相關的測試計畫書和時間表,比如,為什麼產品中必須提供這個功能,而不是其他的;為什麼這個版本應該實現這麼多功能;設計測試用例去決定什麼應該測試,什麼可以暫時放在一邊,需要什麼樣的自動化測試系統,需要新的測試工具與否,測試所需要的時間等資源的預計等諸如此類。
在測試計畫書和時間表審議通過後,每位
sdet接下來的主要任務是用合適的程式語言去測試產品,需要考慮是共享他人的工具或**,還是自己重寫;sdet的**的可維護性要很強,因為沒有人給sdet寫的**找bug,當然**出錯誤,sdet得自己分析原因並進行修理。sdet同時不斷找bug,分析bug產生的原因、跟蹤處理bug的進展。sdet 其它的日常工作還包括對現有系統的改進,當前系統的效能報告等等。
sdet的樂趣做
sdet沒有比找到厲害的bug更高興的了,這會讓sde折服,讓pm對產品更有信心。成功的sdet會到處聽到人們在討論他或她找到的bug。如果找到產生這個bug的背後原因,大家更會豎起大拇指!
做sdet都想讓微軟其他人採用自己發明的測試方法或工具來發現新
bug!
sdet承擔著微軟公司內部的諸多系統和工具的開發和維護工作。許多任務具被內部幾萬人使用,這些系統和工具的開發涵蓋了所有開發產品所必需的流程,技術含量更加不俗。整個微軟有數千sdet, 有在作業系統部的,在office組的,在伺服器的,做硬體的(譬如xbox,zune),更有services。 他們的產品各不相同,如果能研究出乙個通用並且高效的做法,其它組的人必然會欣然接受。我們伺服器與開發工具事業部就有一位剛從大學畢業不久的sdet,工作第二年就開發了乙個ui compliance方面的自動化測試工具,已被多個中美產品組的測試團隊廣泛使用,並正在申請相關專利,這也是一件值得驕傲的事情。 最讓
sdet自豪的是使用者喜歡使用自己測試的產品,並讓他們的工作更輕鬆、便捷。
我還清楚記得我在微軟的第一次發布產品的經歷。那時我在
msxml組做sdet, msxml3.0剛發布時,我總是惶惶不可終日,生怕自己的產品支援工程師來電,說自己負責的那個領域有問題,或者是newsgroup上有人報告壞訊息。一天過去了,沒事,乙個周過去了,還是沒事,乙個月過去了,還是沒事,心情漸漸放下,自傲感開始上公升。最後,幾個季度過去還是沒事,我就徹底放心,可以大膽地告訴他人,我們產品質量沒問題,我做到了!
優秀的sdet
不是所有的
computer science畢業生都適合做sdet,除了上文提到的設計和程式設計能力、獨到的創造性外,一位優秀sdet還需要:
卓越的sdet
談了這麼多,你是否對
software development engineer in test這個專業有了全新的認識呢?
對測試感興趣的你還等什麼,快加入我們的隊伍吧!!!
吳光安(注:本文作者為微軟中國研發集團伺服器與開發工具事業部高階測試主管)
測試開發工程師的發展
1.技術含量 面試過許多的應屆畢業生,問及為什麼選擇測試開發這個職位時,經常聽到以下的回答 我覺得自己開發能力比較弱,但我比較細心,覺得測試職位比較適合。我在實驗室和實習公司呆過,做過功能測試和效能測試,我比較喜歡測試.無論人們內心真實的想法是什麼,但潛意識裡面測試的技術含量沒有開發高。在校園招聘的...
什麼是測試開發工程師 SET ?
經常有人問到 什麼是 軟體測試開發工程師 software engineers in test,縮寫為set 借用google的規範來說其實就是 在測試中的軟體工程師 其工作性質上首先是測試,然後才是開發。我個人的觀點是 通常情況下是不行的。因為一名優秀的開發工程師所具備的能力,不僅僅是熟悉程式語言...
2020測試開發工程師工作技巧
這裡有一些工作技巧,從編寫 和工作任務清單到工作自動化,可以使幫助測試工程師成為更好的測試開發工程師。在將解決方案實際轉換為 之前,請養成寫出 偽 的習慣。手工編寫還可以幫助將 編寫更有計畫性。如果寫出所需的函式和類以及它們之間的互動方式,則可以節省大量時間。儘管會消耗一些時間,但這個習慣張讓使您成...