有些事情說起來有些滑稽,幾年前,我們說,軟件測試業在中國剛剛起步。現在,我們還是在說,軟件測試業還是剛剛起步。幾年的時間,對於其它行業是一個什麼概念我不清楚,對於IT行業來講,不是一個小數。實際上,國內軟件業的發展緩慢限制了測試業的發展,沒有軟件的開發計劃,測試的需求不旺啊。然而,反過來想,在軟件測試業還沒有大紅大紫的時候介入進去,應該是個好時候。
那麼,從事軟件測試業的基本要求是什麼?我根據自己的體會,羅列一些,供朋友們參考。
首先,要有寬泛的計算機基礎知識。微機原理,數據結構,數據庫,操作系統原理,編譯原理,邏輯,編程語言,網絡,等等,都要係統地學習過。都精通不大可能,因為人的興趣都不相同,但是,這些功課的基本知識點是應當了解的。我們在談到職業的類別的時候,我們可以說C程序員,C#程序員,Java程序員,而沒有 C測試員,C#測試員,Java測試員,程序員可以只擅長某一門編程語言,測試員卻不行。為什麼呢?測試員是代表用戶的,在做測試的時候,他(她)需要考慮到方方面面的事情。例如對於一個用C寫的上網撥號程序,測試員需要考慮:
(1)程序的功能是否正確;(要求計算機知識)
(2)是否符合用戶的使用習慣;(要求界面設計知識和換位思考能力)
(3)性能是否滿足要求,例如長時間使用;穩定性;(要求深入的計算機知識)
(4)是否能夠滿足用戶可能的不同操作系統的要求;(要求計算機知識)
(5)如果在全球發布,是否滿足不同語言和文化的需求;(要求軟件國際化測試知識)
(6)如何搭建測試環境;(動手能力,硬件知識)
(7)做代碼檢查;(比較深入的C語言知識)
(8) …
所以,各方面都了解一點,你在做測試的過程當中你會感覺順手的多。如果某寫方面還差一些,沒有關係,計算機行業的特點就是邊做邊學,只要是個有心人,學習是很快的。
其次,要掌握一門編程語言。有的朋友可能會說,我就是不願意做編程才來做測試的,怎麼測試還有這麼一個要求?我要嘗試說服你:)。我的理由有兩個:
1.只有知道怎麼做一個軟件產品,才能真正懂得這個產品。而只有真正懂得了產品,才能做好測試。一行代碼不會,你會始終是個門外漢。不要滿足於點鼠標,而去嘗試著打開我們面前的黑盒子。
2.自動化測試技術需要編程技術。自動化測試是軟件測試的一個發展方向,一方面很多測試工具都需要人工干預,編寫代碼;另一方面在有的情況下需要自己編寫測試工具。
對於測試員來說,編程技術不要求精通,但要會。
再次,學好英語。在現階段,我們只能承認,在計算機方面,英語國家領先。有很多的資料都是英語的,如果僅僅局限在中文資料方面,會影響你的淵博程度:)。舉一個簡單的例子,Windows操作系統會捕捉到一些程序或者操作系統內部的異常,你可以根據這個異常到微軟網站上去查找錯誤原因和解決辦法,其中有很大一部分資料就是英文的,因為還沒有翻譯過來或者以後也不會翻譯的。
以上所說的幾點看法,都是在計算機行業裡面打轉,下面說幾個“虛”的要求吧。
1.鍛煉出一雙測試的眼睛。我的一個朋友,她也是做軟件測試的,她說,有一次她和她老公去買筆記本電腦,她一眼就看出液晶屏上有幾個壞點,而她老公卻看不出來。她說,這要歸功於她有一雙測試的眼睛。測試的眼睛,就是對問題特別敏感,能夠發現常人發現不了的問題。測試員就是要找軟件中的問題,有了這雙眼睛會讓你收益非淺。耐心,細心和經驗,會有助於我們到達這個要求。
2.平和的心態。從心理學上說,每個人都不喜歡別人對自己挑毛病,程序員也是這樣。所以,要以平和的心態去看待發現的軟件問題,以平和的心態去和程序員交流。千萬不要以為自己發現了幾個問題,就可以責怪程序員,或者衝過去罵他們一頓。也不要在背後談論誰誰誰不行,bug太多。一個項目是大家共同做的,需要舉集體之力才能做完。我們測試員發現的問題多,表明項目的風險又少了一點,應該高興才是。如果你的脾氣不好,可能這個惡名會掩蓋你的真才實學,很可惜的。





