Why do you want to be a software tester? For newbies or who are considering to choose this career...

身為軟體測試工程師, 有時和台灣一些其它從事軟體業的朋友聊起軟體測試這一行在台灣的狀況, 感覺是每個人都覺得軟體測試很重要, 但實際上從事軟體測試的人員, 或說公司在招募軟體測試工程師時, 又多是招募一些剛入行比較缺乏工作經驗, 或技術能力要求相對較低的人員, 給的薪水也比其它軟體工程師低一些. 要是上一些入口網站搜尋"軟體測試", 有些人對軟體測試的了解還有軟體測試工程師的定位還真是另人搖頭, 例如"低階", "乏味"...等等負面的字眼, 大概會因此阻擋很多有理想有抱負的年輕人進入這個行業.

個人有幸在微軟當軟體測試工程師, 並沒有感受到這些不受尊重的負面字眼發生在我的工作中, 不過既然有如上的狀況出現, 雖然沒有正確的取樣數據, 但這在台灣應該還是常見的狀況. 如果不改善, 這對軟體產業在台灣的發展絕對會有不好的影響.

我個人有時也會被問到軟體測試工程師在做什麼, 以及我為什麼要從事軟體測試, 而不是當個 DEVELOPER 或 PM, 原因其實很簡單, 因為我認為測試軟體, 不但要看懂 DEVELOPER 的程式碼, 了解整個軟體架構的設計, 還要做出計畫, 和開發團隊溝通, 並在某種程度上了解客戶的需求(雖然我認為搞懂客戶的需求其實是 PM 的責任). 最後, 還要想盡辦法去預防 BUG, 調查分析發生 BUG 成因, 並提供測試報告給軟體發行團隊評估產品發行的風險, 簡言之, 一個好的軟體測試工程師, 需要了解所有(負責領域的)開發流程的技術和流程環節, 還要利用各式各樣的工程方法來降低軟體出錯的機率, 或找到軟體的錯誤, 這其實是很有挑戰性且樂趣一點也不少於其它角色的工作.

至於究竟一個稱職的軟體測試工程師需要那些技能, 或更簡單的講, 要如何做軟體測試, 如果不怕看英文的話, 不妨參考 Bj Rollinson 的給新手的書單. 如果想多了解微軟怎麼做軟體測試, 則可以參考 How We Test Software at Microsoft 這一本書.