CI/CD 中的自動化測試的概要知識
「如果一切似乎都在控制之中,那只是你走的不夠快而已。」 —Mario Andretti
測試自動化是指在軟體開發過程中儘可能早、儘可能快地持續關注檢測缺陷、錯誤和 bug。這是通過使用那些追求質量為最高價值的工具完成的,它們旨在確保質量,而不僅僅是追求質量。
持續集成/持續交付(CI/CD)解決方案(也稱為 DevOps 管道)最引人注目的功能之一是可以更頻繁地進行測試,而又不會給開發人員或操作人員增加更多的手動工作。讓我們談談為什麼這很重要。
為什麼要在 CI/CD 中實現自動化測試?
敏捷團隊要更快的迭代,以更高的速度交付軟體和客戶滿意度,而這些壓力可能會危及質量。全球競爭製造了對缺陷的低容忍度,同時也增加了敏捷團隊的壓力,要求軟體交付的迭代更快。減輕這種壓力的行業解決方案是什麼?是 DevOps。
DevOps 是一個大概念,有很多定義,但是對 DevOps 成功至關重要的一項技術是 CI/CD。通過軟體開發流程設計一個連續的改進循環,可以為測試帶來新的機會。
這對測試人員意味著什麼?
對於測試人員,這通常意味著他們必須:
- 更早且更頻繁地進行測試(使用自動化)
- 持續測試「真實世界」的工作流(自動和手動)
更具體地說,任何形式的測試,無論是由編寫代碼的開發人員運行還是由質量保證工程師團隊設計,其作用都是利用 CI/CD 基礎架構在快速推進的同時提高質量。
測試人員還需要做什麼?
具體點說,測試人員負責:
- 測試新的和現有的軟體應用
- 根據系統要求評估軟體來驗證和確認功能
- 利用自動化測試工具來開發和維護可重複使用的自動化測試
- 與 scrum 團隊的所有成員合作,了解正在開發的功能以及實施的技術設計,以設計和開發準確、高質量的自動化測試
- 分析記錄在案的用戶需求,並針對中等到高度複雜的軟體或 IT 系統制定或協助設計測試計劃
- 開發自動化測試,並與功能團隊一起審查和評估測試方案
- 與技術團隊合作,確定在開發環境中自動化測試的正確方法
- 與團隊合作,通過自動化測試來了解和解決軟體問題,並回應有關修改或增強的建議
- 參與需求梳理、估算和其他敏捷 scrum 儀式
- 協助制定標準和流程,以支持測試活動和材料(例如腳本、配置、程序、工具、計劃和結果)
測試是一項艱巨的工作,但這是有效構建軟體的重要組成部分。
哪些持續測試很重要?
你可以使用多種測試。不同的類型並不是學科之間的牢固界限。相反,它們是表示如何測試的不同方式。比較測試類型不太重要,更重要的是對每一種測試類型都要有覆蓋率。
- 功能測試: 確保軟體具有其要求的功能
- 單元測試: 獨立測試軟體的較小單元/組件以檢查其功能
- 負載測試: 測試軟體在重負載或使用期間的性能
- 壓力測試: 確定軟體承受壓力(最大負載)時的斷點
- 集成測試: 測試組合或集成的一組組件的輸出
- 回歸測試: 當修改任意組件(無論多麼小),測試整個應用的功能
總結
任何包含持續測試的軟體開發過程都將朝著建立關鍵反饋環路的方向發展,以實現快速和構建有效的軟體。最重要的是,該實踐將質量內置到 CI/CD 管道中,並意味著了解在軟體開發生命周期中提高速度同時減少風險和浪費之間的聯繫。
via: https://opensource.com/article/20/7/automation-testing-cicd
作者:Taz Brown 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive