单元测试的商业案例——第1部分


多年来,单元测试在软件开发领域已经变得越来越主流。但是,这并不意味着我们已经实现了普遍采用。

软件团队和整个组织仍然因为各种各样的原因而存在。其中包括以下内容:

  • 开发人员想这么做,但他们不知道怎么做。
  • 开发商,或者至少是最有影响力的开发商,实际上并不想这么做。
  • 团队缺乏时间,所以从单元测试开始的优先次序从来没有发生过。
  • 管理层不接受。

这些理由中的每一个都有自己的道理,但今天我想集中讨论最后一个。具体来说,我想集中精力反对这个想法,并为单元测试建立一个业务案例,您可以向管理层展示。单元测试有代价。团队必须学会去做,把它融入到他们的过程中,熟悉它,并且记住时间就是金钱。但是,我要在这里说,这是值得的投资。

单元测试有利于良好的开发实践。让我们看看为什么它也有利于商业。

1.您减少了总缺陷数,尤其是回归缺陷

首先,让我们看看单元测试套件最明显的好处之一。它减少了缺陷。

从概念上讲,我认为这对任何人都有意义。当你做更多的测试时,你会在生产中遇到更少的意外挫折。但是,单元测试套件在哪里事实上普照擅长反击regression defects,你所做的事情破坏了一点一直有效的功能。单元测试提供了这方面的早期警告,防止许多潜在的问题影响部署。

较短的问题/缺陷列表不仅仅让团队感觉良好——它们节省了公司的资金,因为事实上提前而不是推迟纠正问题的成本更低。此外,它还涉及更少的人,修复仍在开发中的代码的缺陷不一定需要支持人员或任何关注产品的人。

2.您降低了部署风险

你知道多久一次吗Facebook pushes code into production?截至六年前,这是“真的经常”,所以人们只能想象,现在的答案是“不断。”

多久一次你们将软件推向生产?

每隔几周?每隔几个月??不管它有多频繁,它可能并不像它可能的那样频繁。

现在,虽然脸谱网有各种各样的流程和工具来实现这种节奏,但我不能夸大自动化测试在这个等式中的重要性。如果没有各种自动化的质量检查,他们根本不可能像现在这样频繁地部署,因为这太冒险了。

单元测试通过降低部署风险来帮助您实现业务,这样您就可以更频繁、更自信地进行部署。

3.您将花费更少的时间进行故障排除

在查看更少的缺陷如何节省业务资金时,我提到了花更少的人的时间来解决缺陷。这包括支持人员、质量保证人员和潜在的产品或项目管理人员。但是,您也节省了大量开发人员的工作。

想象两种情况。在一个场景中,你写了一点代码,启动了应用程序,发现它并没有达到你的预期。你快速调整,然后继续前进。

在场景二中,一个生产缺陷报告进入你的队列。“哇,我九个月前就写了这段代码,”当你开始思考到底出了什么问题时。

你认为这两种情况中哪一种会减少你在这个问题上花费的时间?

单元测试套件将缺陷的优势推回到场景一,从整体上节省了团队的时间和金钱。

4.开发者反馈环收紧

说到为开发团队成员节省时间,让我们看看另一个相关的好处。这个很微妙但很重要。

同样,让我们考虑两种情况。在第一个示例中,您正在测试刚刚编写的一些代码。为了看它是否工作,你编译你的整个代码库,这需要一点时间。然后,在调试模式下启动应用程序,导航菜单和表单,直到到达您想要测试的特定场景。也许,这需要几分钟的时间。

现在,想象场景二,你刚刚写了同样的代码。但是,在第二种情况下,你只需要一秒钟就可以得到一个绿色通过或者红色失败,而不需要启动应用程序和处理图形用户界面。

这就是所谓的收紧反馈回路。现在,想象一下这种跨越数百个功能点和您整个团队或团队的紧密反馈循环的业务影响。那是相当可观的节省!