TDD Tips

原创 2011年01月09日 17:29:00

How to design the testable software? You may always find some best practices about designing for scalable, extensible or maintainable. To be testable, the best way should be TDD. Followings are some tips from my real practices on TDD.

1 TDD is design process; it let you design for testing, naturally

Write the test firstly, it does not only help you find the bugs; but the most important point is to let you design for test naturally.

Also you should keep in mind, tests not only help you find bugs, but also protect your codes; when some changes impact on your existing codes, the tests will be broken.

 

2 Keep the implementation simple

Keep your implementation simple, just let the test pass. The complex implementation may introduce the logics or codes not covered by the tests, even leads some codes not testable.

 

3 TDD in each scope.

You may get to know the concept ATDD (acceptance test driven development). TDD could be used in every phase of the development and by the different granularity.

To ATDD, you could consider on using some existing framework such as FIT, these frameworks will be bridge between business logic and implementation logic.

Recently, the concept BDD (behavior driven development) is introduced to the ATDD process, so the BDD frameworks such as JBehave is also the good choice.

 


Different TDD process could be nested and should be nested don’t let your step too large.

 

4 keep each step small enough

Always keep each step small to avoid introducing the untestable codes or logics and pass each test quickly.

 

 

6 Always refactor

This step is always overlooked in TDD process; however it is the very important step. Also, never forget refactor should involve all your tests.

 

Why can't write test firstly?

 1.not think how to meature the codes

2. The current step maybe too large, should separate into small ones

3. The codes with ugly dependencies

 

Chao Cai (蔡超)

Sr. SDE

Amazon.com

 

大话TDD,BDD,ATDD的本质

最近在研究软件工程中最佳实践,接触了TDD(测试驱动开发),BDD(行为驱动开发), ATDD(可接受性测试驱动开发)。有一天,在路上走的时候,突然想了一下,他们之间有什么共通点呢?TDD,BDD,A...
  • chancein007
  • chancein007
  • 2017年01月01日 01:06
  • 1360

Android开发:实践TDD的一些建议

最近部分采用了TDD的方法来开发一个模块,小有收获特此总结一下: 1. TDD的基本原则 TDD的最核心思想就是先明确需求,且用代码的方式量化,明确需求标准,然后进行编码实现以达成由代码测试来衡量...
  • hitlion2008
  • hitlion2008
  • 2013年02月12日 16:25
  • 3506

记一种TDD方式:红绿憋,红绿再憋

前段时间看到微博上看到一则冷笑话,讲的是如何画马: 我看到前半截的时候,我还真的在纸上用笔一点点的画,但是当我看到最后一步的时候,What the Fuck!!!...
  • kiwi_coder
  • kiwi_coder
  • 2014年02月23日 14:04
  • 1709

三种TDD开发模式

首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD...
  • IBelieve1974
  • IBelieve1974
  • 2017年01月19日 11:38
  • 1499

TDD和BDD及DDD的解说

转载地址 1. TDD TDD指的是Test Drive Development,很明显的意思是测试驱动开发,也就是说我们可以从测试的角度来检验整个项目。大概的流程是先针对每个...
  • Bennes
  • Bennes
  • 2015年08月25日 10:16
  • 1509

一些关于Web前端的小tips

代码细节
  • DeepLies
  • DeepLies
  • 2017年05月08日 11:41
  • 403

ATDD和TDD的区别是什么?

ATDD和TDD区别
  • weixin_35854729
  • weixin_35854729
  • 2016年09月08日 10:46
  • 561

【Unity Tips】备忘录(扫盲篇)

写在前面 Unity3D虽然是个非常方便的游戏引擎,但还是有一些地方会产生一些让人莫名其妙的问题,而且debug半天也不知道到底哪里错了。往往在经过了大量的log之后,也许我们才顿悟,原来Unit...
  • candycat1992
  • candycat1992
  • 2014年04月04日 14:03
  • 10735

TDD 测试工具 (原创)

TDD 只是一种思想、设计方法论,需要很多工具支持以达到敏捷的效果,基本的测试工具有,比如phpunit   1、phpunit 3.7 安装 清除缓存 pear clear-cache #...
  • chinabluexfw
  • chinabluexfw
  • 2013年08月23日 09:29
  • 924

浅谈TDD、BDD与ATDD软件开发 (敏捷开发模式)

这些知识之前就了解了一点,还没来得急总结,现在总结一下。 1. 首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发...
  • tianyeming
  • tianyeming
  • 2015年04月07日 13:43
  • 2965
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TDD Tips
举报原因:
原因补充:

(最多只允许输入30个字)