對這個問題,我的回答是:對,這是真的!
1.職位的由來。
在傳統的軟件測試領域中,是沒有測試開發這個職位的,只有測試員,測試設計員和測試管理員這三個職位。
測試員要能看懂測試用例,執行測試用例及使用缺陷跟蹤系統提交缺陷報告,在開發人員修復缺陷后還要進行返測及回歸測試。
測試設計員負責設計測試用例及測試腳本(簡單的),若工期緊張則也要做測試員的工作。
測試管理員則只要負責管理測試組織,編寫測試計劃、協調測試資源、與開發方溝通。
然而當進入網絡時代,尤其是移動應用的出現,對整個IT行業的工作模式和人員要求都是一個大的提升,這其中對測試的影響巨大。
在這里我們先來說一個現象,然后根據這個現象就能得到線索。
如果你每天都打開手機里的“應用市場”功能,就會發現有一些應用總是頻繁更新,很費流量,這是為什么呢?
作為商業產品,沒有哪個公司敢說自己的軟件沒有缺陷,而且測試本身也做不到窮舉測試,這就意味著軟件一定有缺陷,只是當前沒有發現而已。而當用戶遇到缺陷或在隨后的測試中發現缺陷,為了應對激烈的市場競爭及產品甚至企業的形象,這就要去企業要快速的解決問題,第一時間消除缺陷并向用戶發布出去。
那么問題就來了,開發人員修改代碼后不測試就發布,這是不可能的,沒人敢這么干。而測試方呢,傳統的測試主要依賴手工測試,這就需要大量的測試工程師手工執行大量的功能類測試用例及腳本,來對修改過的代碼進行驗證,消耗資源大,且時間無法把控。這就是當前IT企業招聘測試開發的誘因。
也有人可能會問,自動化測試工具就可以提高工作效率啊!對也不全對。
測試工具并不是萬能的,若恰好是測試工具所不支持的技術或環境,測試工具就無能為力了。而當前,各種操作系統、不同的操作系統版本,各種平臺技術五花八門,自動化測試工具的限制越來越大。
綜上所述,企業招聘測試開發的原因,就是需要開發出適合當前產品的工具,從而提高測試效率,滿足持續集成的要求,快速發布新版本。
2.職位的定義
測試開發工程師就是精通軟件測試流程及基本技術,掌握開發技術,能夠為產品開發出相應測試工具或測試平臺的軟件測試工程師。
3.工作的內容/目標
3.1初級目標:讓功能測試更簡單、更快
著眼于產品本身,為其他測試人員編寫適合的自動化測試工具或自動化測試框架,提升功能測試的效率。
主要工作內容包括:
編寫功能自動化測試腳本
編寫接口自動化測試腳本
編寫用于測試的各種小巧的程序
3.2中級目標:提升整體研發的測試效率
從測試工作的流程出發,針對耗時長,復雜且容易出錯的環節,通過掌握的技能對其進行改造,將這些環節進行自動化處理并納入到當前的持續集成中。目標是從軟件整體的生命周期中解決問題,提升研發的測試效率
3.3高級目標:開發出適合產品/公司的測試架構或平臺
能夠從事這種工作的人稱為測試架構師,目前是軟件測試的終極職業之一。
著眼于整個軟件測試流程,創建并維護測試環境及各種測試工具,滿足功能、性能、白盒測試等工作需求。還要負責對測試團隊進行必要的技術指導,協助測試團隊研究新技術,開發新工具,提升團隊整體技術能力。最重要的是根據產品或公司的技術特征,設計并開發出適合的測試平臺(可使用現有平臺和技術進行二次開發),從而提升測試的專業性并進而提升整體研發的工作效率和質量。
4.最后
想和大家說,軟件測試的終點不是自動化測試,而是測試開發。若想從事軟件測試工作,就要把測試開發作為技術目標。我們不是在開拓新的技術方向,而是在比較成熟的道路上不斷前進。沒有學不會的,只看你是否愿意學。