測試就像尋寶一樣 需要在最短時間內找到最值錢的寶物
每個測試人員在特質上可能有共同之處,但成長的經歷卻是不同的,李和恒在選擇測試的工作的時候既有偶然的成分也有自主的選擇。來微軟
面試的過程中,他從面試題里面感覺到一點不平常:總是在問如何測試自己寫的代碼。最后一關經理終于問他對軟件測試工程興趣如何,這著實出乎意料。不過和恒回想起所有面試題的意圖,如果是從事簡單的工作,犯不著問這么難,所以就答應了。三年之后的現在,經歷了若干項目之后,如果再選擇一次,和恒覺得自己還是會選擇測試工作。
具備什么樣的素質才是合格的軟件測試工程師?軟件測試的具體工作內容包括:理解用戶的
需求和體驗,校正設計和項目計劃,運用良好的
測試方法和實踐,撰寫有效的
測試計劃,設計有效的測試用例,推動自動化測試,調查分析bug的根本病因,追求卓越的技術和業務能力,充分的團隊合作,以及緊密地聯系和關注用戶和合作伙伴。
李和恒個人的理解是,軟件測試就像沙灘上的尋寶人,你不可能知道沙里埋了些什么、有多少、在哪里。尋寶人要在盡量短的時間里面挖出盡量值錢的寶物。但極為諷刺的是,你不可能挖出所有的寶物,而且所有的寶物日后都會浮現出來,比如地震海嘯地質運動什么的。在這里,測試工程師就是尋寶人,寶物就是bug。至于用什么辦法尋寶,那是技術上的問題了。技術總是日新月異的,所以我對合格的軟件測試工程師的期望是:狂熱追求寶物,具有大局觀,充分了解沙灘,最后才是了解并改革尋寶工具。
測試在架構下更簡單
在沙灘上尋寶也是有沙灘的寬度的限制,同樣測試工作也是需要在一定的規則下進行的。李和恒平時對架構設計很感興趣,他告訴記者其實架構和測試是有相通之處的。 他所理解的架構是一組
游戲規則,在這組規則的保護下人們可以關注更有趣的事情,這個理解對測試工作來說是一樣的。軟件測試工程師在架構的保護下可以關心更值得注意的事情。舉個例子,籃球規則讓進攻隊員可以專心投籃而不用擔心被推拉,違反規則的行為可以被清晰的觀察出來。另一個技術上的例子是.NET framework 3.0里面的插件開發模型,以前軟件測試工程師可能需要測試不同類型的插件實現方法,現在只需要留意插件相對于產品的功能。換句話說,架構或者說是規則,已經被良好的測試過了,值得信賴。
采訪后記
與和恒聊了很久,話語間提到在微軟工作的收獲,他認為最大的收獲莫過于發現測試工作是一個未被開發的金山,莫過于跟一群具有智慧和熱情的人們共同開發這座金山,莫過于發現自己還挖了不少好東西。最后記者希望他推薦本書給廣大的
程序員,和恒拿出一本John Lakos的Large-Scale C++ Software Design,大規模C++程序設計,告訴記者說那里面介紹的系統分析方法使他從只關注自動化測試轉向了解系統結構。