理解持續測試,才算理解DevOps
本篇目錄
软件産品的成功与否,在很大程度上取决于对市场需求的及时把控,采用DevOps可以加快産品交付速度,改善用户体验,从而有助于保持领先于竞争对手的优势。
持续集成和持续测试是一个在迭代中构建、测试産品并修复Bug的过程。它有助于团队在开发阶段的初期发现缺陷,这时的缺陷通常相对不那么复杂,并且更容易被解决。通过持续集成和持续测试,企业可以尽早地将错误风险降至最低,并加快交付更好质量的软件。
DevOps中持续测试对産品开发的好处
●定期風險分析:你將擁有一個經曆了所有測試階段的構建版本,因爲持續測試會標注出每個階段的潛在風險。●改善用户体验:持续测试适应用户的動態需求。团队可以根据反馈不断进行更新,让産品更稳健、更灵活、更可靠。
●增强産品安全性:通过创建支持系统,可确保应用程序免受威胁和恶意软件的影响。
●計劃反饋:評估交付管道的所有架構層,並與團隊共享可執行的反饋。
●更高的資源利用率:如前所述,及早發現Bug可以節省資金和資源。可以利用持續測試和缺陷預防策略的最佳實踐,並將有價值的資源重新部署到其他戰略開發計劃中。
持續測試在DevOps中的作用
在DevOps过程中,持续测试提供了持续的反馈机制,在整个産品交付管道中充当催化剂。每个阶段的自动反馈确保缺陷在开发过程的早期就能被解决。
可操作的反饋是必要的,這決定著能否啓動交付鏈中的下一個流程。例如,如果反饋可以向前推進,則流程將繼續;如果反饋顯示存在問題,那麽流程需要被暫停並采取糾正措施。
由專業的測試團隊進行的持續測試可以實時評估與軟件相關的業務風險。此外,它還提供基于風險的反饋,有助于幫助團隊做出更好的權衡決策。
DevOps中持續測試的實踐
1、測試的左移或右移
传统测试主要集中在软件开发周期的最后,産品发布之前。为了迎合不断加快的交付频率,越来越多团队的测试活动开始向左右两侧移动。一般问题修复成本较高和面向企业收费的软件,一旦生产环境中出现了问题会造成比较大的损失,通常采取測試左移的方式;对于具有展示功能的软件産品,更容易在生产环境中发现问题,通常采取測試右移的方式。面对测试左右摇摆的问题,可从这张图阐述DevOps中的测试具体应该如何实现。
測試左移,是指 測試人員更早地參與到軟件項目前期的各項活動中,在功能開發之前定義好相關的測試用例,提前發現質量問題。早期引入測試過程有助于 防止缺陷,并为开发人员提供了在整个开发阶段应用動態变更的 靈活性。
測試右移,就是直接在生产环境中监控,并且实时获取用户反馈。在这种方法中,从用户侧收集反馈,根据用户反馈持续改进産品的用户体验满意度, 提高産品质量。測試右移有助于更好地 響應意外情況。
2、持續集成
理想的DevOps周期,是從代碼開發到生産環境運行的一鍵部署。顯然DevOps非常重視構建、測試和部署的自動化,使用持續集成成爲了持續測試的基礎。實現持續測試的重要一步,是創建全面的自動化測試套件以在持續集成構建中使用,代碼提交後會立刻經過這套自動化測試套件得以驗證。常見的自動化測試套件由單元測試、組件檢測和驗收測試組成,其中每種測試的代碼或功能覆蓋率至少要達到80%以上才能保證不引入回歸問題。3、讓提高測試覆蓋率高效化
DevOps的實踐要求提高代碼覆蓋率,增加低層級可用性的覆蓋率,以便在部署到更高級的可用性時不會出現與代碼覆蓋率有關的問題。
一些组织默认「每次运行所有的测试」来保证代码覆盖率。这不但浪费资源还延长了测试周期,而且没有真正的保证代码覆盖率。 测试那些需要测试的部分,以节省时间、金钱和资源。 可視化模型可以讓各種路徑被探索優化,以便只用少量的测试用例就能提供最大化的覆盖率。 可以借助 Rally、HP ALM和禅道ZTF等工具导入测试用例、移除重复用例、分发优化过的用例。
4、跨部門協作
DevOps中質量保證不再是測試人員的專屬責任,而是全體人員都要爲之努力的方向。持續測試的成功實施離不開團隊內、團隊間及跨團隊的協作。測試人員需提前介入到開發工作中,與開發人員一起制定測試計劃;開發人員可以參與配置部署;運維人員可以向自動化測試用例庫填寫測試用例;測試人員隨時將自動化測試用例配置到持續交付鏈中, 所有成员的共同目的都是交付高效、高质量的産品。

