從高級測試到測試開發
最近加入了新的團隊,角色發生較大的轉變,在這裡分享一下自己的感受。
測試的劃分
如果我們把產品的生產看成一個流水線的話,那麼測試就是流水線上的一個重要崗位,把控著產品的質量。
當然,產品類型的不同,測試人員的能力不同,可做的事情也會有很大不同,比如是Web產品,那麼我們會去做性能測試和Web UI自動化測試;比如是App產品,那麼我們會去做專項測試和APP UI自動化測試,再比如是後端介面平台,那麼我們會去做介面自動化測試。再比如遊戲產品,測試方法和手段又不一樣了。
在此過程中,如果你是一名新手,只能測試UI功能,那麼定位為測試工程師;如果你可負責一些複雜業務的測試,並且可以做一些自動化工作,那麼定位為中級測試工程師;如果你有豐富的測試經驗,綜合的測試技術,以及深入到產品內部去做類白盒的測試能力,那麼定位為高級測試工程師。(注:這裡只是一般的劃分,不代表任何公司)
高級測試
接下來聊一聊我做高級測試時的工作。
以我負責的介面平台為例,當開發完成介面開發後,我通過閱讀介面代碼邏輯的方式進行介面自動化用例的編寫,過程中發的代碼問題,反饋由開發修改;當我的用例編寫完成,那麼介面測試也基本搞定。當有新的介面更新時,我就可以重跑介面自動化用例來確保介面的質量,每次只需要對更新的介面編寫測試用例。
由於介面先測試,當產品提供可測界面時,問題就少很多了,只是界面樣式和兼容性問題。整體上會在縮短整個測試時間。
當然,產品測試過程中還會有一些零散的測試需求,可以快速的選取測試工具或編寫測試腳本的方式來完成工作。
這是一般高級測試工程師應該具備的能力。
測試開發
接下來談一談測試開發,以及它在項目中的定位。
以我目前所屬的團隊為例,初創階段可能是沒有測試人員的,隨著產品的發展,為了提升產品的質量,另一方面也為了節約人力成本,所以會招一些功能測試人員承擔產品的測試工作。開發人員完成功能開發後,由測試人員進行測試。
當公司進一步發展之後,為了優化團隊,提升效率,單純的功能測試人員就會成為短板,但為了保持團隊的運行,不可能把功能測試人員全部替換為高級測試。另一方面功能測試也需要伴隨公司成長。另一種辦法就是引入測試開發團隊。當然,大公司的測試開發與高級測試是並存的,測試開發只負責工具與平台的開發。
(註:這裡不討論個體的情況,比如有一位能力很強的測試/Leader推動測試團隊轉型)
測試開發不直接參於產品的測試工作。這其實也是與高級測試最大的不同之處。簡單將測試開發工作總結為以下幾個方面。
l 協助開發編寫單元測試(並不是所有開發都一定會寫單元測試),規範開發輸出(比如輸出一定標準介面文檔)。
l 幫助功能測試人員提升技術能力,能夠獨立完成自動化測試工作。
l 開發測試平台:比如,性能測試平台,幫助開發測試進行性能測試。開發介面測試平台,管理與維護介面平台,開發自動化測試平台,方便管理與維護自動化測試。
l 挖掘測試需求,通過技術手段幫助測試團隊提升測試效率。
總結下來,就是測試的經驗,開發的能力,干著服務於開發與測試的工作。
最後,測試開發並不是高級測試的下一階段,只職責不同而已。以上僅個人看法!
推薦閱讀:
※簡單重構,顯著效果----提升scala自動化測試效率
※同學,你為什麼定位不到元素?
※漫談自動化測試
※selenium自動化測試02 瀏覽器的登錄和操作