如何通過左移測試來改善CI CD

2021-10-08 17:13:31 字數 3064 閱讀 7038

在開發周期的早期進行自動化測試可以改善質量保證並減少延遲。

試應用程式過去是一項技術挑戰性的,時間緊迫的活動,計畫在應用程式發布前幾天或幾周進行。開發團隊在第11個小時之前就有了編碼的餘地,而手動完成大部分工作的測試人員別無選擇,只能花些時間給他們。結果是許多應用程式經受了不合格的測試,技術團隊被迫應對終端使用者和應用程式監視系統公升級的生產問題和缺陷。

devops持續整合實踐,單元測試框架和測試自動化實踐顛覆了這種範例。現在,許多測試實踐不再在開發過程的最後進行質量保證,而是在編碼,整合和部署期間開始並完全執行。devops和敏捷團隊會自動執行測試指令碼,並且ci / cd管道會在其**整合或交付階段調出執行測試的許可權。最終結果是,當開發人員的**更改中斷構建時,他們會得到警告,並可以立即採取措施解決所報告的問題。

自動化測試並將測試指令碼整合到ci / cd管道中被稱為左移測試。這意味著可以在開發階段進行更多質量保證實踐,以在發布時間表的早期發現問題。對於想要增加部署頻率的敏捷團隊和開發團隊來說,自動化測試是部署前的優先事項之一。

在引入新功能時,構建的測試指令碼會驗證新功能。然後可以將這些測試自動化幷包括在構建或部署步驟中。您可以在開發過程中執行和驗證許多測試,而不必讓質量檢查工程師在發布過程結束時執行回歸測試。這些測試從發布過程的結束向左移,進入較早的開發和編碼階段。

左移測試使敏捷團隊對質量的承諾

左移測試不僅可以提高效率並提高質量,還可以在敏捷開發過程中帶來重大的文化變革。

一些開發團隊將質量保證和測試視為將**交付生產的障礙。在滿足敏捷產品所有者和完成**的所有艱苦工作之後,質量保證團隊成員確定了需要修復的錯誤列表。如果質量檢查人員發現許多錯誤,則可能會影響發布時間表以修復它們。更糟糕的是,由於缺陷暴露了邏輯,安全性或效能問題,因此需要重新設計**的重要部分。在這種情況下,開發人員和qa工程師可能在同乙個敏捷團隊中,但沒有作為乙個團隊來工作。

左移測試使敏捷團隊能夠將質量責任轉移到整個開發人員和測試人員團隊。當測試作為ci / cd管道的一部分執行時,它為開發人員提供了乙個更好的機會,可以在他們處理相關**時及時解決質量問題。ci / cd管道會向開發人員發出構建失敗的警報,並且大多數自組織的開發團隊都需要立即解決這些問題。

左移測試還為開發人員和質量檢查工程師提供了使更多測試自動化的機會。最佳實踐是團隊根據開發的功能所需的測試型別來決定由誰來實施自動化。例如,開發人員通常負責自動化單元和api測試,但是qa自動化工程師經常開發端到端使用者體驗測試和事務測試,以模擬對多個服務的多步api呼叫。

何時應用左移測試

左移測試最適合執行時間較短的單元級原子測試。在ci / cd管道中自動化測試是至關重要的,並且在開發人員觸發構建時執行,並且要快速執行而又不減慢構建過程。

端到端使用者體驗測試,事務測試,靜態**分析和安全性測試等更複雜,更耗時的測試通常在ci / cd管道之外並按每日或更頻繁的計畫執行得更好。這些測試仍可為開發人員提供有關質量問題的早期反饋,但它們在ci / cd之外是自動化的,以避免構建速度變慢或出現瓶頸。

通用金融公司it服務副總裁thomas j. sweet與我分享了他對左移測試策略的侷限性的個人見解。他建議:「向左移動始終是一種策略,除非在第三方**商交付上執行整合測試時,因為您通常無法訪問其源**。即使您的內部應用程式具有舊式整體架構,也可以從強制執行需要**審查和安全掃瞄的基本簽入策略開始。如果掃瞄中包含重要的警告和故障,則應拒絕簽入。」

