Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 在经济时代,作为一个团队开始单元测试_Unit Testing_Tdd - Fatal编程技术网

Unit testing 在经济时代,作为一个团队开始单元测试

Unit testing 在经济时代,作为一个团队开始单元测试,unit-testing,tdd,Unit Testing,Tdd,我们有一些开发人员和一些业务分析师。作为开发人员,我们希望开始添加单元测试,作为我们编码实践的一部分,以便我们能够提供可维护和可扩展的代码,特别是因为我们将来也将支持和增强应用程序。但在这场经济衰退中,我们正奋力起步,因为我们面临的挑战是尽快提供解决方案,而质量并不是首要任务。我们可以做些什么或说些什么来表明我们能够更快、更高质量地交付,并为未来的增强做好准备 基本上,我们只需要克服将单元测试纳入日常工作的学习曲线,但我们现在不能这样做,因为它被视为一种不必要的开销,会延迟业务现在需要的项目 作

我们有一些开发人员和一些业务分析师。作为开发人员,我们希望开始添加单元测试,作为我们编码实践的一部分,以便我们能够提供可维护和可扩展的代码,特别是因为我们将来也将支持和增强应用程序。但在这场经济衰退中,我们正奋力起步,因为我们面临的挑战是尽快提供解决方案,而质量并不是首要任务。我们可以做些什么或说些什么来表明我们能够更快、更高质量地交付,并为未来的增强做好准备

基本上,我们只需要克服将单元测试纳入日常工作的学习曲线,但我们现在不能这样做,因为它被视为一种不必要的开销,会延迟业务现在需要的项目

作为开发人员,我们希望为业务提供最高的价值,尤其是快速,但我们知道,我们也需要在6个月后完成这项工作,我们也需要为此制定计划,我们相信单元测试将极大地帮助我们实现这一目标

编辑
所有精彩的输入,谢谢。我个人知道如何编写单元测试,但我没有经验来判断单元测试是否好。我刚刚订购了这本书,并将主动将单元测试纳入我们的团队。

我想推荐这本书


这本书也是一本好书,虽然它更多地关注C#和NUnit,但有些主题是适用于语言无关的

你需要在获得或未经许可的情况下开始编写。最终,它将使您的工作效率更高,并提高代码质量。你可以从小事做起,为一些关键的事情加入单元,一旦你展示了这些好处,你就加入了。

我知道这对你来说可能并不容易,但我相信让你的团队中受测试感染的人向你展示方法是在引入测试时保持生产力的最简单方法。您的员工显然需要了解这些概念,他们可以通过阅读书籍或参加用户组来了解这些概念。受测试感染的开发人员可以向您展示如何在实际的日常工作中做到这一点,同时将生产力损失降至最低。如果你的速度立即提高,我也不会感到惊讶,但我不会做出这样的声明。随着测试经验的积累,也会有关于可测试设计的知识,我认为这是关键。

就这么做吧

如果这是您个人处理任何新代码的过程的一部分,那么您至少会涵盖它。您可能永远不会获得添加单元测试以覆盖所有代码的权限,但您至少可以确保未来的更改不会从给定的时间点撤消工作

从业务的角度考虑,为什么您需要编写代码来证明您已经编写的代码是正确的?为什么错了


获得100%的覆盖率是很好的,但是要慢慢来,不要为当前没有错误的现有代码编写测试;在函数或类中断时编写测试,这样至少不会无意中撤消某些内容。

在创建函数或类时开始单元测试。从没有外部依赖关系(DB、文件系统)的简单类/函数开始

在团队中分享你的进步。计算测试的数量并显示一个大图表显示您的进度(除非管理层/分析师非常反对单元测试)


阅读关于TDD:“”。编写测试首先会产生易于测试的代码。如果您先编写生产代码,您可能很难对其进行测试

你甚至不需要与管理层讨论这个问题(尽管你描述的情况远非理想)。这就像契约式设计——我在以前的代码中引入了它,只是作为开发过程的一部分。相信我,一旦它进入,并且起作用,没有人敢移除它

单元测试也可以看作是开发的一部分。因此,如果您有“20天”的时间来开发特性A、B和C,您通常可以在开发本身的估计中包括单元测试

进行单元测试非常容易。与多线程问题或任何类型的复杂设计相比,单元测试对于任何有能力的开发人员来说都非常容易掌握

比如说,你可以在半天内阅读关于它的优秀文献(网上有几十篇教程),然后在下午开始做第一次测试


真的-就这么做吧

这肯定是有益的,但我们团队中目前没有这样的人。