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