当前位置:  开发笔记 > IOS > 正文

在LARGE项目上启动UnitTesting

如何解决《在LARGE项目上启动UnitTesting》经验,为你挑选了3个好方法。

任何人都可以推荐一些关于如何解决启动UnitTest大型现有CodeBase问题的最佳实践吗?我目前面临的问题包括:

巨大的代码库

ZERO现有的UnitTests

类之间的高耦合

复杂的OM(我在这里做的不多 - 这是一个复杂的业务领域)

缺乏编写UnitTests/TDD的经验

数据库依赖

外部源依赖项(Web服务,WCF服务,NetBIOS等)

显然,我明白我应该从重构代码开始,使它更少耦合,更可测试.但是,如果没有UnitTests(鸡和鸡蛋,任何人?),进行这样的重构是有风险的.

另外,您是否建议在Domain类或层级类(日志记录,实用程序等)上启动重构和编写测试?



1> philant..:

首先,我是第二个"有效地使用遗产代码"的建议,Jeffrey Frederick给出的建议.

正如您在问题中所述,您无法更改代码,因为您目前没有可用于检测回归的单元测试,并且您无法添加单元测试,因为您的代码库不是单元可测试的.在这种情况下,您可以创建特征测试:端到端自动测试,可帮助您检测软件外部行为的变化.一旦到位,您就可以开始慢慢修改代码.

但是,将您的巨大代码库置于测试之下是一项巨大的努力,风险很高,而且您可能会让团队在执行此操作时耗费精力,因为他们必须在测试覆盖率方面做出强有力的努力并获得低回报.将整个代码库置于测试之下是一项无穷无尽的努力.

相反,从代码库开发新功能,这样就不会妨碍你.完成新代码测试后,将其集成到代码库中.

还要尝试在每次修复代码库中的问题时创建单元测试.这将是第一次很难,但一旦你准备好设置一些单元测试环境,它会变得更容易.



2> Jeffrey Fred..:

缺乏编写UnitTests/TDD的经验

我认为这是最重要的.

标准建议是首先开始为所有新代码编写单元测试,以便在尝试对现有代码进行单元测试之前学习如何进行单元测试.我认为这在理论上是很好的建议,但在实践中很难遵循,因为大多数新工作都是对现有系统的修改.

我认为你可以获得一名"球员教练",一个可以与你的团队一起完成项目并在应用过程中教授技能的人.

而且我认为我有法律义务告诉你让Michael Feather 有效地使用Legacy Code.



3> takacsot..:

管理它的书中有很好的建议!约翰娜罗斯曼

我还可以重新考虑以下内容:

    在新创建的源代码段上使用单元测试

    为bug创建单元测试

    为应用程序中最危险的部分创建单元测试

    为应用程序中最有价值的部分创建单元测试.

    如果耦合太高,则创建测试,这是更多的模块或集成测试,但是自动化.

单个单元测试无济于事.但它需要开始.之后,将对应用程序中最危险的部分进行一些单元测试,这将有助于防止这些部分中的错误.当你到达这一点时,大多数开发人员将意识到单元测试的有用性.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有