軟件測試工作心得-三個思考和保持熱情
技術(shù)類思考
軟件工程的任何一個部分——從需求分析、架構(gòu)設計到***的Debug——都能引入Bug,有時候是單個引入,而有時候則是一窩一窩地引入。所以,優(yōu)秀的測試員理應掌握豐富的軟件工程知識。很難想象一個不懂材料力學和結(jié)構(gòu)力學的工程師能夠驗收剛剛建好的大廈。
測試員不但需要學習編程,而且需要學習各種編程。初級測試員可以站在用戶的角度上去觀測和使用軟件,以期找出Bug所在,但高級程序員更需要借助程序的原理來剖析更深刻的東西。毫不夸張地說:如果想深度測試Web程序,你應該學學Hacker;如果想研究.NET的程序,你應該學會MSIL;如果想深度Debug原生代碼,你應該學習匯編、了解PE文件格式;如果想深度測試軟件的安全性,你應該學學破解;如果……總之,理想的測試員應該比程序員更深一個層次。
保持對軟件的喜歡和熱情。小到FlashGet大到3DS Max,如果有機會都要上手玩一玩。這樣做好處多多,一來可以豐富你的軟件使用經(jīng)驗、無形中建立你對軟件邏輯的把握;二來豐富你的行業(yè)軟件知識,比如你讓一個長期測Outlook的人去測Photoshop,那測試出來的結(jié)果肯定和一個長期使用Photoshop作圖的人測出來的結(jié)果相去甚遠。
深入理解操作系統(tǒng),包括Windows系列(包括.NET平臺也可以理解為是操作系統(tǒng)的一部分),Linux系列(JDK算是操作系統(tǒng)的一部分),Macintoch系列。一來,軟件其實就是扎根在操作系統(tǒng)上的樹木和花花草草(通過系統(tǒng)開放給程序員的API與系統(tǒng)血脈相連);二來,很多軟件是跨平臺的,要求你有豐富的多平臺操作經(jīng)驗才能玩轉(zhuǎn),比如Adobe公司的很多優(yōu)秀產(chǎn)品就是跨Windows和Mac平臺的,這兩個平臺的API完全不同,為什么軟件“看上去”卻一模一樣呢?再比如IBM公司的很多產(chǎn)品是跨Windows和Linux平臺的等等。
行為類思考
軟件測試不是***的,所以測試員也不是***的。測試員不是救世主。這至少說明兩個問題:一,一個設計很爛、編碼很爛的軟件,你再怎么測試它也成不了優(yōu)秀的軟件。二,測試員(或者說軟件質(zhì)量保證人員)沒有權(quán)利在團隊里趾高氣揚、四處揮動粘滿Bug的大棒以圖通過測試結(jié)果證明自己的英明神武——大家都是平等的。平等的觀念在中國人的思想中尤其缺乏,特別要注意。
測試員應該是一個冥想者。所以,測試團隊應該有一間獨立的,安靜的,沒有計算機的屋子,以供進行深度而縝密的思考。
管理類思考
不要不懂裝懂。你不懂不會,不足以讓組員瞧不起你;你不懂裝懂,所有組員都會瞧不起你。管理就是管理,是把項目做好,不是讓你練擒拿格斗,一定要制服組員。勇于上問、不恥下問,快速學習,這才是團隊學習之道。
作為Lead,如果沒什么重要事情,到點就走人——不然你的組員會礙于面子而陪著你。你有沒有想過他還有可能要陪父母、妻子和兒女呢?如果你經(jīng)常這么干,建議你看一看《二十美元的故事》這則小寓言。
要做權(quán)威,不要做學霸。我想說的是:下屬進諫的速度和廣度決定于你的心胸與寬容度。正因為大多數(shù)初級管理人員心胸狹窄、寬容度低,才導致了團隊習慣性的“絕對上下一致”。據(jù)我所知,印度程序不是這樣的風格,屬下和領導、新手和權(quán)威可以心平氣和地討論分歧而不必面紅耳赤。我的建議是:在團隊中,不要等級觀念,要平等;不要諷刺刻薄,要尊重;不要放不下架子,要寬容;不要目中無人,要謙虛??傊痪湓挘捍蠹叶际瞧胀ㄈ耍l能跟誰差哪兒去呢?