为什么自动化测试可以提高您的开发速度

许多反对编写自动测试的批评家直接解决了对它们进行编码所需要的额外时间,或者可以将这些时间花在编写新功能上。 编写测试肯定​​需要时间,尤其是对单元测试不熟悉的开发人员将需要投入更多。

尽管该方法(测试优先或测试后)在投入时间的效率和测试结果的质量中起着主要作用,但在本文中,我想强调一下自动化测试策略引入的一些立即可见的改进关于发展速度。

功能验证

在开发过程中,您不断地粗略地验证所实现的代码是否按预期工作。 考虑到Web应用程序环境,这意味着要在浏览器中启动该应用程序并检查是否一切正常。 这需要付出很大的努力 ,您需要打开浏览器,在UI中单击以到达已实现功能生效的位置,然后验证相应的输出。 如果还不行,则需要重复该循环。 这需要时间!
相反,使用测试驱动的方法,您将

  • 编写一个小型测试,实例化您的对象,调用(例如)您在其上编写的方法并声明相应的结果。
  • 检查无论您的xUnit框架是什么,条形/点是绿色还是红色
  • 如果是红色,请更改您的实现,然后重新运行笔试等。
请注意您在此处节省了多少时间:不要打开(等待)浏览器,不要单击虚拟按钮。

每当您想在打印语句或调试器表达式中键入内容时,请将其编写为测试。
马丁·福勒

回归测试

许多人没有立即看到的是,在构建回归测试套件方面,每次使用新测试都可以节省大量时间。 使用您编写的每个新测试,此测试套件将变得越来越大,并且涵盖了应用程序更多的功能。 然后,通过重新运行所有书面测试,每次实施某项操作时,您都将在几秒钟内重新验证所有现有逻辑,并执行数百种不同的方案。 想象一下,如果没有自动测试方法,这意味着什么? 我怀疑您是否在通过UI快速点击;)。

虫少了?
这实际上取决于测试的质量和整个测试范围。 有很多论文分析这种关系。 根据我的经验,我可以说这肯定具有积极作用。 我所看到的是错误的类型在改变。 您将遇到较少的源代码缺陷(即缺少空引用检查)。 通常只剩下一些小错误,这些小错误很快就会修复,而这些小错误是由于客户和开发人员之间的误解而产生的。

不足之处…
与每件事一样,也有缺点。 通常的经验法则是“编写的代码越少,维护的次数就越少”。 测试可以在产品维护阶段帮助您,同时可以修复错误或扩展新功能,因为它们为您提供了一个安全网,可确保您不破坏任何现有产品。 但另一方面,编写测试意味着还要编写还需要 维护的 其他代码 ! 因此, 需要学习编写良好的,可维护的测试,并且不应低估学习曲线。

因此,尝试一下单元测试,不要立即放弃。 最初的学习阶段将非常艰巨,但是一旦掌握了它,就不能再没有它们了;)。

参考: 为什么自动化测试可以帮助我们的JCG合作伙伴Juri Strumpflohner 加快您的开发速度

相关文章:


翻译自: https://www.javacodegeeks.com/2011/04/automated-tests-boost-development-speed.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值