使用测试影响分析立即获得有关代码更改的反馈

原创|使用教程|编辑:郑恭琳|2020-11-27 13:11:00.880|阅读 39 次

概述:通过使用Parasoft Jtest将测试影响分析用于单元测试,软件开发团队可以集中精力进行测试,并通过IDE或CI流程真正加速其开发流程。

# 周年庆正版采购有优惠,点击咨询 # # 31款JAVA开发必备控件和工具 #

相关链接:


您测试得越快,发布就越快。但是,您不必等待每晚/每天的构建来运行全套的单元测试,以验证代码更改的影响。相反,您可以立即洞悉受代码更改影响的测试,并对签入更有信心。

多年来,单元测试一直是行业最佳实践,并且随着开发团队建立其测试套件,他们变得越来越大。随着测试扩展到集成或组件级别的测试,它们将花费更长的时间。随着诸如TDD之类的单元测试新趋势的发展,这些测试套件将变得比以前更大,因为所有代码都依赖于测试,并且更多依赖于测试。

拥有大量单元测试基础可以成为测试的良好基础,但这可能会对测试执行时间产生重大影响,尤其是在单元测试扩展到集成/组件级测试时。因此,知道要测试什么的关键在于了解每个代码更改的确切影响,需要运行哪些测试以及可能需要哪些新测试。

计算代码覆盖率是确定要测试的内容的一个方面,但仅凭此还不够。当为每个测试计算代码覆盖率,然后在逐个构建的基础上将其与代码更改相关联时,真正的魔力就会发生。使用这种方法可以为我们提供测试影响分析,在此过程中,我们可以准确地确定执行哪个测试以验证代码更改。通过使用Parasoft Jtest将测试影响分析用于单元测试,软件开发团队可以集中精力进行测试,并通过IDECI流程真正加速其开发流程。


触手可及的测试影响分析


尽早发现并修复错误是进行测试影响分析的主要好处。通过将测试影响分析的结果直接集成到IDE中,开发人员可以无缝地利用其在工作流程中的优势,将测试工作准确地集中在正确的位置,并确保对代码更改进行完整的测试,包括对相关代码的间接影响。

尽管尽早发现并修复错误是主要目标,但使开发人员触手可及的测试影响分析结果还有其他优点,包括:

  • 突出显示实际上在修改后的文件中执行代码的测试,确保仅运行必需的测试。
  • 与各种源代码控制和构建系统集成在一起,并能够根据需要进行定制以支持独特的环境。
  • 不仅要识别测试和代码之间的直接依赖关系,还要识别间接依赖关系,以确保测试涵盖变更的全部影响。
  • 简便的初始配置和自动识别并运行受影响的测试的能力,而用户除了更改代码和查看结果外无需执行任何操作。

将测试影响分析与CI流程相结合时,可以节省时间,并且可以将开发团队的工作重点放在确保质量所需的工作上。在开发和构建时进行优化对于处理变更时实现敏捷目标至关重要。


集中测试意味着更好的软件,按时交付

与在软件开发生命周期中较晚发现错误相比,早发现错误更好且更便宜,因为这可能会导致重大的计划延误。开发人员通常不知道要运行哪些测试,因此他们要么不运行任何测试,要么运行太少。在这种情况下,他们依赖于构建以运行整个测试套件,因此开发团队在等待构建过程中有关其更改的反馈/验证时处于闲置状态。通过利用测试影响分析,开发团队甚至可以在将代码提交到版本中以验证更改之前找到并运行适当的测试。

测试影响分析还意味着开发人员可以更快地获得有关代码更改的反馈,这些更改会导致CI流程导致测试失败。开发经理希望他们的团队在签入代码之前运行测试,理想情况下,但是通常没有完成。此外,他们希望确保团队在检入代码后尽快知道代码是否通过了任何测试。因此,对于测试影响分析功能而言,跨越CI流程以及开发人员的桌面非常重要。


IDEParasoft Jtest的“受影响的单元测试”视图

那么在实践中这是什么样的呢?在IDE中,当开发人员正在编写代码时,Jtest的“受影响的单元测试”视图提供了一个(动态发展中的)列表,其中需要运行这些测试才能执行在本地更改的代码。然后,开发人员只需要做的就是右键单击受影响的测试并执行它,或者简单地运行所有受影响的测试。


Jtest跟踪已运行的受影响的测试,并清楚显示哪些已通过和哪些失败,从而使开发人员可以轻松确定哪些测试仍需要运行,或者哪些测试已失败并需要解决。一旦所有测试都已运行并通过,开发人员将对代码更改更有信心,并可以安全地提交其代码并继续进行下一个开发任务。

专门进行代码测试反馈的工作流旨在提高开发人员桌面的工作效率,使用户可以轻松地识别并仅运行验证本地代码更改所需的测试。在直接部署到生产的模型中,这可以防止将错误分发给最终用户。当一个项目涉及多个团队时,这可以防止其他团队浪费时间进行故障排除和解决问题,而如果在提交代码之前进行了适当的测试,这些问题可以避免。


整合和补充管道工具

如果您无法轻松将其集成到现有工具链中,则这些工具将无法使用。Parasoft Jtest支持GitSVN源代码管理以及其他源代码控制系统中的项目。EclipseIntelliJ都存在IDE集成。 Jtest提供了MavenGradle插件,这些插件可以集成到CI构建作业中,该CI运行作业作为MavenGradle构建的一部分运行测试。

通过确定自基线构建以来哪些代码已更改(通常被配置为最近一次夜间构建),然后确定需要运行哪些测试以执行该代码,然后配置这些插件,可以将它们完全自动化以测试套件只是那部分测试。这使团队可以设置仅基于最新代码更改运行测试的CI作业,从而使他们可以将运行CI作业所需的时间从数小时缩短至几分钟。

作为最佳实践,团队可以每晚运行全套单元测试,并在日常(临时)构建中利用测试影响分析。这使得Parasoft Jtest对于具有长期运行的测试套件的团队特别有用,他们可以在提交代码后几分钟内从相关测试中获取结果,从而获得真实的CI。如果无法执行此操作,则错误的代码更改可能会导致无法快速捕获到的回归,从而可能潜入生产环境或干扰其他团队成员的工作。

通过将资源准确地集中在需要测试的内容上,开发团队可以快速有效地运行测试,以不断地验证他们要检入的代码——在漏洞和安全漏洞未完全生成之前就将它们捕获。




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Parasoft Jtest

专业针对Java语言的开发测试方案,可无缝集成Parasoft SOAtest

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat