在DevOps中優化持續測試的最佳實踐
譯文譯者 | 李睿
審校 | 孫淑娟
隨著越來越多的企業開展數字化轉型,人們看到云存儲、云計算以及以DevOps思維方式在云平臺上進行戰略測試的趨勢不斷增長。而持續測試是DevOps不可或缺的一部分。使用最佳DevOps測試策略的質量保證團隊,將更快的軟件開發和交付視為具有競爭力的業務差異化的重要因素。開發團隊旨在將持續測試納入開發過程,以便在不損害軟件產品可靠性的情況下,用戶獲得具有強大功能的優質產品。
開發團隊可以通過在軟件開發和交付整個過程中不斷測試來提前發現缺陷和錯誤,從而在問題變得嚴重之前輕松解決。對于戰略性持續測試,精心設計的DevOps測試自動化策略至關重要。持續測試減少了完成測試所需的時間,它在發現錯誤的同時節省了開發人員的時間,這是一種重要的協作方法,強調團隊之間的良好溝通和協調以達到最佳效果。通過向開發人員提供及時的反饋,可以彌合開發和測試之間的差距。
1.DevOps中的測試如何工作?
DevOps促進了開發和運營團隊之間的順暢溝通,使他們能夠一起工作,以滿足當今競爭激烈的軟件開發環境的需求。這兩個團隊分擔責任,共同努力,以實現更頻繁、更快速地交付高質量商品的最終目標。
在強大的DevOps測試自動化策略、最佳實踐,當然還有適當的DevOps工具和技術的支持下,企業可以更快、更有效地實現這些目標。持續集成和交付是實現快速軟件發布的兩個主要DevOps策略。這也意味著在開發周期的每個階段進行持續測試,對于保持軟件質量至關重要。
在敏捷性獲得發展,軟件測試也蓬勃發展。從那時起,測試領域出現了數十種新技術、更快的協作測試方法和工具。簡而言之,在DevOps中進行的測試如下:測試是自動化和連續的,允許快速和頻繁地交付軟件。
- 持續測試是軟件開發生命周期(SDLC)的一個組成部分,在開發周期的每個階段進行。
- 在不同的軟件開發生命周期(SDLC)級別執行各種類型的測試,以減少發生錯誤時的回溯。
- 在DevOps自動化測試中,多個團隊的員工分擔測試責任并進行協作,以提供解決問題的獨特視角,并全面了解每個變更的影響。
2.DevOps中的左移方法
與在軟件開發周期結束時進行測試的傳統環境不同,DevOps文化一直使用左移測試方法。左移測試將測試推到開發周期的早期階段。換句話說,一旦開發開始,就開始了測試。這有助于DevOps團隊盡快識別和解決問題。DevOps持續測試的這一特點是它的優勢,它有助于顯著提高軟件質量。無論這些特征如何,DevOps測試策略的成敗取決于企業為戰略性持續測試制定和實施DevOps最佳實踐的程度。
3.在DevOps中優化持續測試的最佳實踐
以下了解在DevOps中優化連續測試的最佳實踐,這些實踐是企業為了成功執行測試而應該采用的:
(1)從頭開始創建反饋循環
一個有效的持續測試過程始于創建反饋循環,該循環連接不同的團隊成員,并確保端到端的溝通。因此,成員的協作將得到改善,并在流程結束時交付優質產品。這也將允許頭腦風暴和引入新的想法和解決問題的方法。
(2)充分利用測試自動化套件
在DevOps自動化測試策略下選擇合適的測試自動化套件至關重要,因為持續測試取決于其功能。為了獲得最大的結果,應該充分利用測試自動化套件的全部功能。它將執行自動化測試,以檢查在DevOps過程的任何階段出現的任何錯誤。
企業有時選擇工具來生成測試套件只是因為其他公司都在這樣做,而不是檢查它是否適合他們的測試需求。例如,Selenium無法執行API檢查,但它已被用于相同目的,但結果并不理想,因為它不能在Web服務級別工作。由于一系列工具提供的功能,測試人員有時會被吸引在他們的測試套件中添加一個又一個程序。因此,在進行DevOps自動化測試時,他們經常忽略或低估現有解決方案的有用功能。這就是應該對開發人員進行培訓和介紹課程或進行指導的原因,以便在使用一段時間之后更好地了解該工具的功能。
(3)持久性和適應性
持續測試不像一組結構化的規則那么嚴格,而是一個開放的、適應性強的概念。
這取決于企業做什么,以及用來創造它的工具是怎樣的。持續測試的總體目標是在軟件開發生命周期(SDLC)早期發現和解決缺陷,并更快地開發優質軟件,但是,還有許多其他方法可以實現這一點。
因此,企業的DevOps測試自動化策略應始終具有足夠的適應性,以允許使用多種方法來改進持續測試。在DevOps中,測試人員必須創建工作流來自動化原有的人工測試,并且結果應該保存在一個公共存儲庫中,以便測試人員可以跟蹤最有可能發生的問題,并提前修復它們。
在確定問題之后,需要堅持下去。這包括深入研究已識別問題的各種可能解決方案,而不是盲目地進入不起作用的領域。它需要關注目標,專注于基于產品的目標而不是基于項目的目標,并在問題發生之前分析數據和見解以預測問題。
(4)使用無頭瀏覽器
對于任何Web應用程序測試,企業的DevOps測試策略應該包括使用無頭瀏覽器。無頭瀏覽器沒有圖形用戶界面,并且可以在與其他流行瀏覽器類似的環境中啟用自動網頁控制,但可以通過命令行界面或通過網絡通信使用它們。Html Unit、Firefox Headless Mode、Headless Chrome、Splash、Zombie.js、Puppeteer等是無頭瀏覽器的一些示例。
它們無需使用用戶界面即可運行DevOps自動化測試。這些瀏覽器可以幫助企業擴展其持續測試,因為它們可以快速運行測試,使用更少的內存,并且比它們的UI/GUI更快地提供結果。人們都聽說過持續測試的好處:快速反饋、早期錯誤檢測,以及開發人員在問題變得不可持續之前解決問題的能力。
員工可以使用各種基于JavaScript的工具進行性能審核、單元測試和可訪問性測試,使持續測試變得簡單易用。企業的DevOps測試自動化策略應側重于開發類似于基于云的客戶服務解決方案(聯絡中心即服務)的系統,該解決方案提供高質量的產品,提供流暢的客戶體驗。服務和支持行業正在迅速發展,這也是使用無頭瀏覽器進行持續測試至關重要的原因之一。
(5)充分利用DevOps團隊的潛力
DevOps就是一起實踐開發和運營。所有團隊成員,包括工程師、用戶體驗(UX)專業人員和其他人,都應該在這種混合方法中練習測試。這種協作的最終目標是為客戶提供最高質量的產品,為此,整個團隊必須協作以不斷地創建、測試、重新構建和重新測試。
每個團隊成員都有責任確保輸出質量不受影響。這也意味著不僅選定的質量保證(QA)測試人員將致力于關鍵性能指標,而且所有團隊成員都需要協作以實現最終目標。即使團隊位于不同的地理位置并進行遠程通信,這也應該成為主要目標。即使是質量保證(QA)團隊也可以切換,并參與開發或部署的任何步驟,他們必須精通從容器概念到基礎設施自動化的所有方面。
4.結論
關于開發DevOps測試策略,重點應該始終放在團隊成員之間的協作上。持續測試應該建立在成員對彼此的信任以及他們一起工作,他們可以探索和提供問題的解決方案,并通過協作努力實現項目目標。
在許多企業中,DevOps被認為是保持或成為市場競爭力的一站式解決方案。持續測試是持續集成/持續交付管道的一個重要方面,可以確保快速有效地發布一流的軟件。另一方面,企業在DevOps文化中采用的DevOps最佳實踐的質量對測試的成功有更大的影響。此外,自動化和工具選擇可以幫助企業實現DevOps目標,并提高DevOps測試策略的質量。
原文鏈接:https://dzone.com/articles/best-practices-to-optimize-continuous-testing-in-d