回归测试通过测试新修改的代码以及任何可能受到影响的代码,确保软件应用程序不会出现新的错误
每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?3分钟?学习?何乐而不为?,希望?大家?点赞?,加?关注?,你的?支持?是我?最大?的?动力?。
持续集成/持续部署(CI/CD)过程的引入加强了软件发布机制,帮助产品比以往更快地进入市场,并允许应用程序开发团队更频繁和可靠地交付代码更改。回归测试通过测试新修改的代码以及软件中可能受到影响的任何部分,确保软件应用程序不会出现新的错误。软件测试市场规模预计在2020年达到400亿美元,到2027年增长7% 。根据环球市场观察集团(Global Market Insights group)的 告,回归测试占市场份额的8.5% 以上,预计到2027年年增长率将超过8% 。
回归测试的重要性
对于遵循敏捷模式的大型软件开发团队来说,回归测试是必须的。当许多开发人员频繁地进行多次提交时,回归测试需要识别每次提交导致的总体功能中的任何意外结果。CI/CD 设置确定了这一点,并在故障发生时立即通知开发人员,并确保错误的提交不会发送到部署中。
有不同的 CI/CD 工具可用,但是 Jenkins 因为是开源的而被广泛接受。它托管多个生产力提高插件,拥有活跃的 区支持,并且可以轻松地设置和扩展。像 GitLab 和 GitHub 这样的源代码管理(SCM)平台也提供了一系列 CI/CD 特性,当使用单一平台与 CI/CD 一起管理代码协作时,这些平台是非常受欢迎的。
当 CI/CD 设置需要与不同的团队处理多个软件产品,使用多个 SCM 如 GitLab,GitHub 和 Perforce 时,需要克服不同程度的挑战,需要使用由30多个高配置计算主机组成的集群,这些主机由各种操作系统组成,并处理高达1000 + 的回归作业计数。随着复杂度的增加,拥有有效的通知机制、健壮的监控、集群的平衡负载分配、可伸缩性和维护支持以及优先级管理变得越来越重要。在这种情况下,质量保证团队的作用将是有帮助的。他们可以专注于 CI/CD 优化,并在缩短上市时间和实现承诺的发布时间表方面发挥重要作用。
持续整合/回归测试持续交付
让我们在下一篇文章中看看回归测试所面对的挑战,以及如何克服这些挑战。
有效通知机制
像 Jenkins 这样的 CI/CD 工具提供插件支持,可以通知一组人或一组特定的团队成员,这些人或团队成员对回归测试中的意外故障负有责任。插件生成的电子邮件通知非常有助于引起对需要尽快修复的潜在情况的关注。但是,当大量这样的电子邮件通知充斥邮箱时,调查每一个通知就会变得效率低下,而且很有可能被错过。为了处理这样的场景,突出显示新故障的故障摘要 告(FSR)会很有帮助。FSR 可以进一步包含执行摘要部分和详细摘要部分。根据项目需求,可以集成 JIRA、 Jenkins 链接、 SCM 提交链接和时间戳,使其对开发人员更有用,因为 告将在单个文档中包含所有必需的参考。FSR 可以根据项目需求一天生成一次或多次。
计算资源的优化利用
当 CI/CD 管道被设置为使用具有高计算资源的多个主机集群时,预计将具有具有最大吞吐量的回归运行周期的最短周转时间。为了实现这一点,回归运行需要正确地分布在集群中。工作负载管理和调度程序工具(如 IBM LSF 和 PBS)可以用于基于给定时间点的可用计算资源并发地运行作业。在 Jenkins 中,可以添加多个代理节点在集群中分发作业,以最小化 Jenkins 队列中的等待时间,但是在理解代理宿主服务器的资源配置之后,需要根据可用的计算能力谨慎地完成这项工作。如果不小心,这可能导致节点崩溃和数据丢失。
资源监察
为了支持持续增长的 CI/CD 需求,在扩展时很容易忽略磁盘空间限制或集群资源限制。如果处理不当,将导致 CI/CD 节点崩溃、执行缓慢和数据丢失。如果这样的事件发生在团队接近导入交付物时,那么就很难满足已提交的发布时间表。应建立强有力的监测和通知机制,以避免出现这种情况。可以构建一个监视应用程序,该应用程序可以连续监视每个计算主机、 络磁盘空间和本地磁盘空间的资源,并在跨越设置阈值时发出红色警告。
可伸缩性和维护
当回归作业计数增长到1000以上时,维护所有作业计数就变得具有挑战性。如果在许多作业中手动完成一个更改,那么这个更改将成为一个耗时且容易出错的过程。为了克服这个挑战,在设计测试过程运行脚本时,应该选择模块化和可伸缩的方法。可以选择使用 SCM 来维护测试运行脚本,而不是使用 CI/CD 编写步骤。还可以使用 Jenkins API 从后端更新作业,以节省手工操作。
优先权管理
当多个软件产品的回归测试在一个 CI/CD 设置中处理时,优先级管理就变得非常重要。预合并作业应优先于后合并作业。这可以通过提供单独的 Jenkins 代理和 LSF 队列在专用主机上运行预合并作业来实现。不同产品的合并后 Jenkins 作业应该配置为对 Jenkins 代理标签和 LSF 队列使用易于更新的占位符,这样就可以根据接近发布的产品轻松改变优先级。
与第三方工具的集成
当使用 GitLab/GitHub 这样的多个 SCM 和 JIRA 这样的问题跟踪工具时,提交、 MRs、 PR 和问题更新可以帮助团队保持同步。Jenkins 与 GitLab/GitHub 的集成有助于将预合并运行结果反映到 SCM 中。通过将 JIRA 这样的问题跟踪器与 Jenkins 集成,可以根据运行结果创建和更新问题。通过 SCM 工具和 JIRA 集成,问题可以在新的提交和 PR 合并中自动更新。
不仅必须更新回归测试计划以反映应用程序代码中的新变化,而且还必须迭代地改进它们以使其更加有效、彻底和高效。测试计划应该被看作是一个不断发展的文档。
回归测试对于确保高质量至关重要,特别是在开发过程的后期发展阶段。这就是为什么测试用例的优先级和自动化在敏捷计划中是至关重要的。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!