轉自:https://mp.weixin.qq.com/s/WU5h8FW6BT5YZtlsSuCIcw
「摘要」隨着近幾年國內IT行業高速發展,對測試工程師的要求也越來越高,其作用也越來越重要,但很多測試工程師也迎來了個人發展的瓶頸,下一步該向哪個方向發展,該如何發展?
本文將概述測試工程師的現狀及發展方向,並着重介紹測試開發工程師的發展及所需具備的技能,以及本部門搭建的測試平台的概況和意義。
一、測試工程師的現狀
很多測試小伙伴在工作中有時會比較迷茫,不知該怎樣突破瓶頸,更好的發展。
那么測試人員究竟該如何打破瓶頸繼續向上提升呢?如果你苦於不知所措,又滿懷斗志向上的話,不妨一起聊聊。測試職業發展有典型的三種方向:
-
管理方向
-
技術型方向
-
轉行
在此重點說下技術型方向的發展。曾幾何時,提的bug被否認而倍感無力;曾幾何時,遇到一個偶發復現的bug,到上線了都不知道該怎么復現;曾幾何時,面對沒有前端頁面的測試任務,不知該從哪下手測試;曾幾何時,面對每天重復繁瑣的測試工作,恨不得有個機器人來幫忙。
依稀記得,有天發現一個bug,於是遠程debug,一行代碼一行代碼的走,終於定位到是數組下標越界了,提出bug並附上斷點定位的代碼截圖,開發看后瞬間改了,自此贏得開發不一樣的認可。那么懂代碼就算是測試開發工程師嗎,答案是否定的,那究竟怎樣才能做一名測試開發工程師,有哪些優勢,和開發的區別又是什么呢?
二、測試開發工程師的作用
對測試開發工程師來說,看懂代碼,熟練使用測試工具,能做ui、接口、性能的測試,具備測試經驗和測試思想邏輯是基本要求;既要會業務功能測試,又要能做代碼層接口及單元測試,更重要的是通過能力和經驗的積累,能搭建適用於技術研發團隊的工具平台,以更好的降低公司成本和提高工作效率。在這樣的理念下我們部門按照軟件的生命周期,自主研發了整套的測試平台:
-
源代碼監控分析平台,配置化平台實現對源代碼進行系統化、規則化的全面覆蓋測試,通過智能規則模型的有效過濾,及早發現問題,提高項目質量。
-
接口自動化平台,不用寫一行代碼就可完成對接層的測試,完美支持http和jsf接口,並生成美觀可視化的報告;
-
UI自動化平台,讓不懂代碼的小白測試人員便捷快速的上手ui自動化測試工作,以往需要自己寫代碼,現在直接在頁面維護一些元素即可;
-
測試工具平台,現已涵蓋十幾個大的業務系統,幾十個便捷的功能,可快速、便捷的產生和查詢測試數據,減少測試人員的聯調時間和營造復雜場景數據的時間。上線時間雖不長,使用頻次近3萬,大大方便了開發、測試和產品人員。
-
BUG監控分析平台,通過對bug大數據進行分析、歸類、匯總的智能處理,采用圖表方式更加簡潔明了的查看項目質量和進度;
三、測試開發工程師的必修課程
如何才能成為一名真正的測試開發工程師,需要具備哪些硬技能呢?
一、具備一定測試經驗。只有設身處地的經歷過測試人員的痛點和難點,才能切實解決他們的問題。
二、會使用常用重要的測試工具。比如性能測試常用的Loadrunner、jmeter;ui自動化常用的selenium;單元測試常用的testng、junit;安全測試常用的appscan,js注入,xss注入,sql注入等等。
三、具備測試工具開發能力。下面介紹一些主流的技術棧:
-
測試工具系統框架搭建: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能夠提供簡單易用的常用圖表,使頁面更加有檔次感、數據展示更加直觀簡潔。
(圖表示例)
一般前端資源會存放在web層的static靜態文件夾下。

(靜態資源引用)
-
后端服務:spring,mybatis,使用Spring框架可以簡化很多基礎性的工作,配置好后可以方便構建業務應用,是一個非侵入性的輕量級容器。

-
數據庫:Mysql或Orcale 的數據庫安裝,庫表創建,字段設計,常用的sql語句
-
系統:能熟練在windows或linux系統上搭建項目,日志查看等操作
-
服務容器:tomcat服務部署,nginx負載配置,docker使用
-
持續集成:git,jenkins
-
開發工具:idea和eclipse
-
代碼調試:testng或junit的單元調試及debug和遠程debug使用
四、測試開發工程師的進階
為了提高測試效率,降低測試成本,使測試價值最大化,在具備測試經驗、熟練使用測試工具並有一定開發能力的前提下,就可自主開發平台,或對現有開源工具進行二次開發了,這也是測試開發工程師不斷進階的必經之路。下面介紹一下企業金融測試部自主研發的其中幾個自動化工具平台,希望對大家在開發測試平台時有一定的啟發:

一、源代碼監控分析平台。在開源平台sonarqube上定制符合部門需求的規則,通過jenkins集成定時對項目代碼質量進行掃描,對單元測試和代碼覆蓋率進行統計、定制化郵件發送,讓開發和測試同學可以發現項目源碼的問題。

二、接口自動化平台。在測試工具基礎上結合HttpClient、testng等,生成美觀的可視化報告,並郵件發送給指定人員,實現接口自動化平台。現已穩定運行數月,並實現接口入參、加密傳參及數據庫檢查點,以及多接口間的出入參依賴,可實現多接口,多場景的組合測試,完美覆蓋http、jsf接口的測試,提高了使用者在接口方面的測試效率。

三、UI自動化平台。在測試工具的基礎上引入selenium、Jenkins、testng,實現ui自動化平台。現在很多公司都在做ui自動化,通常是用java(或python)加上selenium,跑自動化程序,但這對小白測試人員有一定難度。但在我們平台,測試人員只需要在頁面維護相關元素,不用寫代碼,就可實現ui自動化,並且可以多場景組合測試,方便測試環境更新版本和線上的回歸測試,對於元素維護簡單方便易上手。

四、測試工具平台。我們在測試工具基礎上結合企業金融業務開發了測試工具平台,它是基於springMVC框架的前后端系統。目前總訪問次數近三萬次,覆蓋約十幾個業務線系統,單功能訪問次數達幾百次,在面對復雜業務場景、重復營造和查詢數據、頻繁業務聯調時,可直接讓對方訪問此平台,一鍵生成和查詢想要的數據,一鍵實現復雜的業務流程,極大的解脫了研發人員的時間,也避免了不必要的等待時間。
五、BUG監控分析平台。在測試工具的基礎上對redmine進行數據提取、處理,通過web頁面圖表直觀展示,可簡潔明了的查看bug數據及項目質量情況。


以上是對測試開發工程師發展的一些思考,希望能拋磚引玉,引起大家對測試平台的興趣。 歡迎大家一起探討測試的發展,若以上平台對大家工作有幫助,對京東大家庭的發展有幫助,歡迎大家技術接入,聯系企業金融測試部郵箱:cft@jd.com。