與整合合作夥伴進行下游測試的一種潛在解決方案是實施服務虛擬化。該技術使開發團隊可以模擬下游系統對不同輸入的響應。當下游系統定義明確時,它可以很好地工作。從工具微焦點,tricentis和其他啟用此功能。

經驗豐富的質量保證經理rob pociluk強烈支援敏捷開發中的左移測試。「準備好並能夠測試一小段**,可以使質量保證(qa)保持靈活,並在衝刺過程中保持迴圈。團隊仍應避免過多使用左移,因為您可能會失去**本身的目的。」

因此,即使團隊完全接受左移測試,也有充分的理由仍要在針對要發布的**完整版本上安排測試視窗。它可以確保在最終版本上執行所有自動化測試,而且還可以安排需要功能齊全的系統的其他測試。

這些測試之一是uat(使用者接受測試),其中選定的終端使用者和主題專家進行驗證並提供反饋。在開發過程中可以完成一些uat,但是要使人們經常執行此測試或在功能尚未完全就緒時可能並不容易。

左移測試策略的前提條件

左移測試是越來越多的devop實踐,但它具有先決條件和前期投資。需要一些基本功能和實踐。

需要足夠的測試能力和環境來支援同時執行的構建和測試數量。

敏捷團隊需要乙個測試產品工具箱,該工具箱必須易於整合到ci / cd管道和作業計畫工具中,並且可以驗證功能,**質量,安全性和效能。

架構師,資訊保安專家,質量保證主管和組織的其他高階成員應建立測試標準和服務水平目標,以形成預設的接受標準。

當應用程式需要使用者輸入時,測試團隊需要足夠的測試資料和模式來驗證足夠的角色,用例和輸入模式。

在衝刺承諾或更早的時候,包括qa測試自動化工程師在內的scrum團隊應制定測試策略,以測試要測試的功能,實現的測試型別,更新的自動化流程以及開發測試的人員。

devops團隊應測量ci / cd管道執行的持續時間,並在自動測試步驟影響生產率時做出標記。devops團隊通常需要ci / cd管道之外的其他測試計畫,以執行執行時間更長的測試。

團隊應定期討論自動化測試中的空白,尤其是需要主題專家,uat或與合作夥伴進行測試的驗證。如果敏捷團隊無法通過自動化解決這些差距,那麼發布週期應考慮開銷,以降低風險並完成這些測試。

最後,敏捷團隊和開發人員組織應定期衡量和討論其測試範圍。如果開發團隊和質量自動化工程師實際上沒有實施,自動化和整合足夠的測試來發現問題和解決風險,那麼採用左移測試策略將行不通。

在沒有足夠的測試自動化的情況下加快發布週期或實現連續交付會導致嚴重的質量問題,從而降低終端使用者的體驗。敏捷開發團隊過於頻繁地發布版本,然後發現自己要解決生產問題和缺陷,而不是投資於更多更好的自動化。

龍測科技,您身邊的自動化測試專家。

艾薩克·薩科利克(isaac sacolick)

公認的頂級社交cio,是social,agile and transformation和cio.com的長期部落格作者,也是starcio的總裁

如何通過溝通改善人際關係

如何通過溝通改善人際關係 溝通技巧 1.主動 大部分性格被動的人,都因為缺乏自信 也有些是自以為了不起的人,要別人主動去奉承他。不論什麼原因,主動是人際關係的主要因素。率先對人微笑,是乙個好開始 如果找不到合適的話題,點頭微笑就夠了。即使話說得少也遠勝被動。溝通技巧 2.發問代替建議 與人交談時,不...

如何通過subId來獲取phoneId

androidl中使用一張資料表來儲存sim卡資訊 telephony.db中有一張記錄sim卡資訊的表,siminfo create table siminfo id integer primary key autoincrement,icc id text not null,sim id int...

譯 通過測試來解耦 Activity

本文講的是 譯 通過測試來解耦 activity,譯文出自 掘金翻譯計畫 譯者 mnikn 校對者 phxnirvana,stormrabbit onpermissionresultlistener降低和permittedview的耦合度。解耦 顯而易見的進步。我們的測試指引我們來建立onpermi...