軟件產品的成功與否,在很大程度上取決于對市場需求的及時把控,采用DevOps可以加快產品交付速度,改善用戶體驗,從而有助于保持領先于競爭對手的優勢。
作為敏捷開發方法論的一種擴展,DevOps強調開發、測試和運維不同團隊間的協作與溝通。
?
持續集成和持續測試是一個在迭代中構建、測試產品并修復Bug的過程。它有助于團隊在開發階段的初期發現缺陷,這時的缺陷通常相對不那么復雜,并且更容易被解決。通過持續集成和持續測試,企業可以盡早地將錯誤風險降至最低,并加快交付更好質量的軟件。
?
DevOps中持續測試對產品開發的好處
●定期風險分析:你將擁有一個經歷了所有測試階段的構建版本,因為持續測試會標注出每個階段的潛在風險。
●改善用戶體驗:持續測試適應用戶的動態需求。團隊可以根據反饋不斷進行更新,讓產品更穩健、更靈活、更可靠。
●增強產品安全性:通過創建支持系統,可確保應用程序免受威脅和惡意軟件的影響。
●計劃反饋:評估交付管道的所有架構層,并與團隊共享可執行的反饋。
●更高的資源利用率:如前所述,及早發現Bug可以節省資金和資源。可以利用持續測試和缺陷預防策略的最佳實踐,并將有價值的資源重新部署到其他戰略開發計劃中。
持續測試在DevOps中的作用
在DevOps過程中,持續測試提供了持續的反饋機制,在整個產品交付管道中充當催化劑。每個階段的自動反饋確保缺陷在開發過程的早期就能被解決。
可操作的反饋是必要的,這決定著能否啟動交付鏈中的下一個流程。例如,如果反饋可以向前推進,則流程將繼續;如果反饋顯示存在問題,那么流程需要被暫停并采取糾正措施。
?
由專業的測試團隊進行的持續測試可以實時評估與軟件相關的業務風險。此外,它還提供基于風險的反饋,有助于幫助團隊做出更好的權衡決策。
DevOps中持續測試的實踐
1、測試的左移或右移
傳統測試主要集中在軟件開發周期的最后,產品發布之前。為了迎合不斷加快的交付頻率,越來越多團隊的測試活動開始向左右兩側移動。一般問題修復成本較高和面向企業收費的軟件,一旦生產環境中出現了問題會造成比較大的損失,通常采取測試左移的方式;對于具有展示功能的軟件產品,更容易在生產環境中發現問題,通常采取測試右移的方式。面對測試左右搖擺的問題,可從這張圖闡述DevOps中的測試具體應該如何實現。
?測試左移,是指測試人員更早地參與到軟件項目前期的各項活動中,在功能開發之前定義好相關的測試用例,提前發現質量問題。早期引入測試過程有助于防止缺陷,并為開發人員提供了在整個開發階段應用動態變更的靈活性。
測試右移,就是直接在生產環境中監控,并且實時獲取用戶反饋。在這種方法中,從用戶側收集反饋,根據用戶反饋持續改進產品的用戶體驗滿意度,提高產品質量。測試右移有助于更好地響應意外情況。
?
2、持續集成
理想的DevOps周期,是從代碼開發到生產環境運行的一鍵部署。顯然DevOps非常重視構建、測試和部署的自動化,使用持續集成成為了持續測試的基礎。實現持續測試的重要一步,是創建全面的自動化測試套件以在持續集成構建中使用,代碼提交后會立刻經過這套自動化測試套件得以驗證。常見的自動化測試套件由單元測試、組件檢測和驗收測試組成,其中每種測試的代碼或功能覆蓋率至少要達到80%以上才能保證不引入回歸問題。
3、讓提高測試覆蓋率高效化
DevOps的實踐要求提高代碼覆蓋率,增加低層級可用性的覆蓋率,以便在部署到更高級的可用性時不會出現與代碼覆蓋率有關的問題。
一些組織默認「每次運行所有的測試」來保證代碼覆蓋率。這不但浪費資源還延長了測試周期,而且沒有真正的保證代碼覆蓋率。 測試那些需要測試的部分,以節省時間、金錢和資源。可視化模型可以讓各種路徑被探索優化,以便只用少量的測試用例就能提供最大化的覆蓋率。 可以借助 Rally,、HP ALM和 禪道ZTF等工具導入測試用例、移除重復用例、分發優化過的用例。
4、跨部門協作
DevOps中質量保證不再是測試人員的專屬責任,而是全體人員都要為之努力的方向。持續測試的成功實施離不開團隊內、團隊間及跨團隊的協作。測試人員需提前介入到開發工作中,與開發人員一起制定測試計劃;開發人員可以參與配置部署;運維人員可以向自動化測試用例庫填寫測試用例;測試人員隨時將自動化測試用例配置到持續交付鏈中,所有成員的共同目的都是交付高效、高質量的產品。
DevOps打破了開發和運維之間的障礙,縮短了開發周期。其中,持續集成、持續測試、持續交付都是提高質量的關鍵催化劑,而持續測試則更具挑戰性。掌握DevOps生命周期的持續測試對于充分理解DevOps起著至關重要的作用。
?
?