小序:
幹測試也有一年多了,偶爾也會靜下心來思考一些問題,但不少思考的結果都似靈光一現——事後就忘掉了,實在惋惜,之後就記在這裏吧。
正文:
技術類思考
- 軟件工程的任何一個部分——從需求分析、架構設計到最後的Debug——都能引入Bug,有時候是單個引入,而有時候則是一窩一窩地引入。因此,優秀的測試員理應掌握豐富的軟件工程知識。很難想象一個不懂材料力學和結構力學的工程師可以驗收剛剛建好的大廈。
- 測試員不但須要學習編程,並且須要學習各類編程。初級測試員能夠站在用戶的角度上去觀測和使用軟件,以期找出Bug所在,但高級程序員更須要藉助程序的原理來剖析更深入的東西。絕不誇張地說:若是想深度測試Web程序,你應該學學Hacker;若是想研究.NET的程序,你應該學會MSIL;若是想深度Debug原生代碼,你應該學習彙編、瞭解PE文件格式;若是想深度測試軟件的安全性,你應該學學破解;若是……總之,理想的測試員應該比程序員更深一個層次。
- 保持對軟件的喜歡和熱情。小到FlashGet大到3DS Max,若是有機會都要上手玩一玩。這樣作好處多多,一來能夠豐富你的軟件使用經驗、無形中創建你對軟件邏輯的把握;二來豐富你的行業軟件知識,好比你讓一個長期測Outlook的人去測Photoshop,那測試出來的結果確定和一個長期使用Photoshop做圖的人測出來的結果相去甚遠。
- 深刻理解操做系統,包括Windows系列(包括.NET平臺也能夠理解爲是操做系統的一部分),Linux系列(JDK算是操做系統的一部分),Macintoch系列。一來,軟件其實就是紮根在操做系統上的樹木和花花草草(經過系統開放給程序員的API與系統血脈相連);二來,不少軟件是跨平臺的,要求你有豐富的多平臺操做經驗才能玩轉,好比Adobe公司的不少優秀產品就是跨Windows和Mac平臺的,這兩個平臺的API徹底不一樣,爲何軟件「看上去」卻如出一轍呢?再好比IBM公司的不少產品是跨Windows和Linux平臺的等等。
行爲類思考
- 軟件測試不是萬能的,因此測試員也不是萬能的。測試員不是救世主。這至少說明兩個問題:一,一個設計很爛、編碼很爛的軟件,你再怎麼測試它也成不了優秀的軟件。二,測試員(或者說軟件質量保證人員)沒有權利在團隊裏趾高氣揚、四處揮動粘滿Bug的大棒以圖經過測試結果證實本身的英明神武——你們都是平等的。平等的觀念在中國人的思想中尤爲缺少,特別要注意。
- 測試員應該是一個冥想者。因此,測試團隊應該有一間獨立的,安靜的,沒有計算機的屋子,以供進行深度而縝密的思考。
管理類思考
- 不要不懂裝懂。你不懂不會,不足以讓組員瞧不起你;你不懂裝懂,全部組員都會瞧不起你。管理就是管理,是把項目作好,不是讓你練擒拿格鬥,必定要制服組員。敢於上問、不恥下問,快速學習,這纔是團隊學習之道。
- 做爲Lead,若是沒什麼重要事情,到點就走人——否則你的組員會礙於面子而陪着你。你有沒有想過他還有可能要陪父母、妻子和兒女呢?若是你常常這麼幹,建議你看一看《二十美圓的故事》這則小寓言。
- 要作權威,不要作學霸。我想說的是:下屬進諫的速度和廣度決定於你的心胸與寬容度。正由於大多數初級管理人員心胸狹窄、寬容度低,才致使了團隊習慣性的「絕對上下一致」。據我所知,印度程序不是這樣的風格,屬下和領導、新手和權威能夠心平氣和地討論分歧而沒必要面紅耳赤。個人建議是:在團隊中,不要等級觀念,要平等;不要諷刺刻薄,要尊重;不要放不下架子,要寬容;不要目中無人,要謙虛。總之一句話:你們都是普通人,誰能跟誰差哪兒去呢?