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