0223 研發工程師如何提升接口質量?

背景

最近團隊中把只會作功能測試的測試崗位去掉了,那麼軟件質量的保證就落到了開發人員和產品人員的工做職責中了,不說這徹底是一件壞事,這爲開發崗位提出了更高的要求。前端

爲了適應團隊的變化,找了一門小課程補充了一下關於接口測試的知識和思惟。本文是學習完畢以後的一個小結。
當成是學完以後的一個收貨的輸出,但願能夠幫到相關的研發同窗。java

主要內容

軟件測試的主要內容是:
image.pnggit

測試工程師作的最可能是界面測試,而研發工程師因爲實際工做環境的限制,可能只作過少許的單元測試和少許的單接口功能測試;web

那如何在沒有或者缺乏測試工程師的狀況下保證基本的軟件功能的質量呢?
那就是研發工程師去作接口測試這個事情,這個是跟業務邏輯最近的測試工做。至於單元測試,固然也要作,可是那原本就是屬於研發工程師的本質工做,這裏不討論。數據庫

那麼結合新的團隊狀況,軟件測試的狀況變成了下面這樣:
image.png編程

研發工程師經過接口測試最大限度的保證了提供的接口的高質量,界面測試交給前端工程師和產品人員去作;
在知足接口測試的基礎上,單元測試能夠少作或者不作,由於接口測試經過了,單元測試基本也沒問題。websocket

在研發工程師寫完接口測試代碼以後,掛接到持續集成工具中,就實現了接口的自動化測試,研發的產品質量更上一個臺階。前端工程師

首先須要明確幾個概念;框架

接口socket

知足特定輸入獲得特定輸出的邏輯處理單元,好比http接口,dubbo接口,websocket接口,物聯網設備接口等

接口測試

驗證某個接口符合預期,在特定的輸入下,獲得特定的輸出;在不知足特定輸入的狀況,得不到特定的異常輸出。
接口測試分爲單接口測試和流程測試;
單接口測試: 找到接口文檔,按照約定來驗證;
流程測試:根據產品需求設計,編排單接口,驗證需求內容;

接口測試的本質

模擬一個客戶端調用接口,經過輸入和輸出檢查邏輯處理是否按照預期設計來。

下面按照測試測試大法,進行心法修煉。

初級測試

完美的提測項目:

  1. 產品需求文檔
  2. 原型設計文檔
  3. 接口文檔(swagger)
  4. 單元測試腳本

在編碼能力欠缺的狀況下,能夠熟悉工具的使用:

好比: fidder抓包,postman接口模擬,jmeter接口模擬,selumn錄入界面測試腳本等;

在文檔缺失的狀況下,善於使用抓包工具獲得軟件的接口協議,並記錄疑問;

而後經過跟產品,研發工程師的溝通,獲得完善的接口協議;

寫好測試用例是基礎,測試用例通常寫在xls中或者持久化存儲到數據庫中;

若是是由研發工程師去作這種程度的事情,
首先,單接口協議是很明確的,溝通成本很低,若是恰好是本身寫的軟件接口,溝通成本爲0,若是不是本身開發的接口,也能夠很快的獲得單接口的文檔;
其次,實現的過程中,必須是很是的理解整個業務流程的,對接口的編排不會有理解上的誤差;
最後比較費時間的是測試用例的編寫,只要花點時間,對接口的條件進行排列組合,獲得測試用例其實只是時間問題。

中級測試

具有編碼能力,那麼測試的功力就又增長了一級了。

能夠學習一些測試工具類:

好比:
Http工具:

模擬htt的客戶端,按照接口協議調用

Rest工具:

模擬http的客戶端,基於接口協議,按照rest風格調用

WebSocket工具:

模擬websocket客戶端,基於協議調用

Mock工具:

對微服務的場景,若是依賴的服務沒有開發完畢,能夠mock,快速驗證單個微服務

從xls或者數據庫中讀取測試用例數據:

集中管理測試數據

而後就能夠熟練的寫各類客戶端代碼,模擬接口調用了。

而後把代碼放進團隊的git代碼倉庫中;

對測試工程師來講,編碼能力自然就弱一些,學習這些意味着作界面驗證的時間減小了。

而對於研發工程師來講,這些自然的就是基本編程技能,即便不太熟悉,學習起來也是很是快速的事情;

高級測試

具有測試思惟,能夠持續的封裝接口測試代碼,造成團隊適用的接口框架或者平臺;

測試框架

對接口測試的過程當中使用的代碼進行進一步的抽象和封裝,造成一個測試腳本編寫的框架,後續的接口測試和流程測試按照規則實現便可,並能夠推廣到其它的研發工程師,研發團隊;

測試平臺

合理管理各個測試的接口文檔資源,和流程資源,跟持續集成工具打通,造成自動化測試;

小結

工具層面

熟悉常見工具的使用,好比:
抓包工具:fidder;
接口模擬工具: postman,jmeter;

技術層面

站在java工程師的角度,須要熟悉如下技術:


junit工具包
http工具包
RestTemplate工具包
WebSocket工具包
Mockito工具包
swagger文檔生成


經過課程的學習,獲得的是一些理論,更多的仍是須要在工做中實踐,能夠從一個實際的微服務項目出發,搭建本身的測試框架,並不斷的完善,完善以後,跟其它的工程師和其它團隊宣講,創建一個自動測試平臺,從而讓本身的能力和價值更上一個臺階。

但願對全部看到的小夥伴能有幫助。奔向更高的職業臺階。

softqa.pngfile

原創不易,轉載請註明出處。

相關文章
相關標籤/搜索