跳至正文
首页 » 博客 » Writing Tests doesn’t have to be extra work

Writing Tests doesn’t have to be extra work

编写自动化测试有点像软件开发社区的kale。除了一些偏远的 “离开我的草坪” 类型外,几乎普遍认为这是 “正确的事情”。这就留下了几个不同的阵营。

相当于吃快餐的食肉动物会说,“是的,这是我们应该做的,但这不适合我。”受渴望困扰的健康意识强的人说: “我们尽最大努力编写测试,但有时我们只是太忙而不能。”然后,最后,相当于健康坚果的人说,“我一直在写测试,不能以其他方式想象生活。”前两个阵营中的许多人可能不相信这一说法。我能理解,我自己,因为很难想象在一个卡路里和胆固醇都不算数的宇宙中,把炸鸡当羽衣甘蓝沙拉。

然而,当涉及到自动化测试时,我是那个 “健康疯子”。我实践了测试驱动开发 (TDD) ,发现它节省了我的时间,让我在我工作的项目上更有效率。

正是由于这种趋势,我想谈谈我在行业中听到的一个共同的观点。我怀疑你以前听过这些陈述的变体。

  • “我们开始写一些测试,但我们落后于计划,不得不赶时间,所以我们停了下来。”
  • “TDD没有意义在早期阶段的这个项目,因为我们只是原型。”
  • “我们不想编写任何测试,因为有可能这些代码可能会被扔掉,我们只会写两倍的代码。”

这里的共同点是,当橡胶遇到道路时,编写自动测试是一个奖励。在软件开发的世界中,核心活动是编写可执行源代码并进行部署,严格来说,其他任何事情都是可以消耗的。你真的不需要写文档,生成自动测试,通过QA,更新甘特图中的项目里程碑,等等。所有这些都是食物世界中的羽衣甘蓝-您只需要吃任何种类的食物,但是如果您有心情并且有时间去杂货店,那么您就会吃羽衣甘蓝,等等。

但是,如果您真正将TDD内化为不仅仅是 “正确的事情”,而是 “使您富有成效的事情”,那么您就不会以这种方式看待世界。你现在是一个喜欢羽衣甘蓝的吃羽衣甘蓝的人。您首先以与使用您最喜欢的IDE/编辑器相同的方式编写测试,其中所有自定义的快捷方式和语法突出显示都是如此排列的-因为这样会更好。编写和依靠测试就像编译代码一样,成为开发不可或缺的一部分。在这种情况下,重新想象前面的陈述。

  • “我们开始编译代码,但我们落后于计划,不得不赶时间,所以我们停止了。”
  • “编译没有意义在早期阶段的这个项目,因为我们只是原型。”
  • “我们不想编译,因为有可能这段代码可能会被抛出,我们只是在浪费时间编译。”

这听起来很荒谬,很明显。但为什么听起来很荒谬?嗯,这是因为定期确保代码构建,并且你不会堆积语法错误就是你所做的。要求你不要这样做会让你离开你的游戏,你会感到困惑,有人会认为要求你这样做。

这就是当我听到这样的关于自动化测试的陈述并想象将它们应用到我自己的方法中时的感受。它只是不会工作得很好。而且,如果您发表这样的声明,则表明您正在 “我要尝试吃羽衣甘蓝,但是当我度过漫长的一天时,我只想要一个汉堡和一杯啤酒,而您却让我一个人呆着”。您还没有将自动化测试内部化到不可或缺的地步。

你知道吗? 没关系.

达到内化的程度并不容易,需要大量的练习。甚至可能不是你想做的事情。我个人认为,内化它有可能让你更有效,但很明显,我不是无所不知的,我也不知道

如果你不在这一点上,那么当你在压力很大时发表偏离测试的声明时,你是对的。如果自动化测试套件确实是您世界中软件交付之外的奖励,那么当压力很大并且必须满足截止日期时,放弃它是绝对合理的。我明白.

但作为交换,我想请你理解并承认一件事: 自动化测试并不是每个人的 “奖金”,也不一定要适合你。

想要构建具有高性能控件的桌面、移动或web应用程序?下载终极免费试用版今天或联系我们看看它能为你做什么。

</p