坚守在产品开发的最后一道防线上——介绍微软的SDET(转) Anny
源自http://www.51testing.com/?uid-43726-action-viewspace-itemid-218487
不一樣的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,級別一級一級往上升,責任和影響力也越來越大。有些產品組設有技術主管乃至軟件測試架構師,一般不管人,其領導能力體現在技術上,負責整個產品的測試框架工作包括自動化系統的設計、新工具的開發和現有系統的改進等等。他們對這個產品組的貢獻和影響力很大,不僅限于測試團隊,甚至可以對Dev和PM等專業產生推動作用。
·樂于幫助他人成長的SDET可以選擇往軟件測試主管,軟件測試經理等的管理人員道路發展。軟件測試主管通常帶領3至7位SDET,負責產品一個或幾個關鍵構件的質量;軟件測試經理監督一個產品組的測試工作,設計主要測試計劃書和時間表,并經常會管理2至4位測試主管。順便透露一下,服務器與開發工具事業部中國團隊的總經理就曾經是一位測試開發工程師,并歷經測試主管、測試經理,產品總監,測試總監等多個測試專業的崗位。很明顯,這個過程需要具備戰略性思維方式、有效溝通、團隊協作,決策和執行等諸多能力。
當然,如果個人興趣發生變更,技術帶頭人也可以通過一定培訓轉為培養、發展人才的管理人員,管理人員也可以回到技術帶頭人的軌道。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的眼睛;
·能建立精確的bug報告,提供簡潔和準確地重現步驟和調試信息;
·追求高質量的測試代碼和測試工具;
·有主人翁精神;
·不斷自我批評,尋找可能的測試遺漏點
·對自己的工作負責。
卓越的SDET
·主動拓展自身工作范圍之外的技能和知識;
·能平衡產品質量保證與產品發布時限;
·是軟件測試和軟件測試原則的最佳傳道者;
·愿意做任何能最終使軟件發布的努力;
·在整個開發過程中始終被視作能解決問題的人物;
·不斷推動軟件質量和跨部門交流與合作。
總結
以上是生活随笔為你收集整理的坚守在产品开发的最后一道防线上——介绍微软的SDET(转) Anny的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QPixmap QImage 相互转化
- 下一篇: 美团闪付卡是信用卡吗?可以透支消费吗?