测试遗留代码,第1部分:如何开始

I am starting this miniseries which is a continuation of my previous article on why 一世 think legacy codebase should be tested. I will be more general in this part, but later I will be mostly writing about practical tips when working with Java codebase.

意图很明确,如果您听起来很熟悉,那么您应该可以从中受益:

  • 您正在维护大型代码库您正在重构旧组件(重写逻辑,升级)您无权访问代码历史记录(公司中不存在原始开发人员,VCS历史记录不可用或存储库已迁移等)您没有文档,或者已过时

How to start?

Static code analysis

In a situation like this you need to have systematic approach. First of all I recommend installing any of the tools for static code analysis. I cannot really tell why, but most legacy projects I've helped maintain/improve suffered from huge technical debt. In other words, code quality was some abstract term and static analysis was completely missing. I have found useful installing dedicated instance of SonarQube, that would be accessible to your team. Setting up quality gates should be individual, but I strongly recommend leaving at least standard configuration enabled.

为什么这很重要?

通过这种分析,您可以深入了解代码的实际错误以及可能发生潜在问题的地方。 然后,您可以针对这些问题创建测试方案。 例如潜力空指针异常或不正确关闭流的问题。 此时,您应该将它们作为红旗这将使您指向系统的那一部分,应该优先处理。

SonarQube可以为您提供有关覆盖率的详尽报告,因此,如果您的目标是寻找好的测试候选人这是开始的地方。 它也非常容易设置,对于非技术人员(图表等),好处也显而易见。

Individual code analysis

您还需要在个人分析上投入一些精力。 这些是我通常对遗留代码的观察:

  • 代码不可单元测试(大型方法-无单元,类承担过多责任,缺少依赖注入,复杂的类层次结构等)业务逻辑很复杂,需要大量的测试数据准备需要外部库或第三方应用程序才能执行某些操作(外部API,数据库等)

当您尝试使用简单化方法时,所有这些都是潜在的破坏交易者。 上面的所有问题都可以通过一定的代价得到缓解,但是在此阶段,您应该专注于掌握有关要测试的系统的哪些信息。

Follow the thread

无论是Web应用程序还是集成项目,都应准备一些方案,以复制实际使用情况。 例如。 如果执行不清楚,则至少应该清楚系统的整体功能。

例如,如果应用程序公开了公共API,则从编写API测试开始。 如果它是后端“数据处理”系统,请尝试提供可能的测试/预期数据,依此类推。 通常你应该找我喜欢的东西最少模糊的黑匣子。 它是具有已知功能但实现未知的组件。

它为什么如此重要?

没有这种分析,您将不会取得太大的成功。 机械测试某些内容可能不会发现实施中的问题,因为您最终可能会进行以下测试:测试错误的实现。 如果很清楚,则应该始终使用场景。

Putting it all together

根据您的结果,您应该能够提出以下孤立的案例:

  • 要测试的功能(作为任务制定)当前的测试范围(生成的报告)实施中可能存在的错误(来自静态和单个代码分析的摘要),这将有助于区分大小写根据可用的知识(重要性,使用频率,外部依赖性等)单独评论

准备好这些案例后,就可以开始实施测试了。 在下一篇文章中,我将针对特定的问题和可能的解决方案。

from: https://dev.to//rapasoft/testing-legacy-code-part-1-how-to-start-2km7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值