一位微軟軟體測試開發工程師的成長體驗

2021-04-30 07:03:00 字數 2810 閱讀 9816

背景資料:李敏,2023年開始在微軟實習,半年後研究生畢業成為正式員工,先後經歷了 system center configuration manager 2007以及sp1、r2的發布,測試的領域涉及ui測試、amt feature和安全測試等。這篇部落格,是她想分享給大家的一些體會和故事,一來給不熟悉測試工作的讀者描繪一下在微軟當軟體測試開發工程師是怎麼回事情,二來「揭秘」一下微軟的職業發展體制。

2023年的秋天,李敏還在上海交通大學念研究生,還有半年就要畢業了。一天,同學發了個鏈結給她,是微軟在上海招聘實習生的訊息,職位的名稱叫做軟體測試開發工程師(software development engineer in test,簡稱sdet),這個職位對學生來說還是個新鮮玩意兒,沒幾個人清楚具體情況,在好奇心的驅動和微軟的吸引力之下,她投出了簡歷。接著她經歷了傳說中的微軟「五輪面試」,走出美羅大廈的時候已是下午一點,時至今日她對這個時刻的印象只有兩個:飢腸轆轆,大腦高速運轉。經過一周的焦急等待之後,她同時收到了sdet實習生和正式員工的offer,所在的組是system management server(也就是system center configuration manager 2007的上乙個版本)。

就這樣,李敏開始了在微軟當軟體測試開發工程師的旅程。

幾個月過去了,當同學好奇地問起在微軟工作的感受和sdet的情況時,她說了自己的「微軟測試初體驗」:

測試初體驗

一、軟體測試開發工程師,很「奢侈」很「酷」

問起對軟體測試開發工程師的第一印象是什麼,她的回答是:挺「奢侈」挺「酷」的。

說到「奢侈」,先看看乙個軟體測試開發工程師的典型「測試財產清單」 —— 一到兩台配置先進的工作機;兩個21寸的液晶顯示器,乙個螢幕用來顯示產品的介面,另乙個螢幕用來發bug或者程式設計序;再加上實驗室裡面十幾台測試機器或是乙個16g記憶體的「巨無霸」。如果你需要測試windows mobile,那恭喜你了,各式各樣的smart phone、pocket pc可以裝滿一抽屜。經過一段時間的了解後,她也知道了這樣「奢侈」的配置一方面可以提高工作效率,更重要的是讓測試工程師能夠考慮到各種複雜的配置以及模擬客戶環境。

說到「酷」,印象中,軟體測試開發工程師總是有機會走在嘗試各種微軟新技術、新產品的前端,也總是有機會通過動手能力來展示自己的「酷」。比如工程師會把十幾台測試機器裝成各種各樣不同的bench, 作業系統從windows 2000、xp到最新的vista、longhorn甚至windows 7,從x86到x64,從英文到德文、中文、日文等;微軟最新的產品或者尚未發布的產品都可以拿來「研究」一把,比如longhorn、windows 7、hyper-v等;雖然不一定考過mcse,但是每個人都會配置dns、dhcp、ad、network等。

測試初體驗

二、測試有時候就像是玩遊戲,找問題的能力很重要

測試就像是玩遊戲?也許你會覺得不可思議。李敏拿了道面試題來打比方,給你一台膝上型電腦,你會怎麼去測試它?這是一道典型的開放式問題,即使是沒有測試知識的人也可以想出很多的「測試用例」。比如檢查筆記本的型號、顏色、硬體配置、螢幕、電池、作業系統等,相信這是很多人拿到新買的筆記本之後做的第一件事情,這些多半都屬於常規的正向功能測試;還有些人指出,外觀要小巧方便攜帶,鍵盤手感如何布局如何,功能鍵是不是方便易用,這些人對可用性要求比較高;還有些會想到用它來玩3d遊戲看看顯示卡的效能怎麼樣;有些人想到裝上vista、64位的作業系統,這就是相容性方面的考慮;還有人思維「不走尋常路」,提出要把筆記本放在赤道的日照、南極的冰雪環境下試試能不能正常工作,當砧板切切菜,扔下樓看看碎不碎,這就是關於可靠性和壓力方面的測試,有趣的答案還可以有許多許多,只要你去想…

