在所有的開發(fā)測試中,接口測試是必不可少的一項。有效且覆蓋完整的接口測試,不僅能**新功能的開發(fā)質(zhì)量,還能讓開發(fā)在修改功能邏輯的時候有回歸的能力,同時也是能優(yōu)雅地進行重構的前提。編寫接口測試要遵守哪些原則?測試代碼的結構應該是什么樣的?接口測試有哪些實踐技巧?
測試的方式,一般是兩種,人工測試和自動化測試。隨著測試技術和工具的持續(xù)發(fā)展,人工測試比例逐步降低,被自動化測試逐步替代。自動化測試是可持續(xù)和可重復的,甚至是可AI化的。
在一個系統(tǒng)內(nèi),自動化測試一般分單元測試、模塊測試和接口測試。
接口測試個人覺得準確來說應該叫入口測試,這一層,是從系統(tǒng)入口出發(fā)進行集成測試。應用入口通常是HSF(一個分布式RPC服務框架)服務,消息,定時任務。
作為開發(fā),測試手段千萬條,接口測試不可少。在我們應用的接口測試有效且覆蓋完整的情況下,不僅能**我們新功能的開發(fā)質(zhì)量,還能讓我們在修改功能邏輯的時候有回歸的能力,同時這也是我們做代碼重構的前提。
同時,易測性也是代碼結構合理的一個指標,如果發(fā)現(xiàn)一段代碼編寫測試腳本困難或者無法測試,那就說明當前代碼結構不合理需要重構。接下來,我將主要談一談接口測試要遵守的原則。
基礎原則:
自動化:接口測試是非交互式的自動化執(zhí)行,不需要人參與。
獨立性:接口測試之間不應該相互依賴。
可重復:接口測試可重復執(zhí)行,不受環(huán)境影響。
接口測試遵守BCDE原則,**接口交付質(zhì)量。
Border:邊界測試。
Correct:正確的輸入,正確的預期輸出。
Design:按照需求和設計文檔編寫測試邏輯。
Error:錯誤輸入,預期輸出。
數(shù)據(jù)準備:數(shù)據(jù)準備通過系統(tǒng)服務進行,不能通過直接插入db方式。
可測性:對于不可測的代碼需要進行重構成合理的結構。
覆蓋性:接口測試需要覆蓋所有UC,同時代碼覆蓋率和分支覆蓋率應達到一定標準,新增代碼必須被覆蓋。
持續(xù)性:如果代碼修改導致已有接口測試執(zhí)行失敗,必須修復代碼問題或者測試代碼邏輯。
時間要求:接口測試應該在項目發(fā)布之前完成,不應放到項目發(fā)布之后補充。