解读TDD的五大误区
作者:网络转载 发布时间:[ 2013/2/16 13:35:30 ] 推荐标签:
摘要:所谓TDD简单地说是以下两个步骤:确保所有的需求都能被照顾到;在代码不断增加和重构的过程中,可以检查所有的功能是否正确。本文我们一起来看下关于TDD的五大误区。
TDD(全称Test Driven Development)测试驱动开发,是一种软件开发的流程,其由敏捷的“极限编程”引入。其开发过程是从功能需求的测试用例开始,先添加一个测试用例,然后运行所有的测试用例看看有没有问题,再实现测试用例所要测试的功能,然后再运行测试用例,查看是否有case失败,然后重构代码,再重复以上步骤。
其理念主要是确保两件事:
● 确保所有的需求都能被照顾到。
● 在代码不断增加和重构的过程中,可以检查所有的功能是否正确。
原文作者Adam Bar在拜读了Bradley Braithwaite的文章后引发了一些思考,对此,他补充了对TDD的一些看法,列举出TDD的五大误区。以下是文章译文:
1、即使没有单元测试,也比有单元测试做的差要好。 (It's better to have no unit tests than to have unit tests done badly )
2、利用代码测试能够产生许多高效的代码且代码看起来更加可靠、实用。
一、不要使用Mocking Framework VS 太多测试设置
也许有人会说,这两点很矛盾,因为使用Mocking Framework会导致产生过多的测试设置。这需要我们保持一个良好的平衡问题。
测试代码势必会产生一些依赖关系,倘若不使用Mocking framework,那么我们将无法进行单元测试。这一点是肯定的。
这里例举有关代码测试和数据库的例子——我们通常称之为集成测试、half-arsed测试,这也是测试查询本身可靠的方法。
但是,在大多数情况下,我们使用stubs,避免使用mocks——两者之前的区别非常重要。Mocks作为一种行为测试工具常被用来执行检查过度使用的自定义测试,同一个人在同一时间编写代码,如同检查我们刚刚故意创建的设计一样。 TDD导致大量的Mock和Stub。Test Case并不一定是那么容易的,如果你的Test Case中的Mock可能是错的,你需要重写他们。也许你会说,算是不用TDD,在正常的开发过程中,我们的确需要使用Mock和Stub。没错!的确是这样的,不过,记住,我们是在实现代码后来决定什么地方放一个Mock或Stub,而不是在代码实现前干这个事的。所以,TDD中,Test Case是开发中重要的环节,Test Case的质量的问题会直接导致软件开发的正确和效率。
我们更加关注的是真实的验证结果(stubs将带给你很多帮助),而不是通过耦合来实现。 没有什么比维持一个测试套件和spaghetti-flavoured mock 装置更糟糕的事了。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11