在筆者看來接口自動化測試有以下四點優勢:
1.提高版本發布質量;
2.縮短項目周期;
3.發現更多手工測試難以暴露的問題;
4.提高測試效率;
我們先說第一點:提高版本發布質量
我們知道,絕大多數問題都會暴露在功能測試階段,如果能在功能測試之前減少Bug數量,那么一定會減少測試版本的發布。那么怎樣減少功能測試時發現的Bug數量呢?就是在做功能測試之前先做一輪接口測試。我們假設有這樣一個場景,業務新增一個需求,需要增加5個接口,以及十幾張設計圖,開發人員開發接口需要1天時間,但是設計人員設計UI需要3天時間,那么也就是說手工測試人員只能等3天后才能進行測試。如果這個時候加入接口測試,那么開發同學可以在設計稿之前完成所有接口調試,這樣的話,在功能測試階段一定會減少BUG數量,從而提高版本發布質量。
我們再說第二點:縮短項目周期
其實當實現第一點的時候,就已經實現了縮短項目周期,因為我們已經提前介入測試,而提前介入測試的目的是為了發現接口BUG,而解決接口BUG是為了提高版本質量,版本質量提高了,不出意外,測試周期也就縮短了。
我們再說第三點:發現更多手工測試難以暴露的問題
這點就比較深刻了,我們公司之前的項目沒有采取接口加密技術,什么意思呢?就是我通過抓包數據,可以抓到所有向服務器發送的請求以及服務器返回的內容。我們可以想象一下,如果有用戶通過抓包抓到的數據對服務器進行壓力測試,大概率會造成服務器異常,當然還有其他情況,發送非法數據等等,而這些都要我們在做功能測試時無法發現的。
我們最后再來說說第四點:提高測試效率
假設A公司提了一個需求,增加一個接口,客戶端不變。按理說來,我們只要驗證新功能是否存在問題就可以,沒有必要進行系統測試。但實際上,我們測試人員心里都會發慌,開發同學說沒有動其它部分代碼,但是我還是不放心呀,我還是要再做一次系統測試。只有做完系統測試后,才能肯定開發同學沒有動其它部分代碼,想想看,如果是手工測試,那么時間成本得多高。但是如果加入接口測試呢?你說你沒有動其它部分代碼,那么我只要對你新發的版本做一次接口測試就行了,如果接口測試用例(舊功能測試用例)通過,那么可以說之前功能確實都是正常的,前提是你的接口測試用例寫的非常到位。想想看,我們通過接口測試只要幾分鍾就可以知道新功能的加入是否會對舊功能產生影響,而手工測試則需要半天甚至一天時間。