敏捷團隊的最佳測試實踐:自動化金字塔
自動化測試和敏捷軟體開發常常是成對出現,但敏捷中的自動化往往說起來容易做起來難。大多數開發人員都已經認識到測試自動化的好處:它加快了測試速度、降低了成本、增加了覆蓋率等。但是,許多人從未超過開始所需的初始投資。就像這幅漫畫中的穴居人一樣,許多團隊陷入了困境,他們採用著低效率的方式,因為自認為根本沒有時間去做出改變。而實際上,他們自己受到損害。不要養成這個壞習慣!
今天,與你分享敏捷團隊的最佳測試實踐之一。
要如何開始?如何知道要關注哪些領域?哪些測試方案應該採用自動化?在非敏捷軟體開發中,很多人不經意地陷入了 “冰淇淋蛋筒反模式” 的測試中,因為該模式更加強調 UI 層面的自動化。 Abstracta 團隊更喜歡將冰淇淋蛋筒倒過來的模式——由 Mike Cohn 推廣流行的方法,即敏捷測試自動化金字塔。它可以給自動化成本帶來最大收益,提高自動化的投資回報率,保證你將從自動化中獲得最大收益。
當我們的大部分工作都集中在 UI 級別的自動化上時,重點是發現錯誤;而對於敏捷金字塔,其重點為避免錯誤。
在下圖中,你可以看到兩種方法的不同之處。
基礎層:單元測試
顯然,在金字塔中(作為敏捷團隊最佳測試實踐的一部分),大部分測試應該在開發階段進行,在每次構建後進行單元測試。這些測試是最容易、最低成本及最快完成的,並且是測試驅動開發的一個重要方面。在較低的級別執行更多的測試可以讓我們在執行過程中即可檢查相應的工作,立即獲得反饋,並讓團隊在錯誤難以隱藏的時候準確地知道錯誤出現在哪裡。在這裡,這些錯誤的壽命也會更短,可能在不到一分鐘的時間內就被髮生、被清除了。而在 UI 測試過程中,錯誤會存活更長時間,併產生更激烈的矛盾,因為它們已經舒適地存在了相對更長的時間。
中間層:API/整合/元件測試
執行所有單元測試並透過之後,就可以進入 API/整合/元件測試階段。執行整合測試是為了確保所有元件正常配合工作。這裡無需透過 UI 即可測試大部分邏輯和業務流程,在此處最好儘可能地採用自動化。如果糾結於在此處自動化還是 UI 級別自動化,選擇這裡問題將變少、維護會更容易、測試執行會更快(意味著能更快發現錯誤,縮短它們的壽命),而且可以測試系統的邏輯。這些測試比單元測試更慢、更復雜,但它們仍然比 UI 測試更快、且不那麼脆弱。
頂層:UI 測試
最後講的,也是執行最少的是 UI 測試。最好儘可能少地進行 UI 測試,因為它們成本高、難準備、難維護,並且需要很長時間。在這一步,只是要確保使用者介面本身正常工作,系統的所有其他方面都已經過測試。只測試端到端最重要的部分,流程從使用者登入開始,以如交易成功訊息這樣的最終操作結束。關注與瀏覽器或 UI 相關的事情也很有幫助。執行 UI 測試後,可以進行手動和探索性測試(如金字塔上方的球體形狀所示)。
如上所述,與把重點放在自動化 GUI 測試上,並且無意中遵循 “冰淇淋蛋筒反模式” 比起來,金字塔方法是實現測試自動化的更強大、更有益和更具成本效益的方法。金字塔在單元測試階段提供了一個強大的基礎,可以在整合和 UI 階段進行進一步的測試,而冰淇淋蛋筒方法更頭重腳輕且穩定性較差。
為了在敏捷開發世界中脫穎而出,就須遵循自動化金字塔測試,以儘可能生產出質量最好的軟體。但不需要只遵循一家之言,可多方參考資料並不斷實踐以獲得最適合團隊的測試方法。
相關文章
- 自動化測試的最佳實踐
- 測試自動化中遵循的最佳實踐
- 介面自動化測試的最佳工程實踐(ApiTestEngine)API
- API自動化測試實踐API
- 規模化敏捷LeSS(二):LeSS團隊實踐指南敏捷
- 敏捷交付中的自動化測試 | IDCF敏捷
- UI自動化測試工程實踐UI
- 前端自動化混沌測試實踐前端
- 自動化測試實踐總結
- Docker與自動化測試及其測試實踐Docker
- 介面自動化測試工程實踐分享
- 小微團隊怎麼玩轉App自動化測試APP
- 打造敏捷的自組織團隊敏捷
- CSM敏捷實踐|如何讓團隊的迭代效率更高?敏捷
- 研發團隊資源成本最佳化實踐
- 降本增效下的自動化測試實踐
- 基於postman的api自動化測試實踐PostmanAPI
- Android自動化頁面測速在美團的實踐Android
- 敏捷實踐的啟示:如何讓敏捷團隊協作更加高效敏捷
- 建設 TiDB 自動化平臺:轉轉 DBA 團隊實踐TiDB
- 自動化測試:Monkey工具實踐應用~
- Selenium 自動化最佳實踐技巧 (中)
- 自動化測試常見問題總結!(適合新手團隊)
- Appium 做 flutter 自動化測試實踐&採坑APPFlutter
- Web前端自動化測試Cypress實踐總結Web前端
- ATX 在手淘自動化測試的實踐 - 孫聖翔
- 自動化測試selenium在小公司的成功實踐
- 介面自動化測試世界裡的“身份證”—測試工具Jmeter實踐篇JMeter
- 騰訊質量效能提升最佳實踐:智慧自動化測試探索和建設
- 最佳實踐採購團隊的8個要點
- Linux問題:敏捷實踐如何幫助團隊更有效?Linux敏捷
- API自動化測試平臺,高效實現對API的自動化測試API
- 規模化敏捷LeSS(二):LeSS*隊實踐指南敏捷
- 自動化測試系列 —— UI自動化測試UI
- Choerodon豬齒魚團隊敏捷專案管理實踐應用敏捷專案管理
- pkg版本規範管理自動化最佳實踐
- 自動化測試框架選型和落地實踐路徑框架
- UI自動化測試實戰UI