高效持續(xù)測試策略的4個要素

通常,當(dāng)組織計劃并實施有效的測試自動化策略時,他們認(rèn)為他們正在實施連續(xù)測試。他們錯了。
測試自動化無疑是連續(xù)測試的最關(guān)鍵組成部分之一。但是, 實施連續(xù)測試始于多層測試策略,其中包括所需的所有類型和級別的測試-包括單元,集成,功能,探索性和自動化。連續(xù)測試還必須具有在整個連續(xù)集成流程中合并測試的策略。
組織尋求DevOps通過在不犧牲質(zhì)量的前提下最大化交付速度來增加價值并改善客戶體驗。DevOps通過實施持續(xù)交付管道進行交付,這需要持續(xù)的測試。
但是,什么是連續(xù)測試?這種實踐不僅限于在整個軟件交付管道中執(zhí)行自動化測試,而且還可以提供與潛在發(fā)行版相關(guān)的風(fēng)險的即時反饋。
持續(xù)測試需要持續(xù)的業(yè)務(wù)和技術(shù)風(fēng)險分析,以及整個持續(xù)集成過程中的流程改進和自動化。同樣重要的是要發(fā)展一種文化,在這種文化中,質(zhì)量是每個團隊成員的共同責(zé)任。它基于一種管理風(fēng)險的方法,該方法通過提高有效性和提高測試過程的效率來消除測試瓶頸。
這是有效的連續(xù)測試策略的四個關(guān)鍵步驟 ,以及你需要了解的每個步驟。


它包括三個部分:關(guān)注業(yè)務(wù)風(fēng)險,識別和緩解瓶頸以及優(yōu)化測試。
DevOps的最終目標(biāo)(即持續(xù)測試的目標(biāo))是減輕業(yè)務(wù)風(fēng)險,該風(fēng)險由客戶風(fēng)險和組織風(fēng)險組成。
客戶風(fēng)險包括了解哪些應(yīng)用程序工作流程對客戶最重要,并據(jù)此計劃基于風(fēng)險的測試范圍。
組織風(fēng)險涉及了解業(yè)務(wù)環(huán)境以及產(chǎn)品本身的復(fù)雜性。例如,首先進入市場是否很關(guān)鍵,或者產(chǎn)品的健康或安全性更重要?一旦準(zhǔn)確評估了整體業(yè)務(wù)風(fēng)險,就應(yīng)該將需求,應(yīng)用程序組件和測試映射到這些風(fēng)險。
識別和緩解瓶頸至關(guān)重要;它們阻礙了質(zhì)量和速度。從需求到生產(chǎn)后的檢驗,始終可以發(fā)現(xiàn)對測試過程的約束。一些示例包括測試人員未包含在積壓的細化工作中,因此他們沒有機會幫助建立驗收標(biāo)準(zhǔn),缺陷無法及時得到解決,自動化測試套件運行時間過長以及生產(chǎn)后檢驗手動進行。
優(yōu)化測試
測試優(yōu)化是進行連續(xù)測試的有效自動化策略的基礎(chǔ),它是選擇正確的測試的實踐,可以以最少的測試用例提供所需的測試覆蓋率。
從基于風(fēng)險的完整回歸套件測試選擇到針對目標(biāo)測試和新功能回歸的測試選擇,此實踐有許多應(yīng)用。這是一個動態(tài)的,持續(xù)的過程,尤其是在作為連續(xù)測試框架的一部分應(yīng)用時。測試優(yōu)化應(yīng)該在自動化之前進行,并且必須在整個連續(xù)測試過程中繼續(xù)進行。
第一步是通過了解關(guān)鍵用戶工作流程中涉及的所有集成(包括那些應(yīng)用程序(Web,移動,消息/ API層等)中使用的技術(shù))來優(yōu)化測試范圍。
一旦對測試范圍有了清楚的了解,下一步就是優(yōu)化測試用例。這不僅包括分析測試用例的質(zhì)量和詳細程度,還包括選擇提供最大測試覆蓋率的測試。你的 測試套件應(yīng)設(shè)計為以最少的測試用例數(shù)量提供最大的覆蓋范圍,以提高質(zhì)量和速度。
測試優(yōu)化是一個動態(tài)過程。評估有效性是維護優(yōu)化測試套件的關(guān)鍵部分。應(yīng)該對套件進行持續(xù)評估,以淘汰不再需要的測試,解決不穩(wěn)定的測試,并基于新功能添加新測試。


