測試微服務之建立測試文化

發表于:2017-10-30來源:infoq作者:薛命燈點擊數: 標簽:微服務
自動化測試是一個軟件公司取得成功的關鍵因素之一。經過嚴格測試的代碼容易獲得客戶的信賴,而沒有經過測試或缺乏嚴密測試的軟件系統容易出現故障,讓客戶感到失望。

這是由來自AWS的工程師Nathan Peck發布的“測試微服務”系列文章的第一篇,介紹了測試金字塔模型以及如何建立測試文化。以下內容翻譯自Nathan的博客。

自動化測試是一個軟件公司取得成功的關鍵因素之一。經過嚴格測試的代碼容易獲得客戶的信賴,而沒有經過測試或缺乏嚴密測試的軟件系統容易出現故障,讓客戶感到失望。

盡管在測試單體系統方面已經有很多最佳實踐,但在測試分布式系統(比如微服務)時仍然面臨很多挑戰。開發者不但要確保每個組件的內部行為是一致的,也要確保組件之間能夠良好地集成。分布式系統需要額外的故障測試,比如針對網絡故障進行測試。有些分布式系統太過龐大,進行完整的端到端測試不太現實,所以開發人員需要制定一些策略,對整體架構的局部進行單獨測試,同時還能保證組件之間的互操作性。

這篇文章介紹了一些測試分布式系統的基礎概念,并討論了如何在開發流程中加入這些概念,確保它們可以有效地落地。

金字塔模型

為了構建一個全面的測試框架,我們需要先了解“測試金字塔”概念。這一概念是由 Mike Cohn提出的,當時的大部分軟件測試還是通過用戶界面進行的。測試工程師直接手動操作用戶界面,或者編寫自動化宏腳本來操作界面。這種方式通常無法檢測出代碼內部的問題。此時,測試金字塔的概念就變得十分重要,因為它讓我們明白,用戶界面測試應該處于金字塔的頂端。

使用多種測試類型可以幫助我們檢測出不同類型的問題,不同的測試類型集中在系統的不同層面上。一個分布式系統的端到端測試可以被分為以下幾個層次。

單元測試

單元測試用于驗證服務內部的類方法或函數的行為。它們執行代碼文件里的類方法或函數,提供不同的輸入,并驗證與每一個輸入相對應的輸出。

原文轉自:http://www.infoq.com/cn/news/2017/10/micro-service-build-test-culture

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97