热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

理解持续测试,才算理解DevOps

软件产品的成功与否,在很大程度上取决于对市场需求的及时把控,采用DevOps可以加快产品交付速度,改善用户体验,从而有助于保持领先于竞争对手的优势。

作为敏捷开发方法论的一种扩展,DevOps强调开发、测试和运维不同团队间的协作与沟通。

持续集成和持续测试是一个在迭代中构建、测试产品并修复Bug的过程。它有助于团队在开发阶段的初期发现缺陷,这时的缺陷通常相对不那么复杂,并且更容易被解决。通过持续集成和持续测试,企业可以尽早地将错误风险降至最低,并加快交付更好质量的软件。

DevOps中持续测试对产品开发的好处

●定期风险分析:你将拥有一个经历了所有测试阶段的构建版本,因为持续测试会标注出每个阶段的潜在风险。
●改善用户体验:持续测试适应用户的动态需求。团队可以根据反馈不断进行更新,让产品更稳健、更灵活、更可靠。
●增强产品安全性:通过创建支持系统,可确保应用程序免受威胁和恶意软件的影响。
●计划反馈:评估交付管道的所有架构层,并与团队共享可执行的反馈。
●更高的资源利用率:如前所述,及早发现Bug可以节省资金和资源。可以利用持续测试和缺陷预防策略的最佳实践,并将有价值的资源重新部署到其他战略开发计划中。

持续测试在DevOps中的作用

在DevOps过程中,持续测试提供了持续的反馈机制,在整个产品交付管道中充当催化剂。每个阶段的自动反馈确保缺陷在开发过程的早期就能被解决。理解持续测试,才算理解DevOps

可操作的反馈是必要的,这决定着能否启动交付链中的下一个流程。例如,如果反馈可以向前推进,则流程将继续;如果反馈显示存在问题,那么流程需要被暂停并采取纠正措施。

由专业的测试团队进行的持续测试可以实时评估与软件相关的业务风险。此外,它还提供基于风险的反馈,有助于帮助团队做出更好的权衡决策。

DevOps中持续测试的实践

1、测试的左移或右移

传统测试主要集中在软件开发周期的最后,产品发布之前。为了迎合不断加快的交付频率,越来越多团队的测试活动开始向左右两侧移动。一般问题修复成本较高和面向企业收费的软件,一旦生产环境中出现了问题会造成比较大的损失,通常采取测试左移的方式;对于具有展示功能的软件产品,更容易在生产环境中发现问题,通常采取测试右移的方式。面对测试左右摇摆的问题,可从这张图阐述DevOps中的测试具体应该如何实现。理解持续测试,才算理解DevOps

测试左移,是指测试人员更早地参与到软件项目前期的各项活动中,在功能开发之前定义好相关的测试用例,提前发现质量问题。早期引入测试过程有助于防止缺陷,并为开发人员提供了在整个开发阶段应用动态变更的灵活性

测试右移,就是直接在生产环境中监控,并且实时获取用户反馈。在这种方法中,从用户侧收集反馈,根据用户反馈持续改进产品的用户体验满意度,提高产品质量。测试右移有助于更好地响应意外情况

2、持续集成
理想的DevOps周期,是从代码开发到生产环境运行的一键部署。显然DevOps非常重视构建、测试和部署的自动化,使用持续集成成为了持续测试的基础。实现持续测试的重要一步,是创建全面的自动化测试套件以在持续集成构建中使用,代码提交后会立刻经过这套自动化测试套件得以验证。常见的自动化测试套件由单元测试、组件检测和验收测试组成,其中每种测试的代码或功能覆盖率至少要达到80%以上才能保证不引入回归问题。

3、让提高测试覆盖率高效化
DevOps的实践要求提高代码覆盖率,增加低层级可用性的覆盖率,以便在部署到更高级的可用性时不会出现与代码覆盖率有关的问题。

一些组织默认「每次运行所有的测试」来保证代码覆盖率。这不但浪费资源还延长了测试周期,而且没有真正的保证代码覆盖率。 测试那些需要测试的部分,以节省时间、金钱和资源。可视化模型可以让各种路径被探索优化,以便只用少量的测试用例就能提供最大化的覆盖率。 可以借助 Rally、HP ALM和禅道ZTF等工具导入测试用例、移除重复用例、分发优化过的用例。

4、跨部门协作理解持续测试,才算理解DevOps
DevOps中质量保证不再是测试人员的专属责任,而是全体人员都要为之努力的方向。持续测试的成功实施离不开团队内、团队间及跨团队的协作。测试人员需提前介入到开发工作中,与开发人员一起制定测试计划;开发人员可以参与配置部署;运维人员可以向自动化测试用例库填写测试用例;测试人员随时将自动化测试用例配置到持续交付链中,所有成员的共同目的都是交付高效、高质量的产品。

DevOps打破了开发和运维之间的障碍,缩短了开发周期。其中,持续集成、持续测试、持续交付都是提高质量的关键催化剂,而持续测试则更具挑战性。掌握DevOps生命周期的持续测试对于充分理解DevOps起着至关重要的作用。


推荐阅读
  • 【限时免费】       架构和运维技术高峰论坛·成都站来啦~~     报名请点击左下角 阅读原文运维和架构系列论坛,由IT趣学社主办,以目前最火热的运维技术体系为核心,邀请业界 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • 博客_2018年博客总结
    本文由编程笔记#小编为大家整理,主要介绍了2018年博客总结相关的知识,希望对你有一定的参考价值。前言     ... [详细]
  • 智慧城市背景下Python机器学习项目实战案例分享
    首先,何为智慧城市?智慧城市的“智慧”源自何处?智慧城市的特征在于运用大数据和数字技术提高居民生活质量。机构获得的数据越全面、越实时,它们就越有能力观测事件发生的详情、分析需求模 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 智慧博物馆信息系统建设方案
    3.信息化系统建设3.1博物馆RFID藏品管理系统3.1.1系统概述博物馆藏品保管是一项十分复杂又繁琐的工作。从事保管工作除了经常、及时地进行藏品的登记、分类、编目、保养和修 ... [详细]
  • 目前有哪些主流的编程语言呢?1、Java:应用广泛,Android的编程,大部分是用Java;相关岗位:软件工程师,软件架构师和DevOps工程师。2、Python:简单易学,软件 ... [详细]
  • 开发笔记:DevOps Gitlab环境部署
    本文由编程笔记#小编为大家整理,主要介绍了DevOpsGitlab环境部署相关的知识,希望对你有一定的参考价值。DevOps介绍 ... [详细]
  • 敏捷,持续集成/持续交付, DevOps 三者的区别
    以下这篇译文清晰明了地揭示了敏捷(Agile),持续集成/持续交付(CI/CD)和DevOps三者之间的区别和联系。它们尽管有所不 ... [详细]
author-avatar
清清果冻儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有