連續(xù)測試需要在整個交付流程中實現(xiàn)測試自動化。測試自動化可提高部署速度,并降低連續(xù)交付所固有的風(fēng)險。
但是,連續(xù)測試框架內(nèi)的自動化不僅僅是開發(fā)和維護自動化回歸套件。實際上,自動回歸套件,特別是那些通宵運行的套件,會在持續(xù)部署過程中造成瓶頸。連續(xù)測試需要一種測試自動化策略,該策略可以增強而不是阻礙連續(xù)交付過程。
實施優(yōu)化的回歸測試套件還不夠。自動化測試策略必須在構(gòu)建過程的每個步驟中都包括自動檢查點。這從驗證單個代碼段的單元測試和驗證關(guān)鍵功能的組件測試開始。基于風(fēng)險的回歸測試套件應(yīng)根據(jù)你當(dāng)前正在實現(xiàn)的功能進行定制。
自動化測試將繼續(xù)進行生產(chǎn),并進行部署后的運行狀況檢查,以確保應(yīng)用程序已啟動并正在運行。作為最后一步,生產(chǎn)監(jiān)控應(yīng)在客戶找到功能和性能問題之前先找到它們。
在連續(xù)測試策略中,必須將測試自動化設(shè)計為有效運行,同時提供可靠,一致,可重復(fù)的結(jié)果。你的自動化策略必須精心制定,并包括測試維護計劃和時間表,其中自動化測試應(yīng)在交付管道的特定位置運行。


為了實施成功的連續(xù)測試策略,至關(guān)重要的是,團隊必須接受質(zhì)量工程的左移原則,即提倡在開發(fā)過程中盡早進行測試。質(zhì)量工程是在整個過程中提高質(zhì)量的實踐。它從開發(fā)開始,并著重于預(yù)防缺陷,而不是發(fā)現(xiàn)缺陷。向左移動測試可進行質(zhì)量工程和連續(xù)測試。
測試驅(qū)動開發(fā)(TDD),行為驅(qū)動開發(fā)(BDD)和驗收測試驅(qū)動開發(fā)(ATDD)都是“左移”的技術(shù)。
在TDD中,開發(fā)人員和測試人員首先共同設(shè)計測試,然后開發(fā)代碼以使測試通過。BDD是TDD,其設(shè)計側(cè)重于客戶行為。ATDD專注于以客戶為中心的設(shè)計,其中“三個朋友”(開發(fā)人員,測試人員和產(chǎn)品所有者)共同承擔(dān)設(shè)計工作中的責(zé)任并共同努力。
對于非功能測試也必須采用左移方法。由于可以在設(shè)計中找到許多性能和安全缺陷的根本原因,因此在完成設(shè)計之前及早發(fā)現(xiàn)缺陷至關(guān)重要。在過程后期才發(fā)現(xiàn)這些缺陷時,它們將變得更加復(fù)雜且修復(fù)成本很高。


此步驟是連續(xù)測試策略的基礎(chǔ)。除非所有團隊成員都接受他們在質(zhì)量保證中的職責(zé),否則將無法成功實施其他要素。
承擔(dān)質(zhì)量責(zé)任需要轉(zhuǎn)變思維方式,必須從上至下領(lǐng)導(dǎo)。教育至關(guān)重要,因為團隊中的每個成員都必須了解其在質(zhì)量工程中的角色性質(zhì)。


