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