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