C# 单元测试的价值
下面是一些典型的答案(按陈词滥调的升序排列),每当我提到单元测试和代码覆盖作为开发周期的一个组成部分的重要性时,我都会从经理/老板那里得到C# 单元测试的价值,c#,.net,unit-testing,C#,.net,Unit Testing,下面是一些典型的答案(按陈词滥调的升序排列),每当我提到单元测试和代码覆盖作为开发周期的一个组成部分的重要性时,我都会从经理/老板那里得到 “这是QA的工作,只需关注功能和开发” “该应用程序不是任务关键型的,如果有一些bug,那也不是世界末日” “我们负担不起花时间进行单元测试” “尽量不要太花哨” 尽管有做好工作的最佳意图,但在一天结束时,当责任游戏到来时,负担最终落在开发者身上 我经常看到生产中出现问题,其中一些问题可以通过运行单元测试静态捕获这些错误来避免 我只是想和大家谈谈,看看人们的
更新:感谢大家提出了很多有见地的建议。我希望我能选择几个答案作为正确答案。人们听他们的钱包。展示通过尽早捕获bug可以节省多少时间。将其转化为美元储蓄 关于#3,在单元测试上花费时间很可能会缩短整体上市时间。伟大的文章-对我来说,采用单元测试的最大好处是,我可以改变我的编码行为,使其更易于测试,换句话说,以更松散耦合的方式 如果由于管理问题,您无法在实际项目中实践单元测试,我会选择在一些小型玩具项目上进行实践,只是为了强迫自己找到一种方法来编写可测试代码,即使没有单元测试
我自己的2美分。我简短而不完整的建议是:
- 换工作就行了。如果一家公司的经理给出了这样的答案,那么它无论如何都会失败,而且很快就会失败。趁现在还不太晚,赶紧出去
- 扭转指责的局面。每次在没有进行单元测试的情况下发布某些内容时,都要做出一个官方声明,说明它已经完成了,并且您不能保证它没有bug
- 写下您在任务上花费的时间,分离部署失败后的bug修复,并根据(潜在)编写单元测试的时间分配进行合计
- 实施测试所花费的时间 基础设施(无严重问题的产品) 单元测试可以在没有 测试特定的基础结构代码 这简化了特定产品的流程 测试模式、测试数据 创建/删除等)李>
- 花在编写实际测试上的时间李>
- 花在复习和学习上的时间 支持性测试李>
- 等等
- 没有任何虫子会在没有任何迹象的情况下再次出现李>
- 未通过单元测试,不发布主要功能李>
- 对于大多数bug,周期开发qa修复bug被减半:开发单元测试修复bug李>
- 等等
静静地;) 另外一个想法是对这个线程的其他优秀评论进行补充(其中许多我都投了赞成票):确保您的管理层知道单元测试在这一点上是高度自动化的。我发现在屏幕上弹出NUnit,点击“全速运行”按钮,看到数十个绿灯亮起的测试在几秒钟内通过,这给我留下了深刻的印象。这样做一次,说“这验证了我所有的旧作品仍然是正确的,尽管我所有的新的变化”,你可能会赢得一些转化。在任何情况下,他们都会比其他人更信任你——用你看得见的质量证明。这只会对你的职业生涯有好处。经典的回答是,你越早发现一个bug,修复它的成本就越低,我认为大多数管理者都会认同这一点
正如Mark所说,展示一些具体的东西是说服PHB相信某些东西是好的最好方法,因为他们习惯于听别人说话,并且可能不知道单元测试和其他测试之间的区别。大多数管理者在看到单元测试的实际效果之前,不会看到单元测试的优势,所以我的建议是,根据经验,应采取以下ff步骤: