论坛首页 综合技术论坛

什么是“测试驱动开发”

浏览 71082 次
该帖已经被评为精华帖
作者 正文
   发表时间:2006-04-27  
partech 写道
就我看来,写单元测试和写实现,都是设计的过程。
单元测试意味着,设计元素的契约部分。实现意味着,设计元素的结构部分。契约是结构必须满足的充分必要条件。

测试只是设计元素中契约的一部分。叫做“外部契约”?所以不能算作充要条件。有些契约,需要通过DBC表达。测试是对DBC的良好补充和表达。
0 请登录后投票
   发表时间:2006-04-29  
partech 写道
partech 写道
就我看来,写单元测试和写实现,都是设计的过程。
单元测试意味着,设计元素的契约部分。实现意味着,设计元素的结构部分。契约是结构必须满足的充分必要条件。

测试只是设计元素中契约的一部分。叫做“外部契约”?所以不能算作充要条件。有些契约,需要通过DBC表达。测试是对DBC的良好补充和表达。

契约主要包括那些东西?需求-问题域的探究是不是所说的契约的一部分?或者说契约是问题域和实现域之间的一个桥梁?那单元测试是不是可以认为是契约的一种实现?
不知道DBC中是怎样看待单元测试的。
0 请登录后投票
   发表时间:2006-05-15  
测试驱动似乎不适合大粒度的分析设计,因其关注层次过低,过多的关注琐碎细节,不能灵活变更抽象层次。
0 请登录后投票
   发表时间:2006-05-30  
测试驱动开发:具体表现是通过先写测试类来实现功能列表,同时写出接口;然后完成实现。实质是指:集中思想先把真正的功能明确,对于功能实现有一个优化和约束。
0 请登录后投票
   发表时间:2006-05-30  
开发方法学这东西,要实践了才知道它内部所蕴涵的东西。很多东西想当然是想不出来的。我说TDD能促进优美构架的形成,你信么?
0 请登录后投票
   发表时间:2006-06-09  
robbin 写道
TDD是修改功能代码之前,先修改测试来表达你的实现方式,然后运行测试,fail,再修改功能代码,再运行测试,直到测试通过,则证明你的修改完成。

\

很同意robbin说的话,简短。精辟。说中要害。
首先我觉得我们不要被tdd这个思想吓着。也不能千遍一律,死套模式。自己不能被一些筐筐架架套死。

意思就是说:东西是死的,人是活的。

    鄙人说得不对之处,希批评!
0 请登录后投票
   发表时间:2006-12-14  
写代码之前先写测试来表达功能,这个功能怎么实现的好不好先不考虑,通过测试先,这样如果测试写的不够或者不到位,那实现就有可能是有漏洞的,不过感觉如果先写测试的话,就可以保证写的功能代码都是可测的,结构都是比较好的,这就是TDD的目标?开发速度上来讲,我也不知道能否快,能快多少?
0 请登录后投票
   发表时间:2006-12-14  
江南白衣 写道
firebody 写道
每个method不超过5行,那是一个玩笑话。 真的不可能。


每个method不超过3行,而且似乎不是玩笑,是先进经验介绍。


无法避免的问题就是方法调用层次太过繁杂,怎么就能够提高代码的可读性吗?或者代码的可读性在TDD中完全不是一个需要考虑的东东?

0 请登录后投票
   发表时间:2006-12-15  
gKarerM 写道
江南白衣 写道
firebody 写道
每个method不超过5行,那是一个玩笑话。 真的不可能。


每个method不超过3行,而且似乎不是玩笑,是先进经验介绍。


无法避免的问题就是方法调用层次太过繁杂,怎么就能够提高代码的可读性吗?或者代码的可读性在TDD中完全不是一个需要考虑的东东?


上饭店我说...一盘宫爆鸡丁....一盘鱼香肉丝....一碗米饭....一杯茶....请快点...

Job说...宫爆鸡丁...不要辣子...多放点盐....花生要剥过皮的...鸡肉要现放进去的.....花辣用我带来的....等等...之后小二只上了宫爆鸡丁没上米饭与茶...只是忘记了....
1 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics