6 个常见的连续测试瓶颈
已发表: 2021-08-09敏捷和 DevOps 实践正在迅速流行。 许多公司正在采用这些软件开发方法来快速、频繁地交付新软件和更新。 由于敏捷通常使用用户故事和需求来定义产品功能,因此发布的软件会以增量方式为客户提供价值。
随后,连续测试的需求也出现了前所未有的增长,因为它是快速交付质量的关键催化剂。
持续软件测试是作为软件交付管道的一部分执行测试套件,而不是在软件开发生命周期 (SDLC) 结束时进行测试。 它在软件交付管道的每个阶段尽可能快地提供基于风险的反馈。 持续测试允许软件开发过程快速推进,而不会影响用户体验。
Freeform Dynamics 在他们的研究中讨论了持续测试的优势以及来自 923 位 IT 和测试专业人员的累积反馈,持续测试作为数字业务的推动者。 该研究揭示了一些有趣的统计数据。
大约 75% 的专业人士同意持续测试在软件开发中的重要性。 然而,只有 20% 的受访者表示他们有适当水平(超过 80%)的测试自动化覆盖率。 此外,大约五分之一的受访者表示他们仍然严重依赖手动测试。
尽管有很多好处,但对众多公司来说,实施持续测试仍然具有挑战性:
分析连续的自动化测试
持续测试的最大挑战之一是调查快速生成的大量输出。 输出来自各种来源,包括多种测试工具、静态和动态分析、代码覆盖率、功能和回归测试等。
测试分析需要花费大量时间和精力,而这些时间和精力本来可以用来优化测试套件或提高测试覆盖率。 确定自动化软件测试是否成功可能需要数小时,这有损于实施持续测试的核心目的,即加快软件交付。
自动化测试分析可以在一定程度上解决这个问题。 越来越多的开发人员将注意力转向加速输出分析以加快整个交付周期。
持续测试分析中的可见性
对于开发人员和运营团队来说,在测试分析中清晰明了是至关重要的。 虽然在应用程序生命周期的早期将其转移或测试非常重要,但这还不够。 您需要从用户那里获得持续的反馈以保证质量,这只能通过右移测试来实现。
软件测试的主要关注点不仅是产品在开发阶段和测试环境中的性能,还应该关注增强其可用性。 您需要深入了解作为最终产品的应用程序或功能的行为,以优化您的初始阶段。
因此,您不仅应该向左移动以更早地集成测试和发现问题,还应该从生产中获取数据以了解产品的潜在缺陷。
测试运行时间长
由于持续测试包括在软件架构的每个级别实施不同的测试套件,因此测试的数量是巨大的。 虽然您需要关注测试覆盖率、功能覆盖率和编写新代码行的脚本,但您还需要注意运行时。

引入持续测试是为了在不影响软件质量的情况下加快交付过程。 因此,运行四到五个小时的测试是不切实际的,因为它会稍微延迟反馈。 因此,整个交付管道将放缓。
为了克服这个问题,您需要更全面地了解什么是必不可少的,什么是相关的。 测试影响分析 (TIA) 功能可以通过自动测试选择来增强验证。 对于进入管道的给定源代码,TIA 将仅选择并运行验证代码所需的必要测试。 因此,测试运行变得更快、更集中。
跟上大量部署
持续测试会产生测试债务。 一天内部署了各种测试以评估软件质量和检测错误,以及跟上敏捷方法。
但是,很难跟踪每天实施的所有测试。 如果您无法确定测试的有效性,或分析测试迭代中的变化如何影响业务风险和最终用户体验,那么增加的频率和速度将变得无关紧要。
耗时且昂贵
测试自动化是高效连续测试的关键组成部分。 它允许团队快速分析新测试和迭代的性能。
但是,构建自动化测试脚本可能既耗时又昂贵。 因此,组织优化其使用至关重要。
QA 行业资深人士 Amir Ghahrai 解释说,组织应该意识到自动化哪些测试领域最有益。 您可以遵循测试自动化金字塔原则从测试脚本中提取最大价值。
来源
团队应该将大部分自动化工作集中在位于金字塔底部的单元测试上。 随着您在金字塔上向上移动,您可以缩减自动化以优化对自动化脚本的投资。
抗拒改变
最后,尽管软件开发和测试取得了所有进步,但仍有一小部分经验丰富的测试人员拒绝更新他们的测试方法。 不愿意改变的主要原因是看似有效的传统方法。 结果,最终整个团队都遭受了减慢开发过程的后果。
Siemens Healthcare 的测试架构师 Marco Achtziger 在德国的 OOP 2015 会议上谈到了这个问题。 他建议您应该对坚持不懈的团队成员保持支持和积极态度。 不仅要关注切换到高级程序的好处,还要关注更改将为整个团队带来的优势。
持续测试对组织来说是一项重要资产,因为它可以加速软件开发过程,同时降低业务风险。 软件测试工具还可以促进测试实践并帮助克服与反馈驱动测试方法相关的一些挑战。
在您的 SDLC 中集成持续测试时,您遇到了哪些挑战,您是如何克服这些挑战的? 分享您的故事,让努力整合持续测试的读者受益。