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