什麼樣的人適合當軟體測試工程師

之前寫過一兩篇簡單介紹什麼是軟體測試. 最近參加一些論壇, 也看了一些其它人的文章, 就再寫寫我認為什麼樣的人適合當軟體測試工程師, 或要找什麼樣的人來當軟體測試工程師.

我最近聽到且深表贊同的, 就是應該要找 "會寫程式的測試工程師", 而不是找 "程式設計員來教他如何做測試". 這好像繞口令, 但其實就是說軟體測試工程師要會寫程式沒錯, 重點還是在測試, 提升軟體的品質. 微軟的軟體測試工程師, 正式名稱叫 "Software Development Engineer in Test", 簡稱 SDET, 還是花大部分時間寫程式, 只是這些程式通常是測試工具或自動化測試的測試案例, 著重於程式碼的 performance, 可測試性, 可維護性, 安全性, 還有系統整合時可能產生的各種問題. 比起軟體開發工程師 (Software Development Engineer, 簡稱 SDE), SDET 接觸層面較廣. SDE 則較著重於開發技術的深度.

所以, 理想狀況下, 好的軟體測試工程師, 應該要文武全才, 要了解技術, 要會寫程式, 會 Debug, 要懂各種測試方法, 要考慮客戶使用產品的使用者案例, 要對系統了解去測試整合性的問題, 還要時時和 PM 還有 SDE 保持良好的溝通. 不過最重要的, 其實是對品質的要求要比團隊中其它角色都更挑剔和堅持. 一般在招募人力時, 很難真的找到每個條件都具備的人. 那種人萬中選一, 可能好幾年都遇不到一個. 來應徵的人不是只會寫 Code 不懂測試方法, 就是只懂測試方法但不會寫 Code 把測試工具和測試案例開發出來. 找到會寫 Code 也懂測試, 卻可能不夠細心或對品質要求不高. 這時優先考慮的要件, 我個人認為是測試高於寫程式. 如果一個對測試完全不了解或有誤解, 甚或心態上不是很重視測試和品質, 就算可以很快把程式寫出來, 也很難培養成好的測試工程師, 反之, 若這個人了解測試要求品質, 但程式沒有寫的那麼好, 成功的機率還是大於前者.

不過當然, 相當程度的技術能力和 Coding 能力還是要的, 開發測試工具和自動化測試案例, 畢竟也是在開發軟體, 這部分的工作也是100% 的 Programmer 的工作. 要重新培養基本的東西, 可能沒有幾個雇主有那個時間和耐性吧.