當面試說起分層測試如何進行時......

星海后台测试平台發表於2020-07-31

當面試說起分層測試如何進行時......

作者:Hangte

商業轉載請聯絡小編獲得授權,非商業轉載請註明出處。

導讀

自動化測試是持續整合/持續交付裡重要的一環,網際網路變化很快,企業對快速交付能力的訴求也越來越強,自動化測試也就越需要更快、更穩、更準。
那麼如何讓自動化測試更快、更穩、更準?自動化測試如何在可控成本範圍下兼顧質量和效率?分層測試就是其中的一種探索實踐。

分層測試的理解?

對於分層測試,大家理解上也是千人千面,我的理解是:分層測試是一種測試實踐,在測試分析的基礎上,基於對軟體內部實現的理解,通過對軟體或系統不斷地進行分層分解,尋求在軟體質量和工程效率上更優解的一種測試實踐。
這裡包含幾點:
1.是在測試分析的基礎上,即需要充分理解需求本身,以測試分析為基礎
2.要理解軟體內部具體的實現邏輯,手段上偏白盒
3.分層測試作為一種測試實踐,對於不同的軟體系統,是需要結合實際,不斷探索實踐

從大的系統分層上,分為後臺、終端

對單獨的端上進行劃分的話,則可像典型測試金字塔那樣分為使用者檢視層、GUI層、邏輯層、單元層

分層測試裡的UI層測試和傳統端到端的UI層自動化測試有什麼區別?

分層測試裡的UI層,一般會採用mock或hook技術構造資料,模擬出待測的UI場景,這樣無需等待服務端返回資料,速度更快。由於資料是模擬構造的,那麼就可以方便地模擬構建各類場景,可以測試的更全面。也因為場景是模擬構造的,不易受UI變更的影響,一般穩定性也會更高。
舉例:目前很多產品都有智慧推薦,同樣的介面,不同的使用者看到的東西都是不一樣的,如果是端到端的UI,模擬使用者的方式開啟頁面後,展示的可能是A佈局,可能是B佈局,也可能是C佈局,這對於自動化測試來說就比較麻煩。若採用模擬構造場景的方式,則可以分別模擬出A佈局、B佈局、C佈局的場景,分別進行充分測試。

分層測試裡的邏輯層測試和單元測試有什麼區別?

題主所提:“如果只是對內容進行測試,那和單元測試的區別又在哪裡呢”,對內容進行測試我這裡理解算是分層測試裡的邏輯層,與單元測試的區別主要在於單元測試顆粒度小,邏輯層測試一般顆粒度大,包含較長的邏輯鏈路,具像表現:
1.單元測試一般有較為明確的api入口,而邏輯連結則需要去尋找適合的入口
2.單元測試鏈路較短,可以採用模擬構造物件的mock技術去隔離依賴,而邏輯層連結長,有時模擬物件很難塞到鏈路底層,因此還常常需要使用hook技術進行鏈路打點。
3.單元測試顆粒度小,程式碼變動對case的影響也更頻繁,因此一般建議由開發人員編寫;邏輯層若資料構造得當,一般受程式碼變動的影響較小,且與業務邏輯關係比較緊密,可由測試人員編寫。

相關文章