`
alexgreenbar
  • 浏览: 87709 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Tests in TDD is different from unit tests?

阅读更多
read this book again:
http://www.china-pub.com/computers/common/info.asp?id=19120
[url]http://www.amazon.com/exec/obidos/ASIN
/0131016490/qid=1097646507/sr=2-3/
ref=pd_ka_b_2_3/103-9945153-2808617[/url]

It's very weird to read: "Tests in TDD is different from unit tests"

For me, I think unit tests is same with tests in TDD except in TDD you need write tests first, but they are unit tests, aren't they? Or the difference indicate different feeling?

What's your thoughts?
分享到:
评论
32 楼 alexgreenbar 2007-09-24  
gigix 写道

Unfortunately we, people who read your words, do care...it's all about make your neighbors comfortable...show some respect, please...


thanks gigix, you are right. Actually, I try my best on every words which I post here, I'm so glad to share my ideas with those who are really interesting on them, but for those who don't or feel bored only because English, please jump.
31 楼 alexgreenbar 2007-09-24  
cnfree 写道
alexgreenbar 写道
yananay 写道
怎么就非得用英文呢?
是因为英文爽还是不会安装中文输入法呢?


I hate English, include listening, writing, speaking etc.
Also, I have Chinese IM installed on my Linux box. So why I still use English?
- My English is poor, so I want to improve it everyday even on blog/forum


Yes, you said it, and I do it also now. I insist on writing blog in english everyday. We should study english hard, then we can have more chances to do our favorite work.
I agree with you totally, the most important thing is: almost all advanced technical articles are written by English, to catch up or even exceed, we need improve our English.

I'm working in a foreign company, if you want to work with other foreigner guys, you must speak English, otherwise you can't do nothing.

So I'm not show off my English here, I just do what I must do or had to.

Again, I don't care who read my blog at all, I post my ideas here to share with those who interesting on my ideas and wish to share their experiences with me.
30 楼 cnfree 2007-09-21  
alexgreenbar 写道
yananay 写道
怎么就非得用英文呢?
是因为英文爽还是不会安装中文输入法呢?


I hate English, include listening, writing, speaking etc.
Also, I have Chinese IM installed on my Linux box. So why I still use English?
- My English is poor, so I want to improve it everyday even on blog/forum


Yes, you said it, and I do it also now. I insist on writing blog in english everyday. We should study english hard, then we can have more chances to do our favorite work.
29 楼 gigix 2007-09-21  
引用
if you don't like English, you can jump my blog. Also, I'm so happy you won't see my blog.

please, dude...it's not about speaking (or typing) English at all...
引用
Maybe my English is poor, but anyway, I don't care.

Unfortunately we, people who read your words, do care...it's all about make your neighbors comfortable...show some respect, please...
28 楼 alexgreenbar 2007-09-21  
jelly 写道
如果要写英文,练英文,为什么不去英文社区呢?或者做一些文档的翻译?我想在中文社区写英文,就像强暴一样,不是每个人都喜欢看英文,大家的习惯是将英文直接过滤不看,何况,你蹩脚的英文看起来实在不是一种享受也不符合我们构建和谐社会的方针政策。:)
I'm so pity on you, translation? you only want to do that?
I'm not want to F.U.C.K. anybody, if you don't like English, you can jump my blog. Also, I'm so happy you won't see my blog. Maybe my English is poor, but anyway, I don't care.
27 楼 jelly 2007-09-21  
如果要写英文,练英文,为什么不去英文社区呢?或者做一些文档的翻译?我想在中文社区写英文,就像强暴一样,不是每个人都喜欢看英文,大家的习惯是将英文直接过滤不看,何况,你蹩脚的英文看起来实在不是一种享受也不符合我们构建和谐社会的方针政策。:)
26 楼 bouzouki 2007-09-07  
用黑盒测试,白盒测试等等这些软工教科书上的术语来描述TDD中的测试,总有些隔靴搔痒,明白的人听了觉得不过瘾,不明白的人听了还是不明白.
25 楼 alexgreenbar 2007-08-27  
鹿鸣 写道
我只说一句,考虑一下测试人员如何接手好不好。
我们没有专门的测试人员,程序员除了写单元测试外,还负责系统测试的开发,单元测试和系统测试全部进行nightly building,在产品快发布时(通常提前一个月),每日用最新的kit(每日构建)进行CPI(持续产品集成)测试,也是自动化测试。所以程序员是核心测试人员。
24 楼 鹿鸣 2007-08-27  
我只说一句,考虑一下测试人员如何接手好不好。
23 楼 hlxiong 2007-08-21  
  规模稍大一点的项目中,应该还是有文档比较合适,特别是在开发初期,合适的文档可以指引开发的方向,使开发人员不至于没有头绪,不知从哪一点着手。
  我们部门基本是完全文档驱动开发的,太过强调文档也很让人头痛,经常出现实际程序和设计文档不相符的地方,好多时候文档随着开发变。。。
  最近我们组4个人做了一个小项目,一个leader,三个开发人员,需求确定后只是提纲性地写了概设文档,很简略,基本描述清楚架构等一些全局性的东西,然后我们三个人开发,感觉很不错,比较轻松,也比较快捷,比完全规范化的文档更适合。当然,项目小,DEMO做得比较完善也是原因。
22 楼 alexgreenbar 2007-08-21  
basicbest 写道

XP可是说适合大团队的哦!为什么小团队就不写文档?是不是你思考过的每件事情你都能记住,而且保证别人记住”? 这个团队是不是永远不变,而且一直存在,直到全部一起死掉? “代码/测试就是文档”,那文档是什么?“可以提高效率,保证质量”,请问这个是别人说的还是你自己实践出来的?
另外,一个很诡异的问题,既说“不写文档”,又说“代码/测试就是文档”,那么你是说“不写代码/测试”呢还是其他意思?


- 就是因为“文档/注释”在代码的频繁修改中太容易过时,而且也太容易为人所忘记,所以在我的实践中不写文档,我的文档就是我的“代码+单元测试”,想知道我的想法,看“代码+单元测试”就行了,没有任何形式的文档比“代码+单元测试”更能体现我的设计
- 我们的文档是十分简短和松散的,一般放在wiki上,起到story guide的作用,但如上所说,随着开发很快就过时了,从中你能找到设计的逐步迭代,但它和最终的产品是有差别的
- 对于我们开发工程师来讲,“代码+单元测试”就是我们的文档,对于客户来讲,有专门的产品文档供他们使用,但是那是由文档工程师写的
- 提高效率,保证质量师我的亲身实践,“需求分析文档”“概要设计文档”“详细设计文档”都是过去的恶梦,而且并没有起到应有的作用

basicbest 写道

最佳实践不是XP的,XP是在这些最佳实践之后出现的,所以,坚持这些最佳实践不代表坚持XP。请仔细复习历史。现在我真的很少听到XP的东西,反倒是一些越来越多的公司规范起来,而且重视文档了。

我的问题都很直接,如果有得罪的地方请原谅。但我还是希望你能够仔细思考,不是别人宣传说什么好就是好,也得思考为什么好,好在哪里。


- 没错,就像Refactor是总结了过去的好的代码开发实践,Design Patterns也是,强调谁在前谁在后并没有意义,我们只是有了一个好的名字来讨论问题,再比如POJO,有意义吗?
21 楼 basicbest 2007-08-21  
alexgreenbar 写道
- 没有人说“代码即是最终设计”,只是“代码即是文档”
yiding_he 写道
关于“代码即文档”,我觉得这样的说法不够准确,因为文档这个词的广义性,光是代码无法将其包揽。我认同的说法是“代码即最终设计”。



alexgreenbar 写道

- XP本身就是适合小型团队,所以不写文档,代码/测试就是文档,可以提高效率,保证质量,过期的文档不如不看

XP可是说适合大团队的哦!为什么小团队就不写文档?是不是你思考过的每件事情你都能记住,而且保证别人记住”? 这个团队是不是永远不变,而且一直存在,直到全部一起死掉? “代码/测试就是文档”,那文档是什么?“可以提高效率,保证质量”,请问这个是别人说的还是你自己实践出来的?
另外,一个很诡异的问题,既说“不写文档”,又说“代码/测试就是文档”,那么你是说“不写代码/测试”呢还是其他意思?


alexgreenbar 写道

- 你的newbie例子如你自己所说,走极端了

???

alexgreenbar 写道
- XP昙花一现了吗?即使很多公司不用XP,但是也在坚持其中好的实践

最佳实践不是XP的,XP是在这些最佳实践之后出现的,所以,坚持这些最佳实践不代表坚持XP。请仔细复习历史。现在我真的很少听到XP的东西,反倒是一些越来越多的公司规范起来,而且重视文档了。

我的问题都很直接,如果有得罪的地方请原谅。但我还是希望你能够仔细思考,不是别人宣传说什么好就是好,也得思考为什么好,好在哪里。
20 楼 alexgreenbar 2007-08-21  
basicbest 写道
我不认同“代码即最终设计”这句话,设计是无形的。代码只是设计的体现。文档也可以是。
我觉得很多观点都被极端化了,当有人说单元测试是个好东西的时候,便有人试图每个类,每个方法都给测一测,我只能说这个人很勤劳,但是,只能是很勤劳而已。
如果是有出现文档Out of date,而代码是In的,那么这个是开发过程控制出现的问题,和文档本身没有关系,如果因为控制不好,就否定文档的作用,那就是因噎废食了。
gigix的回答不知道和上面的问题有什么关系。
alexgreenbar是不是要说an experienced engineer......quick starting?IMO,XP也只是一类观点,你让一个experienced engineer去教一个newbie本身没有问题,但是如果那个newbie智商只有30,或者那个newbie已经99.9岁,那就是你的不是了。另外,XP的实践不是放在一起才有效,而是如何用才有效,任何一个实践在合适的情况下都可以产生效果,但是,这个不是XP的好处,而是那个实践的好处。因为虽然XP使用BestPractices是好的,但是其极端的做法导致了其昙花一现的历史命运。


- 没有人说“代码即是最终设计”,只是“代码即是文档”
- 单元测试是好,但不能滥用,不能为了测试而测试,例如getter/setter不测也罢
- XP本身就是适合小型团队,所以不写文档,代码/测试就是文档,可以提高效率,保证质量,过期的文档不如不看
- 你的newbie例子如你自己所说,走极端了
- XP昙花一现了吗?即使很多公司不用XP,但是也在坚持其中好的实践
19 楼 basicbest 2007-08-21  
我不认同“代码即最终设计”这句话,设计是无形的。代码只是设计的体现。文档也可以是。
我觉得很多观点都被极端化了,当有人说单元测试是个好东西的时候,便有人试图每个类,每个方法都给测一测,我只能说这个人很勤劳,但是,只能是很勤劳而已。
如果是有出现文档Out of date,而代码是In的,那么这个是开发过程控制出现的问题,和文档本身没有关系,如果因为控制不好,就否定文档的作用,那就是因噎废食了。
gigix的回答不知道和上面的问题有什么关系。
alexgreenbar是不是要说an experienced engineer......quick starting?IMO,XP也只是一类观点,你让一个experienced engineer去教一个newbie本身没有问题,但是如果那个newbie智商只有30,或者那个newbie已经99.9岁,那就是你的不是了。另外,XP的实践不是放在一起才有效,而是如何用才有效,任何一个实践在合适的情况下都可以产生效果,但是,这个不是XP的好处,而是那个实践的好处。因为虽然XP使用BestPractices是好的,但是其极端的做法导致了其昙花一现的历史命运。
18 楼 alexgreenbar 2007-08-20  
gigix 写道
引用
所以我想知道怎样在“一点文档也不写”的情况下,让一个有经验的初入者快速熟悉项目?

把一个初入者扔到角落让他自己去熟悉项目,这本身就是最慢的一种办法,跟“快速”两字本身就搭不上边。这和有没有文档一点关系都没有。


I agree with gigix, we ofter let a experience engineer pair with newbie to give him a quick staring.
So IMO, all XP practices should use together, if you only focus on one of them, sometimes it will get you nowhere.
17 楼 gigix 2007-08-20  
引用
所以我想知道怎样在“一点文档也不写”的情况下,让一个有经验的初入者快速熟悉项目?

把一个初入者扔到角落让他自己去熟悉项目,这本身就是最慢的一种办法,跟“快速”两字本身就搭不上边。这和有没有文档一点关系都没有。
16 楼 alexgreenbar 2007-08-20  
引用
关于“代码即文档”,我觉得这样的说法不够准确,因为文档这个词的广义性,光是代码无法将其包揽。我认同的说法是“代码即最终设计”。

我没严格的做过测试驱动开发,或者说我还没“上瘾”。我只是尽量保证每一个需要写单元测试的类都写了单元测试。

关于文档,我现在的项目有两个跟设计有关文档,一个是做数据库设计的 PowerDesigner 文档,一个是一片指导性的文章,教初入项目者如何看需求,网站的目录是如何划分之类的(大家英文不太好,起的名字有些怪,需要解释一下),并且还有几张 UML 图,目的是帮助读者更快了解架构。但是即使这样少的文档,我也感觉到维护的不方便,那几张 UML 已经过时了。我现在觉得比较合适的方式还是把设计理念写到注释中去。

所以我想知道怎样在“一点文档也不写”的情况下,让一个有经验的初入者快速熟悉项目?

(如今这些人的表达能力啊!不但搞开发的,而且那些做需求的,搞测试的,写出来的文档真的是火星文一样,看不懂他到底想说什么,总是要再讨论一次才明白。这样的文档要了有什么意思?)


- as you said, your documents were out of date, but even comments beside code will out of date eventually, just think of refactoring, do you rewrite/revise your comments when you do code changes? but you have to do changes on your unit tests. So I believe only code express the real idea because you use code to build your product and deploy it.

- about "don't write documents at all", unit tests will give newbie a quick staring, and unit tests are up to date with code, otherwise, your cruisecontrol will fail, won't it?
15 楼 yiding_he 2007-08-15  
alexgreenbar 写道
yiding_he 写道
八成是楼主没有中文输入法,这可跟我没关系,我有。

继续我的话题,我之前写过一篇帖子:
http://www.iteye.com/topic/97545

我觉得单元测试必然会要影响设计,所以要说测试驱动中的单元测试和其他的单元测试有什么不同的话,就是测试驱动非常主动地接受了这一点,将单元测试运用到设计当中,用来指导设计。


Did you follow TDD strictly in your everyday development? If so, could you please share some of your insights here?

BTW(After reading your notes from link above)
- My company use XP, and we don't write any document at all, we believe source code is document, when newbie join product development, he should read unit tests before starting fix bug, but those days, I don't feel that's a good way, because it's very very hard to guarantee "source code is document", so I think the team which use XP must has a high level average technical skills, then XP is suit for them, otherwise, isn't.

关于“代码即文档”,我觉得这样的说法不够准确,因为文档这个词的广义性,光是代码无法将其包揽。我认同的说法是“代码即最终设计”。

我没严格的做过测试驱动开发,或者说我还没“上瘾”。我只是尽量保证每一个需要写单元测试的类都写了单元测试。

关于文档,我现在的项目有两个跟设计有关文档,一个是做数据库设计的 PowerDesigner 文档,一个是一片指导性的文章,教初入项目者如何看需求,网站的目录是如何划分之类的(大家英文不太好,起的名字有些怪,需要解释一下),并且还有几张 UML 图,目的是帮助读者更快了解架构。但是即使这样少的文档,我也感觉到维护的不方便,那几张 UML 已经过时了。我现在觉得比较合适的方式还是把设计理念写到注释中去。

所以我想知道怎样在“一点文档也不写”的情况下,让一个有经验的初入者快速熟悉项目?

(如今这些人的表达能力啊!不但搞开发的,而且那些做需求的,搞测试的,写出来的文档真的是火星文一样,看不懂他到底想说什么,总是要再讨论一次才明白。这样的文档要了有什么意思?)
14 楼 alexgreenbar 2007-08-15  
yananay 写道
重复已经讨论了1000遍的话题实在没什么意思。。。。
楼主如果只是为了练习英语而继续讨论的话,那就继续discuss in english 吧。。。

1、从来没有人说过xp不需要写文档
2、请楼主先google一下TDD的内容,或者买本TDD书看,
   然后自己实践TDD一段时间。
   如果有失败的体验,那么把失败的地方写出来,我想那样很多人
   会愿意和你讨论的。


1. 首先你误会了,我不是为了练习英语而发言,如果这冒犯了你,或者使你感觉不快,我道歉,本贴我改
2. 在的我实践中,工程师是不需要写文档的,产品的文档有专门的文档工程师来写,他们对产品非常熟悉,而且文字很好,许多人写的书在amazon有五颗星,我相信工程师也没有那么好的文笔
3. 我的意思是公司不提倡工程师在程序里写注释,或者设计文档,在我的理解中,XP是代码/迭代驱动,而非文档(RUP),但不表示我们没有设计,简单的设计会写在wiki中,大家可以松散的讨论,对于工程师源代码和单元测试就是文档
4. TDD我十分乐意尝试,也在实践,但有一定难度,因为我主要的工作是写Eclipse plugin, 测试优先有困难
13 楼 yananay 2007-08-15  
重复已经讨论了1000遍的话题实在没什么意思。。。。
楼主如果只是为了练习英语而继续讨论的话,那就继续discuss in english 吧。。。

1、从来没有人说过xp不需要写文档
2、请楼主先google一下TDD的内容,或者买本TDD书看,
   然后自己实践TDD一段时间。
   如果有失败的体验,那么把失败的地方写出来,我想那样很多人
   会愿意和你讨论的。

相关推荐

    AngularJS Test-driven Development

    You will learn how Protractor is different from Selenium and how to test it entirely. This book is a walk-through to using TDD to build an AngularJS application containing a controller, model, and ...

    Clean Architectures in Python A practical approach to better software design

    In chapter 2 I will then discuss unit testing from a more theoretical point of view, categorising functions and their tests. Chapter 3 will introduce mocks, a powerful tool that helps to test complex...

    Test-Driven Java Development(PACKT,2015)

    Starting with the basics of TDD and reasons why its adoption is beneficial, this book will take you from the first steps of TDD with Java until you are confident enough to embrace the practice in your...

    Test-Driven Java Development - Second Edition.pdf

    Starting with the basics of TDD and understanding why its adoption is beneficial, this book will take you from the first steps of TDD with Java until you are confident enough to embrace the practice ...

    django-master-class

    - **Test-Driven Development (TDD):** This is a methodology where tests are written before any code. The idea is to first write a failing test, then write the necessary code to pass the test, and ...

    groovy_in_action_draft_ch_01.pdf

    For example, developers can write unit tests in Groovy for Java classes or use Groovy scripts to automate deployment processes. **1.1.2 Power in Your Code: A Feature-Rich Language** Groovy is ...

    android-testing-master.zip_Different_googlesamples

    1. 单元测试(Unit Tests):测试代码的最小可测试单元,通常是方法,以确保它们按预期工作。 2. 仪器化测试(Instrumentation Tests):在真实设备或模拟器上运行,可以访问Android系统服务和API,进行更复杂的交互...

    Java - The Well-Grounded Java Developer

    - **Unit Testing**: Explanation of unit testing frameworks like JUnit and TestNG, and how to write effective tests. - **Behavior-Driven Development (BDD)**: Overview of BDD tools like Cucumber, ...

Global site tag (gtag.js) - Google Analytics