2005年的秋天,李敏還在上海交通大學(xué)念研究生,還有半年就要畢業(yè)了。一天,同學(xué)發(fā)了個(gè)鏈接給她,是微軟在上海招聘實(shí)習(xí)生的消息,職位的名稱叫做軟件測試開發(fā)工程師(Software Development Engineer in Test,簡稱SDET),這個(gè)職位對學(xué)生來說還是個(gè)新鮮玩意兒,沒幾個(gè)人清楚具體情況,在好奇心的驅(qū)動(dòng)和微軟的吸引力之下,她投出了簡歷。接著她經(jīng)歷了傳說中的微軟“五輪面試”,走出美羅大廈的時(shí)候已是下午一點(diǎn),時(shí)至今日她對這個(gè)時(shí)刻的印象只有兩個(gè):饑腸轆轆,大腦高速運(yùn)轉(zhuǎn)。經(jīng)過一周的焦急等待之后,她同時(shí)收到了SDET實(shí)習(xí)生和正式員工的offer,所在的組是System Management Server(也就是System Center Configuration Manager 2007的上一個(gè)版本)。
就這樣,李敏開始了在微軟當(dāng)軟件測試開發(fā)工程師的旅程。
幾個(gè)月過去了,當(dāng)同學(xué)好奇地問起在微軟工作的感受和SDET的情況時(shí),她說了自己的“微軟測試初體驗(yàn)”:
測試初體驗(yàn)一、軟件測試開發(fā)工程師,很“奢侈”很“酷”
問起對軟件測試開發(fā)工程師的第一印象是什么,她的回答是:挺“奢侈”挺“酷”的。
說到“奢侈”,先看看一個(gè)軟件測試開發(fā)工程師的典型“測試財(cái)產(chǎn)清單” —— 一到兩臺配置先進(jìn)的工作機(jī);兩個(gè)21寸的液晶顯示器,一個(gè)屏幕用來顯示產(chǎn)品的界面,另一個(gè)屏幕用來發(fā)bug或者編程序;再加上實(shí)驗(yàn)室里面十幾臺測試機(jī)器或是一個(gè)16G內(nèi)存的“巨無霸”。如果你需要測試Windows Mobile,那恭喜你了,各式各樣的smart phone、pocket PC可以裝滿一抽屜。經(jīng)過一段時(shí)間的了解后,她也知道了這樣“奢侈”的配置一方面可以提高工作效率,更重要的是讓測試工程師能夠考慮到各種復(fù)雜的配置以及模擬客戶環(huán)境。
說到“酷”,印象中,軟件測試開發(fā)工程師總是有機(jī)會(huì)走在嘗試各種微軟新技術(shù)、新產(chǎn)品的前端,也總是有機(jī)會(huì)通過動(dòng)手能力來展示自己的“酷”。比如工程師會(huì)把十幾臺測試機(jī)器裝成各種各樣不同的Bench, 操作系統(tǒng)從Windows 2000、XP到最新的Vista、Longhorn甚至Windows 7,從x86到x64,從英文到德文、中文、日文等;微軟最新的產(chǎn)品或者尚未發(fā)布的產(chǎn)品都可以拿來“研究”一把,比如Longhorn、Windows 7、Hyper-V等;雖然不一定考過MCSE,但是每個(gè)人都會(huì)配置DNS、DHCP、AD、network等。
測試初體驗(yàn)二、測試有時(shí)候就像是玩游戲,找問題的能力很重要
測試就像是玩游戲?也許你會(huì)覺得不可思議。李敏拿了道面試題來打比方,給你一臺筆記本電腦,你會(huì)怎么去測試它?這是一道典型的開放式問題,即使是沒有測試知識的人也可以想出很多的“測試用例”。比如檢查筆記本的型號、顏色、硬件配置、屏幕、電池、操作系統(tǒng)等,相信這是很多人拿到新買的筆記本之后做的第一件事情,這些多半都屬于常規(guī)的正向功能測試;還有些人指出,外觀要小巧方便攜帶,鍵盤手感如何布局如何,功能鍵是不是方便易用,這些人對可用性要求比較高;還有些會(huì)想到用它來玩3D游戲看看顯卡的性能怎么樣;有些人想到裝上Vista、64位的操作系統(tǒng),這就是兼容性方面的考慮;還有人思維“不走尋常路”,提出要把筆記本放在赤道的日照、南極的冰雪環(huán)境下試試能不能正常工作,當(dāng)砧板切切菜,扔下樓看看碎不碎,這就是關(guān)于可靠性和壓力方面的測試,有趣的答案還可以有許多許多,只要你去想…
在李敏的描述中,軟件測試開發(fā)工程師真實(shí)的日常工作跟答這道題一樣的好玩,只不過筆記本電腦換成了軟件程序。軟件測試開發(fā)工程師拿到“筆記本電腦”之后,會(huì)像上面說到的一樣開動(dòng)腦筋仔細(xì)檢查,檢查之前需要列出想測試的各個(gè)方面、策略、工具、風(fēng)險(xiǎn)以及怎么開展等,這稱為測試計(jì)劃(test plan);每項(xiàng)具體的測試叫做測試用例(test case),每個(gè)test case需要列出具體操作步驟(steps);找出來軟件的缺陷、問題等稱為bug,bug中需要記錄怎樣去重現(xiàn)它,稱為重現(xiàn)步驟(repro steps);找bug的過程中你可以試圖找出根本原因在哪里、甚至哪一行代碼有問題,這就是debugging。優(yōu)秀的軟件測試開發(fā)工程師在這個(gè)“玩游戲”的過程中需要具備足夠的好奇心,想出各種各樣的主意把軟件“搞壞”,盡可能地找出bug,還要多從客戶的角度去想,其終極目標(biāo)就是為發(fā)布到客戶手中的軟件把好質(zhì)量關(guān)。其中,找bug是軟件測試開發(fā)工程師應(yīng)該具備的基本功。
不久她就找到機(jī)會(huì)“測試”了一把自己的SDET指數(shù),正好高性能計(jì)算組舉辦找bug比賽,優(yōu)勝者可以獲得一些小禮品,她拿到了一個(gè)印有Microsoft標(biāo)志的水杯。
這時(shí)候,她的一個(gè)高中同學(xué)在MSN上面發(fā)了條消息:“你當(dāng)了測試工程師,就不用編程了吧?”。看來需要澄清一下了:
測試初體驗(yàn)三、誰說軟件測試開發(fā)工程師不用寫代碼了?
微軟早年也設(shè)有只做手工測試而不寫代碼的職位,稱為STE(Software Testing Engineer)?,F(xiàn)在所有的測試工程師的職位都叫做SDET(Software Development Engineer in Test),從名字可以看出來,需要具備編程能力,這些編程工作是為了更好地做測試。
舉個(gè)例子,李敏負(fù)責(zé)的某個(gè)UI模塊有1000多個(gè)測試用例,手工執(zhí)行一遍想想都很累。為了偷懶,她寫了些代碼將其中80%的測試用例實(shí)現(xiàn)測試自動(dòng)化,這樣下班前只要讓機(jī)器開始跑自動(dòng)化,第二天就可以拿到結(jié)果,從而大大減少了驗(yàn)證這些測試用例所需要花的人工時(shí)間,又可以及時(shí)地捕捉到bug。此外,軟件測試開發(fā)工程師經(jīng)常會(huì)做一些實(shí)用的測試工具和研究測試技術(shù),比如開發(fā)UI測試方面的工具,開發(fā)測試流程管理工具,和更好地運(yùn)用基于模型的測試方法等。在堅(jiān)持創(chuàng)新的公司文化引導(dǎo)下,大家都非常注重運(yùn)用新技術(shù)新方法,不斷地把測試工作推進(jìn)到新的高度。
轉(zhuǎn)眼間,一年過去了,李敏從上海的服務(wù)器與開發(fā)工具事業(yè)部老大謝恩偉的手中接過了一周年的水晶紀(jì)念碑,按照慣例還請大家吃了一磅的M&M巧克力。2007年秋天,她所在的團(tuán)隊(duì)發(fā)布了System Center Configuration Manager 2007。在這段時(shí)間里,她親身體驗(yàn)了微軟給員工提供的多種多樣的成長幫助:
職業(yè)發(fā)展體驗(yàn)一、員工成長路上的多種幫助
從加入公司的第一天起,部門就分配了一個(gè)資深員工給李敏做“Mentor”,Mentor的意思是良師益友,也就是“師傅”。Mentor會(huì)手把手地教日常工作中碰到的各種問題,很多小問題都可以請教Mentor,比如打印機(jī)怎么用、測試用例怎么設(shè)計(jì)、甚至是開會(huì)的時(shí)候有個(gè)縮寫名詞沒聽懂等。第一個(gè)Mentor的作用就是“師傅領(lǐng)進(jìn)門”。
公司還提供了系統(tǒng)的專業(yè)知識培訓(xùn)。半年內(nèi),她先后參加了New SDET in Microsoft、Test Automation等培訓(xùn),這些都是測試工作的基礎(chǔ)知識。說起“修行在自身”,公司MyLearning網(wǎng)站上有不少測試專題,比如性能測試、代碼覆蓋率研究和安全測試等;這個(gè)網(wǎng)站有無數(shù)的在線課程錄像,在這里可以學(xué)習(xí)其他員工的知識和經(jīng)驗(yàn),幫助自己更好地做測試工作;近期即將進(jìn)行的技術(shù)講座、培訓(xùn)、會(huì)議等也會(huì)在這里公布,熱門專題一定要早點(diǎn)去注冊“占座”,否則就沒位子了。另外,她還發(fā)現(xiàn)了一個(gè)非常棒的資源MSLibrary,那里有無比豐富的技術(shù)書籍、新聞雜志和研究論文等。公司還投資了一系列的綜合能力培訓(xùn),為員工提供從各方面提升“軟”技能的平臺:有些培訓(xùn)是語言方面的,比如覺得英文不夠好的可以去上課,老外來到中國也可以學(xué)中文;還有一些是教你“怎么說話”的,比如告訴你怎么精準(zhǔn)提問、精準(zhǔn)回答,怎樣做演講,怎樣去溝通得到大家都想要的結(jié)果;還有一些教你“怎么思考”,比如創(chuàng)新思考,不同情況下的思考方式等。這些培訓(xùn)很實(shí)用,一般學(xué)完了就可以運(yùn)用到實(shí)際工作和生活中。
再后來,李敏對安全測試的興趣日漸濃厚,她根據(jù)自己的發(fā)展需求和興趣找了美國這方面的“大?!眮碜鯩entor,漸漸地在System Center Configuration Manager 2007 SP1中挑起了做安全測試的擔(dān)子。她還在上海的服務(wù)器與開發(fā)工具事業(yè)部中組建了一個(gè)跨產(chǎn)品組的虛擬團(tuán)隊(duì),一方面帶領(lǐng)團(tuán)隊(duì)成員學(xué)習(xí)安全知識和安全開發(fā)流程,另一方面積極向各個(gè)產(chǎn)品組推廣實(shí)施安全開發(fā)流程的最佳實(shí)踐經(jīng)驗(yàn)。虛擬團(tuán)隊(duì)的成員來自各個(gè)不同的產(chǎn)品組,能花在安全方面的時(shí)間都是“工作之余”,要帶領(lǐng)這個(gè)團(tuán)隊(duì)凝聚力量朝一個(gè)目標(biāo)努力是并不容易的事情。最初組建團(tuán)隊(duì)的時(shí)候,她會(huì)用自己對安全方面的熱情感染其他有興趣的人,接著用事例讓大家認(rèn)識到安全對于微軟產(chǎn)品真的很重要,而且安全方面的知識對于長期的職業(yè)發(fā)展也很有幫助,就這樣“招募”到了團(tuán)隊(duì)的最初幾個(gè)核心成員。接下來就是確定這個(gè)組的遠(yuǎn)景、使命和活動(dòng)計(jì)劃,她先提出了一個(gè)草案然后組織大家一起討論,經(jīng)過一番“激烈”辯論、修正大家達(dá)成了共識。其實(shí),最大的困難還是來自于按照計(jì)劃一步一步地開展活動(dòng),在團(tuán)隊(duì)成員興趣減退的時(shí)候,需要振作士氣讓大家重新記起“最初的夢想”;在一些成員特別忙的時(shí)候,需要靈活修改計(jì)劃,讓他們能兩頭兼顧;另外還要考慮怎樣能夠更好地把安全意識和最佳實(shí)踐經(jīng)驗(yàn)傳遞給所有員工,比如會(huì)選擇技術(shù)講座、安全知識簡報(bào)和展示等多種宣傳方式。在這個(gè)過程中,李敏學(xué)到了很多東西,尤其是“influence without authority”的領(lǐng)導(dǎo)方式,通過影響來帶動(dòng)別人,而不是通過上下級的權(quán)威去要求別人。
此時(shí),她對微軟的職業(yè)發(fā)展也有了更加深刻的認(rèn)識:
職業(yè)發(fā)展體驗(yàn)二、微軟的職業(yè)發(fā)展道路為不斷挑戰(zhàn)自己的人而設(shè)計(jì)
關(guān)于員工的職業(yè)發(fā)展,年中的時(shí)候會(huì)專門有一個(gè)關(guān)于職業(yè)發(fā)展的討論(Mid-Year Career Discussion,在公司內(nèi)部內(nèi)部簡稱MYCD)。經(jīng)理會(huì)和員工一對一坐在一起,評估員工現(xiàn)在所處的發(fā)展階段、能力水平等,討論員工的未來三到五年的職業(yè)發(fā)展規(guī)劃,然后進(jìn)一步制定實(shí)施計(jì)劃。微軟給員工的職業(yè)發(fā)展道路也比較靈活,總體上有個(gè)人貢獻(xiàn)者(Individual Contributor,簡稱IC)和管理(Management)兩條職業(yè)發(fā)展軌跡。
軟件測試開發(fā)工程師屬于IC,也是李敏最初選擇的軌跡。在微軟,資深工程師很受尊敬也很有影響力。公司為工程師設(shè)計(jì)了具有挑戰(zhàn)性的職業(yè)發(fā)展道路,所以,在這兒碰到一個(gè)為微軟服務(wù)了十幾年的工程師是稀松平常的事情。對于軟件測試開發(fā)工程師來說,可以一路從Test(初級)做到Test II(中級),Senior Test(高級),甚至Principal Test(首席),隨之而來的挑戰(zhàn)是測試工作的范圍、影響力不斷擴(kuò)大。比如一位Senior Test的挑戰(zhàn)可能是對整個(gè)產(chǎn)品的測試工作做出很大的貢獻(xiàn),而一位Principal Test面臨的挑戰(zhàn)則是在整個(gè)Microsoft倡導(dǎo)新的測試技術(shù),這都需要多年的積累,也很有挑戰(zhàn)性。還有一個(gè)職位叫做Test Architect,這個(gè)職位負(fù)責(zé)測試Architect設(shè)計(jì)出來的architecture,光聽聽就知道很酷了。
員工會(huì)選擇一條職業(yè)發(fā)展軌跡前進(jìn),但也可以根據(jù)興趣和能力進(jìn)行調(diào)整。從2007年開始,李敏的小組需要將部分測試工作外包出去,李敏在經(jīng)理的指導(dǎo)下開始參與組建和發(fā)展外包軟件測試組的工作,這讓她發(fā)掘了自己在管理方面的興趣和潛力。組建外包測試組的第一步是招人,先確定職位所需要的能力,然后篩選簡歷,開始面試,多方面考察候選人,最終做出決定。然后是培訓(xùn)工作所需要的知識,老組員帶新組員,要求新組員在一周之內(nèi)學(xué)會(huì)并可以上手工作。接著是制訂一些規(guī)范流程,讓組員知道怎樣去高效地獨(dú)立工作,也讓整個(gè)過程更便于管理。比如,為了保證自動(dòng)化的代碼質(zhì)量,李敏搭建了一個(gè)回歸測試平臺和一個(gè)網(wǎng)站,所有的自動(dòng)化必須在這個(gè)平臺上通過3次,才能去網(wǎng)站上把它們標(biāo)記為“自動(dòng)化完成”。此時(shí)這個(gè)組能夠較好地運(yùn)作起來了,李敏會(huì)和組員定期會(huì)進(jìn)行一對一的談話,了解他們的狀態(tài)和遇到的問題等,綜合分析之后會(huì)想一些辦法去優(yōu)化流程和提高團(tuán)隊(duì)的效率。經(jīng)過觀察,她還確定了一些技術(shù)能力和綜合能力不錯(cuò)的組員,適當(dāng)授權(quán)給他們?nèi)?dān)當(dāng)更多的責(zé)任,發(fā)揮他們的聰明才智,也減少自己的管理成本。整個(gè)過程下來,她發(fā)現(xiàn)管理很有意思也很挑戰(zhàn),自己有興趣也有潛力去做,于是她在一個(gè)MYCD里調(diào)整了職業(yè)發(fā)展軌跡。經(jīng)理了解之后也給與了相應(yīng)的支持和輔導(dǎo),比如會(huì)建議如何去“打磨”管理方面的技巧,也會(huì)拋出問題讓她自己去思考該怎么解決、怎樣做得更好。
選擇不同的職業(yè)發(fā)展軌跡是一種挑戰(zhàn),而換個(gè)產(chǎn)品甚至邁進(jìn)一個(gè)完全陌生的領(lǐng)域是另一種挑戰(zhàn)。她身邊就有一些同事選擇加入其他的產(chǎn)品組。在這一點(diǎn)上,微軟多元化的產(chǎn)品結(jié)構(gòu)給員工提供了特別好的機(jī)會(huì),從Windows到SQL Server、Visual Studio,從Office到XBox、MSN等,跨度很大,就像是一個(gè)“IT業(yè)界”。員工總能找到挑戰(zhàn)自己的機(jī)會(huì),做熟了這個(gè)產(chǎn)品還可以做另外一個(gè)產(chǎn)品。在微軟,經(jīng)??梢钥吹焦ぷ髁硕嗄暌琅f保持著高度激情的員工,這恐怕是和公司提供的多元化的職業(yè)發(fā)展道路是分不開的。
時(shí)間如白駒過隙,2009年已經(jīng)到來,她所在的組正在做下一個(gè)版本的Configuration Manager,她也在帶領(lǐng)一個(gè)小組負(fù)責(zé)產(chǎn)品的UI測試工作。
回顧這三年半的歷程,激動(dòng)人心的挑戰(zhàn)、解決問題的成就感以及團(tuán)隊(duì)合作的樂趣始終伴隨左右。而抬頭向前看時(shí),還有太多未知的探索之旅等待著。
希望大家能喜歡這些心得與經(jīng)驗(yàn)的分享。
-
測試工程師
+關(guān)注
關(guān)注
6文章
124瀏覽量
12457
發(fā)布評論請先 登錄
相關(guān)推薦
評論