通过持续测试改善您的Feedbackloop

您是否曾经了解过软件开发中最有价值的东西是什么? 我不是在谈论对您个人有价值的事情,而是对开发本身的成功有意义。 好吧,我已经考虑过了,对我来说,它是任何形式的反馈。 这很重要,因为它可以进行转向。 开发实践是为了获得更好的反馈。 TDD,持续集成,迭代,仅命名视图。 许多敏捷方法和XP基本上都是关于更好的反馈。

它始于客户互动。 我需要尽可能多的反馈。 如果我没有得到反馈,我很可能走错了路,导致产品不再使用,因为这不是客户所需要的。 我得到的反馈越多,结果就会越好。 如果我很少收到反馈,则无法控制。 我被迫做出可能只是障碍的假设。 我获得反馈的速度越快,我就可以更快地为客户交付价值。 反馈使我能够驾驭。

反馈对于编程同样重要。 我想早点经常这样做。 如果我编写数百行代码而不运行它们,则它们很可能会导致非常漫长且痛苦的调试会话以及许多更改。 我不想要那个,所以我采取了一些小步骤。 它们使我变得更安全,更快,更快乐。 有两个阶段定义了我的编程反馈循环。

  1. 我编写代码的阶段。 让我们称它为alpha,就像“α”一样。
  2. 我评估代码并最终修复错误的阶段。 让我们称它为beta,就像“β”一样。

您还可以将这些阶段视为模式。 在这里重要的是要了解,这些阶段与软件周期的alpha / beta定义无关。 我只是发明它们来描述我的编程反馈循环。在下面的图形中,您会注意到示例中的代码行越来越短,这是有意的,应指出使用新策略后我会变得更快。

当我第一次开始编码时,我没有编写任何测试。 在手动尝试之前,我写了很多代码。 显然,当我第一次运行它时,它不起作用。 我最终经历了相当长的α阶段(我只是编写代码),也经历了很长的β阶段(我进行了评估(得到了我的反馈)并修复了它)。 像这样:

慢
那时我很慢。

我很快开始使用一种解释性语言,这种语言非常酷,因为我可以立即运行脚本。 无需编译或任何东西。 只需编写并运行。 它缩短了我的反馈循环,使我的整体速度更快:

介质

迟早我最终开始了tdd。 而且,无论我使用或不使用哪种语言,它都再次缩短了我的反馈循环并使我走得更快。 循环缩短为一个“单元”,显然比任何手动执行的单元都要小。 在程序甚至无法运行之前,它就使我能够评估小的行为。
重要的是要理解,下图中的α相包含编写测试和实现。 β阶段要短得多,因为单元测试运行非常快。

快速
我以为这很好,而且再好不过了。 我错了! 后来,我尝试了一些使我像这样的事情:

最快的
“什么……?” 你可能会问。 不,我没有打破时空。 我尝试的是持续测试。 基本上,这意味着我会执行tdd,但我不会通过按按钮然后等待来运行测试。 我只是让它们一直在后台自动运行……每次更改代码时,我的测试就会立即自动运行,并在屏幕上的小图标上显示“ OK”或“ NOT OK”。 由于测试仅花费一秒钟的时间,因此此反馈是即时的。 而且由于我的IDE自动将我的文件保存为onchange,所以我不必按ctrl + s或其他任何东西。 我只是编写代码,而在编写代码时,我的文件就被保存了……。并且在保存文件时,我的测试就开始了……流利地,立即地。 这是巨大的。 我现在正在不断进步。 我完全脱离了这些阶段,或者如果您想将它们称为“模式”。 我喜欢它。

我为此使用了无穷大 。 它是Intellij / Eclipse的持续测试插件。 如果您正在使用javascript,我也可以推荐grunt进行连续测试。

翻译自: https://www.javacodegeeks.com/2014/07/improve-your-feedbackloop-with-continuous-testing.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值