時光荏苒,從畢業到現在已經10年,10年來一直從事著軟件測試的工作。從一個什么都不會,到測試開發工程師,期間有迷茫,有痛苦,有彎路,有捷徑。今天對自己過去的10年測試經歷做一個總結,一是給自己重新出發增加動力,二是給剛入道的、迷茫中的測試朋友一點點建議,希望你們少走彎路。
1、首先,談談測試職業規劃,即做什么的問題。
所謂方向比努力重要,這絕對是一句真理。如果能在剛走上測試工作崗位的時候明白這個道理,那么不出5年,你一定能成為某一測試領域的專家,那時不管是薪水、自信心都是順其自然的事情。
但是遺憾的是,我們獲取的太多信息是,測試人員是一個通才,什么都要學,什么都要懂。結果這樣的一個方向,導致了三腳貓功夫的測試人員一大把。那么什么都懂一點的測試人員難道就沒有用武之地了嗎?也不是,隨著互聯網市場競爭越發激烈,軟件研發效率要求越來越高,自動化測試成為測試團隊提高效率的首選,在企業招聘軟件測試中高級崗位時,熟悉自動化測試、接口測試、掌握熱門工具使用、開發測試框架等已成為硬性指標。針對有點測試基礎,希望深入進階,可以朝著測試開發崗位發展。說到這里,引出了測試職業規劃的全能路線:測試開發,提升自身測試能力,成為全能型人才,成為測試團隊核心支撐。
2、其次,談談測試工程師的現狀
很多測試小伙伴在工作中有時會比較迷茫,不知該怎樣突破瓶頸,更好的發展。
那么測試人員究竟該如何打破瓶頸繼續向上提升呢?如果你苦于不知所措,又滿懷斗志向上的話,不妨一起聊聊。測試職業發展有典型的三種方向:
管理方向
技術型方向
轉行
在此重點說下技術型方向的發展。曾幾何時,提的bug被否認而倍感無力;曾幾何時,遇到一個偶發復現的bug,到上線了都不知道該怎么復現;曾幾何時,面對沒有前端頁面的測試任務,不知該從哪下手測試;曾幾何時,面對每天重復繁瑣的測試工作,恨不得有個機器人來幫忙。
依稀記得,有天發現一個bug,于是遠程debug,一行代碼一行代碼的走,終于定位到是數組下標越界了,提出bug并附上斷點定位的代碼截圖,開發看后瞬間改了,自此贏得開發不一樣的認可。那么懂代碼就算是測試開發工程師嗎?答案是否定的,那究竟怎樣才能做一名測試開發工程師,有哪些優勢,和開發的區別又是什么呢?
3、測試開發工程師有什么作用呢?
對測試開發工程師來說,看懂代碼,熟練使用測試工具,能做ui、接口、性能的測試,具備測試經驗和測試思想邏輯是基本要求;既要會業務功能測試,又要能做代碼層接口及單元測試,更重要的是通過能力和經驗的積累,能搭建適用于技術研發團隊的工具平臺,以更好的降低公司成本和提高工作效率。在這樣的理念下我們部門按照軟件的生命周期,自主研發了整套的測試平臺:
源代碼監控分析平臺,配置化平臺實現對源代碼進行系統化、規則化的全面覆蓋測試,通過智能規則模型的有效過濾,及早發現問題,提高項目質量。
接口自動化平臺,不用寫一行代碼就可完成對接層的測試,完美支持http和jsf接口,并生成美觀可視化的報告;
UI自動化平臺,讓不懂代碼的小白測試人員便捷快速的上手ui自動化測試工作,以往需要自己寫代碼,現在直接在頁面維護一些元素即可;
測試工具平臺,現已涵蓋十幾個大的業務系統,幾十個便捷的功能,可快速、便捷的產生和查詢測試數據,減少測試人員的聯調時間和營造復雜場景數據的時間。上線時間雖不長,使用頻次近3萬,大大方便了開發、測試和產品人員。
BUG監控分析平臺,通過對bug大數據進行分析、歸類、匯總的智能處理,采用圖表方式更加簡潔明了的查看項目質量和進度;
4、測試開發工程師的必修課程
如何才能成為一名真正的測試開發工程師,需要具備哪些硬技能呢?
1)具備一定測試經驗。
只有設身處地的經歷過測試人員的痛點和難點,才能切實解決他們的問題。
2)會使用常用重要的測試工具。
比如性能測試常用的Loadrunner、jmeter;ui自動化常用的selenium;單元測試常用的testng、junit;安全測試常用的Appscan,js注入,xss注入,sql注入等等。
3)具備測試工具開發能力。
下面介紹一些主流的技術棧:
測試工具系統框架搭建:1)JAVA+maven+SpringMVC ;2)Python+django
對于第一種框架,最好創建分層化的多模塊工程,以便更好的設計代碼框架和結構。通常dao層主要是和數據庫關聯;web層是controller,是前端和服務層的銜接;service層提供一些公共服務或業務處理邏輯。
Maven工程有了之后,運用當前主流的框架-springMVC,將前后端數據庫關聯起來。
對于無代碼基礎,想入門測試開發的小伙伴,可學習第二種框架:python+django,較為易學易用。
前端頁面:html,css,jquery,bootstrap,Echarts,前端頁面是門臉,是使用人員操作的入口,也是數據輸入和展示最直觀的地方。
Css樣式決定頁面布局和美觀度;jquery是一種js框架,極大地簡化了 js 編程;echarts能夠提供簡單易用的常用圖表,使頁面更加有檔次感、數據展示更加直觀簡潔。
后端服務:spring,mybatis,使用Spring框架可以簡化很多基礎性的工作,配置好后可以方便構建業務應用,是一個非侵入性的輕量級容器。
數據庫:MySQL或Orcale 的數據庫安裝,庫表創建,字段設計,常用的sql語句
系統:能熟練在windows或linux系統上搭建項目,日志查看等操作
服務容器:Tomcat服務部署,Nginx負載配置,Docker使用
持續集成:git,jenkins
開發工具:idea和eclipse
代碼調試:testng或junit的單元調試及debug和遠程debug使用
5、那么,如何從一個有點測試基礎的菜鳥變成測試開發工程師呢?
工欲善其事,必先利其器。
只有真正掌握專業知識,不用擔心猶豫,無論走到哪都是有飯吃。不用擔心自己能否勝任新的工作。人心叵測,世事多變,只有真正掌握了技術能力的人才會在工作中游刃有余,一定是自己身上有別人不可多得的能力,有與眾不同的技術,有社會需要的知識,這樣去哪都是有飯吃的。
最后想說測試開發這個工作真的不是吃青春飯的,如果你肯努力,肯學習,你就是常青樹!