当前位置: 首页 > 质量专栏 > 持续测试如何提高 DevOps 效率
持续测试如何提高 DevOps 效率
2023-03-16 浏览次数1324

   一、什么是 DevOps?

  企业加快开发管道的速度、效率和质量的最佳方式是通过 DevOps。DevOps 有着出色的记录,因为它显着改变了工程团队合作开发、测试和生产软件的方式。DevOps 广泛而包容,不仅包括新框架和开发实践的使用,还包括激励整个行业实施各种实施的完整理念和思维方式。

  来自维基百科:“DevOps 是软件开发和 IT 行业的一种方法。作为一套实践和工具,DevOps 将软件开发 (Dev) 和 IT 运营 (Ops) 的工作集成并自动化,作为改进和缩短系统开发生命周期的一种手段。DevOps 是对敏捷软件开发的补充;DevOps 的几个方面来自于敏捷的工作方式。”

  如您所见,正式定义侧重于技术方面和方法论,但在我看来,DevOps 带来了更多好处。它是一种全新的创新、所有权和持续学习活动的文化,其主要目标是改进从定义、开发到发布的软件开发生命周期。

  如今,DevOps 已成为标准也就不足为奇了。它提供的好处是有目共睹的:加快发展进程。从开发的最初阶段开始,质量就是内在的。改善工程和运营之间的协作和所有权。减少开发和业务障碍。加快工程生产力。优化软件测试过程,以便在更短的时间内给出有效的结果。

  话虽如此,请记住 DevOps 就像敏捷一样。它不是灵丹妙药,但它可以(并且应该)对您的组织和客户体验产生重大影响。

  持续测试的主要好处

  1、更快的上市时间: DevOps 实践使组织能够更快、更频繁地交付软件更新和新功能,从而缩短上市时间。

  2、加强协作和沟通: DevOps 培养开发和运营团队之间的协作和沟通文化,从而提高软件开发和部署的效率和效果。

  3、提高质量:通过集成自动化测试和持续集成与交付 (CI/CD) 管道,DevOps 有助于确保软件在部署前经过全面测试并具有高质量。

  4、更高的敏捷性和灵活性: DevOps 实践使组织能够快速响应不断变化的市场条件和客户需求,并相应地调整其软件开发和部署流程。

  5、提高效率并节省成本: DevOps 减少了软件开发过程中的浪费和低效率,从而为组织节省了成本。

  6、更好的可靠性和稳定性:通过实施监控和日志记录等实践,DevOps 帮助组织快速识别和解决问题,从而产生更可靠和稳定的软件。

  总体而言,DevOps 是一种使组织能够更快、更高效地交付高质量软件的方法,同时还能培养协作和持续改进的文化。

  二、主要挑战

  持续测试对于企业在竞争中领先一步至关重要,但它也带来了内在的复杂性和挑战,在您直接投入之前值得一提。

  1、自动化一切– 在持续测试成为基于云的开发(SaaS 产品)的新规范之前,组织的主要目标是减少测试工作,尤其是手动测试。因此,始终存在的主要问题是,“我们的自动化程度够高吗?” 在过去,这是一个行之有效的策略,但在不断测试的时代,需要重新评估。作为“自动化一切”努力的结果的大量非结构化测试套件在几个月内变得难以管理,并且比测试本身需要更长的维护时间。此外,组织及其开发团队无法将它们作为结构化过程的一部分连续运行,每次修复每次构建都包含在 SDLC 中自动化主要组件的主要动机。现代时代发生了什么变化,然后?我们必须迅速采取行动,集中精力进行能够产生最高投资回报的测试。这是意识到自动化一切是不切实际的结果。

  2、资源利用不足——如果组织想要一个有效且可扩展的持续测试过程,就必须在资源、基础设施、框架和体力劳动方面进行投资。如果不随着时间的推移对其进行管理和跟踪,这可能会非常昂贵。例如,日常 CD 流程使用各种服务器(物理和虚拟),每台服务器都会消耗资源,随着时间的推移,这些资源会非常昂贵。(如果您使用 Azure、AWS 等云提供商,这一点就更重要了)。

  工程团队将被期望确保他们不会将这些宝贵的资源浪费在由于编码和测试不充分而导致失败的无意义的工作执行上。对于不能在未利用的资源上浪费金钱的初创公司或低预算项目来说,这可能是一个主要问题。因此,持续关注 CD 执行管道以识别和解决资源浪费区域至关重要。

  3、持续测试不仅仅是为了测试——持续测试只专注于测试的想法是最常见的误解之一。绝对不是这样。尽管测试是其核心,但为了充分利用连续测试,我们必须专注于该过程中涉及的许多其他领域。

  例如:创建与每个测试套件相关的健康仪表板。在多个版本、平台和框架上执行测试套件。在失败的情况下重新运行测试的能力(同时保留失败日志、转储和任何其他与调试相关的信息)。为相关利益相关者生成自动报告。

  三、关于 DevOps 和测试的思考

  DevOps 涉及许多不同的部分,如工具、基础设施、编码标准、监控等等,它们相互依赖才能顺利运行。但是,现在让我们专注于最吸引我们的元素:测试。

  尽管 DevOps 具有显着的优势,但如果没有正确的实施,您将无法获得这些优势。我经常看到的一个例子是为了提高速度而忽视质量。因此,您必须在速度和质量之间找到正确的平衡点,如果您将一件事置于另一件事之上,您很快就会发现现场和客户体验将受到严重影响,并可能对商业声誉产生很大影响。因此,在关注速度之前,请记住不能忽视质量。请记住,DevOps 的重要核心支柱之一是优化测试流程和活动,使其变得更加有效。

  那么,我们可以做些什么来提高质量规模呢?

  1、尽最大努力将测试人员纳入 DevOps 生态系统。测试不应存在于外部,但它应该是其中不可或缺的一部分。

  2、将您的测试人员转移到 DevOps 团队中,以增加对质量的关注,而不仅仅是速度和流程。

  3、在将新功能集成到核心存储库之前,让他们专注于探索性测试会话。

  4、让您的测试人员专注于质量风险以及如何消除它们。

  5、确保缺陷管理与 CI/CD 管道的测试分析结果同步(主要目标是在开发生命周期的早期发现缺陷,并防止可能的缺陷在生产周期的后期出现)。

  四、结语

  简而言之,持续测试的主要目标是从软件开发生命周期的一开始就将质量构建到产品中。使用这种方法,我们推动我们的团队进行文化、思维和技术调整,以确保他们能够在开发的所有阶段(单元测试、集成测试、安全测试、系统测试和验收测试)进行测试,并加速整个开发过程以为他们的客户取得更好的结果。

  话虽如此,这里有一个问题值得一提,开发人员呢?他们如何应对适应持续测试所涉及的新工作要求?在过去十年中,我们看到“程序员”心态有了显着改善,即测试不是 SDLC 的一部分,而完全是测试人员的责任。这在传统的瀑布式 SDLC 中是一个不可否认的事实,我们看到它是如何开始在敏捷框架中发生转变的,这使得开发人员不可能不采取测试所有权的决定性部分。然而,DevOps 通过采用 CI/CD 流程和持续测试的思维方式取得了重大进展。

  从开发人员的角度来看,他们必须专注于编码,避免将时间花在调试和监控测试等任务上。在 DevOps 中,开发人员必须改变他们的观点并接受测试是他们新角色的重要组成部分这一事实。由于工程团队希望更快地交付软件(主要是通过自动化传统开发中涉及的所有体力劳动),他们的工作质量仍然需要评估。错误的代价可能非常高,并且会影响整个 CI/CD 过程,我们都知道,糟糕的产品交付现场,会对商业声誉产生决定性和永久性的影响,并导致法律风险。

  在开发阶段的早期,就应该从一开始就接受持续测试,以增加反馈循环,从而确保识别、减轻和监控风险。另一点值得一提的是“质量所有权”。因此,在传统的 SDLC 中,我们有测试人员负责它,而在敏捷框架(Scrum、看板等)中,边界开始变得模糊,这意味着开发人员对质量负有更多责任。在 DevOps 中?如果您正确接受它,那么根本就没有所有者,因为关注质量成为每个人的责任。

    卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价

        部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲       电话:4006070568


文章标签: 软件测试
咨询软件测试