作為一位長期研究軟件測試技術(shù)的從業(yè)人員來說,毫不避諱地告訴大家,軟件測試的方向一定是全棧、測試開發(fā)的方向,不能還抱著自己功能測試的“鐵飯碗”了,因?yàn)檫@個鐵飯碗太沒競爭力,很容易被一些新入行的年輕人替代,到時候不要抱怨所謂的IT行業(yè)35歲魔咒啦,問題一定是出在你自己身上。
不會寫代碼的測試人員不是稱職的測試人員在不久的將來會成為淘汰一部份測試的鐵律,不信的話,我們時間來作證。
隨著測試行業(yè)不斷提升對編碼能力要求的同時,一個全新的測試崗位-“測試開發(fā)”也悄悄成了一個熱門的崗位,而且是那種薪資和待遇抗衡開發(fā)的崗位,測試開發(fā)工程師簡單地說就是既會測試又懂代碼的測試人才!他們能夠幫助開發(fā)和測試同學(xué)提升測試效率,進(jìn)而幫助公司提升整體的研發(fā)效率!
今天allen老師就帶大家來了解一下測試開發(fā)工程師的主要工作職責(zé)是什么?以及java技術(shù)棧需要掌握哪些技術(shù)!
一、 測試開發(fā)工程師的職責(zé)
這個崗位不是最近幾年才火起來的,google在很早之前就引入了測試開發(fā)的概念,感興趣的同學(xué)可以去讀一下《google測試之道》這本書,他的定位是更好地溝通測試人員和開發(fā)人員的工作,讓測試工作更加簡單,當(dāng)然這就提到了需要去設(shè)計(jì)UI、接口自動化測試的框架,測試小工具開發(fā)以及測試平臺的開發(fā)等。
但是現(xiàn)在的一些公司在一定層度上卻偷換了概念,公司內(nèi)不再設(shè)立測試崗位,只招聘測試開發(fā)崗位,當(dāng)然具體做什么工作,大家也都懂得。
我們來看兩個boss直聘上測試開發(fā)的招聘崗位職責(zé),其實(shí)該崗位定位還是以測試工作為主,額外對行業(yè)、開發(fā)語言和設(shè)計(jì)有一些要求。
上圖這個測試開發(fā)崗位雖然薪資定位在20~40K之間,取中值也就是30K的樣子,也算是中規(guī)中矩的范圍,但職責(zé)上除了測試基本工作內(nèi)容之外,能篩選出來也就是持續(xù)改進(jìn)測試過程和方法,引進(jìn)測試工具提升測試效率啦,可見從測試跨到測試開發(fā),也就是簡簡單單的一層窗戶紙。
這個招聘基本也差不多,對自動化和白盒測試有一定的要求,因此也就對開發(fā)語言有響應(yīng)的要求了,除此之外就是解決測試問題、提升測試質(zhì)量這些啦。
二、 測試開發(fā)工程師的任職資格
和其他崗位招聘要求差不多,學(xué)歷和行業(yè)背景也是其中兩個必備的條件,我們此處直接忽略,更多地放在技術(shù)方面。
下面是boss直聘的多個測試開發(fā)招聘簡章中過濾出來的任職資格,除去我們測試人員也要熟悉的linux、mysql、jenkins、git和溝通能力外,也無非就是java、python兩個技術(shù)棧以及其對應(yīng)框架的使用了。
1、精通至少一門開發(fā)語言,如Java、python、Shell等,熟悉Hadoop、Spark者優(yōu)先;
2、熟練使用Linux或Unix操作系統(tǒng);熟練apache、tomcat等應(yīng)用服務(wù)器配置與管理;
3、熟練Oracle/Sql server/My SQL等常用數(shù)據(jù)庫的操作,能熟練編寫復(fù)雜SQL語句;
4、具有較強(qiáng)的邏輯思維能力、分析能力、理解業(yè)務(wù)的能力、溝通能力和表達(dá)呈現(xiàn)能力;
5、熟練掌握接口自動化,具備測試框架/測試平臺開發(fā)經(jīng)驗(yàn)、性能測試經(jīng)驗(yàn);
6、熟練使用MongoDB、PG數(shù)據(jù)庫,熟練掌握一門或多門編程語言 Python/Go/Java等;
7、熟練使用Jenkins/Git/Docker,了解k8s、docker環(huán)境搭建和管理。
總之,任職資格核心就是:編碼能力!Java或者Python都可以,兩者兼顧最好!
三、測試開發(fā)java棧必備技能
1、Java基礎(chǔ)知識
數(shù)據(jù)類型
數(shù)組
集合
Map
常見類如String、正則表達(dá)式類等
java函數(shù)定義和調(diào)用
Java的異常機(jī)制
java面向?qū)ο?,繼承,封裝和多態(tài)
Java中IO概念與文件的讀寫
單元測試框架Junit4和TestNG的使用
參見系列文章:
2、java高級
容器
多線程
反射
泛型
設(shè)計(jì)模式
3、后端開發(fā)技術(shù)
Spring全家桶(Spring MVC、Spring Boot 、Spring Data JPA等)
4、前端開發(fā)技術(shù)
這個就比較通用了,HTML、DOM、Javascipt、Css
框架這塊選擇Vue和react
5、maven 基礎(chǔ)
在IDE中快速搭建maven項(xiàng)目
配置pom.xml文件
快速構(gòu)建工程
6、Git\SVN基礎(chǔ)使用
兩個版本關(guān)聯(lián)軟件,會其一即可,如果兩個都會的話就更好了。
如果還能結(jié)合使用一些托管系統(tǒng)如gitee、github就更好了。
7、自動化測試
其實(shí)就是采用java語言實(shí)現(xiàn)UI自動化測試和接口自動化測試。
Web端UI自動化:java+selenium+junit/testng+ant+其他jar
移動端UI自動化:java+appium+junit/testng +ant +其他jar
接口自動化:java+httpclient+junit/testing+ant+其他jar
四、測試開發(fā)python棧必備技能
1、python基礎(chǔ)知識
python基礎(chǔ)語法和運(yùn)算符
列表
集合
字典
常見模塊如os、re、json等
python函數(shù)定義和調(diào)用
python的異常機(jī)制
python面向?qū)ο?,繼承,封裝和多態(tài)
python中IO概念與文件的讀寫(csv、json、excel等)
單元測試框架unittest和pytest的使用
參見系列文章:https://zhuanlan.zhihu.com/p/250501217
2、python高級
迭代器
閉包
裝飾器
多線程
隊(duì)列
網(wǎng)絡(luò)編程
路由技術(shù)
設(shè)計(jì)模式等
3、后端開發(fā)技術(shù)
Flask是一個不錯的、簡單的后臺開發(fā)框架。
Flask初次使用與config配置
路由語法和快捷路由方法
MVC設(shè)計(jì)思想和MTV實(shí)現(xiàn)
jinja2模板語法和靜態(tài)資源
blueprint插件與模塊化
ORM設(shè)計(jì)思想和sqlalchemy框架應(yīng)用
Flask-Restful插件應(yīng)用
Flask+Vue+Docker測試平臺開發(fā)
4、前端開發(fā)技術(shù)
這個就比較通用了,HTML、DOM、Javascipt、Css
框架這塊選擇Vue,主要需要掌握的內(nèi)容:
Vve實(shí)例生命周期
Vue組件化開發(fā)、組件通信
Vue-CLI項(xiàng)目框架設(shè)計(jì)、Nodejs安裝與npm使用
vue ui可視化管理項(xiàng)目服務(wù)
Vue集成axios和ElementUI
Vue路由與子路由
VueX的應(yīng)用與開發(fā)
Vue項(xiàng)目編譯與打包
5、Git\SVN基礎(chǔ)使用
兩個版本關(guān)聯(lián)軟件,會其一即可,如果兩個都會的話就更好了。
如果還能結(jié)合使用一些托管系統(tǒng)如gitee、github就更好了。
6、自動化測試
其實(shí)就是采用java語言實(shí)現(xiàn)UI自動化測試和接口自動化測試。
Web端UI自動化:python+selenium+unittest/pytest+json+ddt+其他模塊
移動端UI自動化:python+appium+ unittest/pytest+json+ddt+其他模塊
接口自動化:python+requests+ unittest/pytest+json+ddt+其他模塊
更多關(guān)于“軟件測試技術(shù)干貨”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。