加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

将TDD回溯应用到C#代码库的最佳选择

发布时间:2020-05-23 00:01:41 所属栏目:程序设计 来源:互联网
导读:我有一个由5个C#库组成的现有框架,该框架自2006年以来使用得很好,并且是我大多数项目的主要代码库.我公司希望出于软件质量的原因推出TDD;通过许多教程和阅读理论,我了解TDD的好处. 时间不是无限的我需要为实际的方法制定计划.据我所知,我看到的选项是: A)可

我有一个由5个C#库组成的现有框架,该框架自2006年以来使用得很好,并且是我大多数项目的主要代码库.我公司希望出于软件质量的原因推出TDD;通过许多教程和阅读理论,我了解TDD的好处.

时间不是无限的我需要为实际的方法制定计划.据我所知,我看到的选项是:

A)可以使用一个测试项目来重叠来自所有5个库组件的对象.一系列高级测试可能是最初被视为非常大的软件库的起点.

B)5个库组件中的每一个的测试项目.这些项目将在最低级别测试功能,与其他库组件隔离.

C)由于代码被广泛认为有效,因此只需对错误修复或新功能添加单元测试.使用重现错误的步骤编写一个测试,该测试在包含错误的逻辑上失败.然后重新计算代码,直到测试通过.现在您可以确信错误已得到修复,并且以后也不会在循环中引入

无论选择哪个选项,都可能需要“Mocking”来替换外部依赖项,例如:

>数据库
>网络服务
>配置文件

如果有人有任何更多的输入,这将是非常有帮助的.
我计划在Visual Studio 2010中使用Microsoft内置的MSTest.

我们有一百五十行代码库.我们的方法是首先编写一些集成测试(您的选项A).这些测试几乎贯穿整个系统的端到端:它们从存储库复制数据库文件,连接到该数据库,对数据执行某些操作,然后将报告输出到CSV并将它们与已知良好的输出进行比较.它们远非全面,但它们运用了我们的客户依赖我们的软件来做的大量事情.

当然,这些测试运行得非常缓慢;但六年后我们仍然连续运行所有这些(现在分布在八台不同的机器上),因为它们捕获了我们仍然没有进行单元测试的东西.

一旦我们有了一个不错的集成测试基础,我们花了一些时间在系统的高流量部分(你的选项B)中添加更精细的测试.我们有时间这样做,因为我们的代码质量很差.

一旦我们将质量提高到一定的门槛,他们就开始要求我们再做一次真正的工作.所以我们选择了为新代码编写测试的节奏(你的选项C).此外,如果我们需要对尚未进行单元测试的现有代码进行更改,我们可能会花一些时间在开始进行更改之前用测试覆盖现有功能.

您的所有方法都有其优点,但随着时间的推移,您获得测试覆盖率,相对收益将会发生变化.对于我们的代码库,我认为我们的策略很好;集成测试将有助于捕获您在尝试破坏依赖项以添加单元测试时所犯的任何错误.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读