锁定老帖子 主题:什么是“测试驱动开发”
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-04-27
partech 写道 就我看来,写单元测试和写实现,都是设计的过程。
单元测试意味着,设计元素的契约部分。实现意味着,设计元素的结构部分。契约是结构必须满足的充分必要条件。 测试只是设计元素中契约的一部分。叫做“外部契约”?所以不能算作充要条件。有些契约,需要通过DBC表达。测试是对DBC的良好补充和表达。 |
|
返回顶楼 | |
发表时间:2006-04-29
partech 写道 partech 写道 就我看来,写单元测试和写实现,都是设计的过程。
单元测试意味着,设计元素的契约部分。实现意味着,设计元素的结构部分。契约是结构必须满足的充分必要条件。 测试只是设计元素中契约的一部分。叫做“外部契约”?所以不能算作充要条件。有些契约,需要通过DBC表达。测试是对DBC的良好补充和表达。 契约主要包括那些东西?需求-问题域的探究是不是所说的契约的一部分?或者说契约是问题域和实现域之间的一个桥梁?那单元测试是不是可以认为是契约的一种实现? 不知道DBC中是怎样看待单元测试的。 |
|
返回顶楼 | |
发表时间:2006-05-15
测试驱动似乎不适合大粒度的分析设计,因其关注层次过低,过多的关注琐碎细节,不能灵活变更抽象层次。
|
|
返回顶楼 | |
发表时间:2006-05-30
测试驱动开发:具体表现是通过先写测试类来实现功能列表,同时写出接口;然后完成实现。实质是指:集中思想先把真正的功能明确,对于功能实现有一个优化和约束。
|
|
返回顶楼 | |
发表时间:2006-05-30
开发方法学这东西,要实践了才知道它内部所蕴涵的东西。很多东西想当然是想不出来的。我说TDD能促进优美构架的形成,你信么?
|
|
返回顶楼 | |
发表时间:2006-06-09
robbin 写道 TDD是修改功能代码之前,先修改测试来表达你的实现方式,然后运行测试,fail,再修改功能代码,再运行测试,直到测试通过,则证明你的修改完成。
\ 很同意robbin说的话,简短。精辟。说中要害。 首先我觉得我们不要被tdd这个思想吓着。也不能千遍一律,死套模式。自己不能被一些筐筐架架套死。 意思就是说:东西是死的,人是活的。 鄙人说得不对之处,希批评! |
|
返回顶楼 | |
发表时间:2006-12-14
写代码之前先写测试来表达功能,这个功能怎么实现的好不好先不考虑,通过测试先,这样如果测试写的不够或者不到位,那实现就有可能是有漏洞的,不过感觉如果先写测试的话,就可以保证写的功能代码都是可测的,结构都是比较好的,这就是TDD的目标?开发速度上来讲,我也不知道能否快,能快多少?
|
|
返回顶楼 | |
发表时间:2006-12-14
江南白衣 写道 firebody 写道 每个method不超过5行,那是一个玩笑话。 真的不可能。
是每个method不超过3行,而且似乎不是玩笑,是先进经验介绍。 无法避免的问题就是方法调用层次太过繁杂,怎么就能够提高代码的可读性吗?或者代码的可读性在TDD中完全不是一个需要考虑的东东? |
|
返回顶楼 | |
发表时间:2006-12-15
gKarerM 写道 江南白衣 写道 firebody 写道 每个method不超过5行,那是一个玩笑话。 真的不可能。
是每个method不超过3行,而且似乎不是玩笑,是先进经验介绍。 无法避免的问题就是方法调用层次太过繁杂,怎么就能够提高代码的可读性吗?或者代码的可读性在TDD中完全不是一个需要考虑的东东? 上饭店我说...一盘宫爆鸡丁....一盘鱼香肉丝....一碗米饭....一杯茶....请快点... Job说...宫爆鸡丁...不要辣子...多放点盐....花生要剥过皮的...鸡肉要现放进去的.....花辣用我带来的....等等...之后小二只上了宫爆鸡丁没上米饭与茶...只是忘记了.... |
|
返回顶楼 | |