在李敏的描述中,軟體測試開發工程師真實的日常工作跟答這道題一樣的好玩,只不過膝上型電腦換成了軟體程式。軟體測試開發工程師拿到「膝上型電腦」之後,會像上面說到的一樣開動腦筋仔細檢查,檢查之前需要列出想測試的各個方面、策略、工具、風險以及怎麼開展等,這稱為測試計畫(test plan);每項具體的測試叫做測試用例(test case),每個test case需要列出具體操作步驟(steps);找出來軟體的缺陷、問題等稱為bug,bug中需要記錄怎樣去重現它,稱為重現步驟(repro steps);找bug的過程中你可以試圖找出根本原因在**、甚至哪一行**有問題,這就是debugging。優秀的軟體測試開發工程師在這個「玩遊戲」的過程中需要具備足夠的好奇心,想出各種各樣的主意把軟體「搞壞」,盡可能地找出bug,還要多從客戶的角度去想,其終極目標就是為發布到客戶手中的軟體把好質量關。其中,找bug是軟體測試開發工程師應該具備的基本功。

不久她就找到機會「測試」了一把自己的sdet指數,正好高效能計算組舉辦找bug比賽,優勝者可以獲得一些小禮品,她拿到了乙個印有microsoft標誌的水杯。

這時候,她的乙個高中同學在msn上面發了條訊息:「你當了測試工程師,就不用程式設計了吧?」。看來需要澄清一下了:

測試初體驗

三、誰說軟體測試開發工程師不用寫**了?

微軟早年也設有只做手工測試而不寫**的職位,稱為ste(software testing engineer)。現在所有的測試工程師的職位都叫做sdet(software development engineer in test),從名字可以看出來,需要具備程式設計能力,這些程式設計工作是為了更好地做測試。

舉個例子,李敏負責的某個ui模組有1000多個測試用例,手工執行一遍想想都很累。為了偷懶,她寫了些**將其中80%的測試用例實現測試自動化,這樣下班前只要讓機器開始跑自動化,第二天就可以拿到結果,從而大大減少了驗證這些測試用例所需要花的人工時間,又可以及時地捕捉到bug。此外,軟體測試開發工程師經常會做一些實用的測試工具和研究測試技術,比如開發ui測試方面的工具,開發測試流程管理工具,和更好地運用基於模型的測試方法等。在堅持創新的公司文化引導下,大家都非常注重運用新技術新方法,不斷地把測試工作推進到新的高度。

測試開發工程師的發展

1.技術含量 面試過許多的應屆畢業生,問及為什麼選擇測試開發這個職位時,經常聽到以下的回答 我覺得自己開發能力比較弱,但我比較細心,覺得測試職位比較適合。我在實驗室和實習公司呆過,做過功能測試和效能測試,我比較喜歡測試.無論人們內心真實的想法是什麼,但潛意識裡面測試的技術含量沒有開發高。在校園招聘的...

一位工程師的忠告

1好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人並 不指望成為什麼院士或教授,而是希望活得滋潤一些,爽一些。那麼,就需要慎重安排自己的軌跡。從哪個行業入手,逐漸對該行業深入了解,不要頻繁跳槽,特別是不要為了一點工資而轉移陣地,從長遠看,這點錢根本不算什麼,當你對乙個行業有那麼幾...

測試開發工程師必備 軟體工程理論

1.可行性分析是在系統開發的早期所做的一項重要的論證工作,它是決定該系統是否開發的決策依據,因必須給出 c 的回答。a 確定 b 正確 c 行或不行 d 無二義 2 一般地,可以將軟體開發的生命週期劃分為問題定義 b 需求分析 總體設計 詳細設計 編碼和單元測試 綜合測試和維護8個階段。a 專案論證...