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