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