BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

《程序员》第5期:要不要TDD?如何做?

| 作者 霍泰稳 关注 1 他的粉丝 发布于 2007年4月27日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

五月份的《程序员》杂志就软件开发过程中重要但又看似对立的“测试”和“调试”两个领域进行了专题探讨。自动化测试方面专家Alberto在接受《程序员》编辑欧阳璟的采访时,畅谈了自己对单元测试、为什么开发者不喜欢写单元测试、敏捷开发时应该注意什么等话题分享了自己的观点。

熟悉JUnit Factory的开发者对Alberto Savoia不会感到陌生,因为他就是这个产品的主设计师之一(另外一个是敏捷方面的专家Kent Beck)。Alberto曾在Sun公司工作了13年,是Java语言的核心开发人员,后任职于Google公司,担任首席工程师。现在是Agita Software公司的创始人和技术总监,在测试驱动开发和敏捷方面都很有研究。

其实Alberto在Google工作时,就经历了那些世界顶尖的工程师放弃使用单元测试的情况,虽然Google也规定每个工程师应该测试自己编写的代码,但能够最终坚持下来的并不多(30%左右)。Alberto在调查后发现几乎所有人都肯定单元测试的价值,但是大部分人发现很难将其顺利实施下去,后来Alberto还发现这种情况在其他让开发者写测试的组织中都曾发生过。

为什么单元测试有价值却难以实施?Alberto这样解释:

测试框架(如JUnit)只是让测试执行,并生成自动化报告。写测试代码仍然需要花费很多力气。这就是为什么大部分软件开发者不爱写单元测试的主要原因。或者说,不写测试代码是因为他们以为自己完全不需要。

那么有没有好的办法让开发者爱上单元测试这个好东西,保证自己的软件质量呢?在采访的最后,Alberto给开发团队和开发者,尤其是敏捷开发为主的组织和开发人员提出了三条建议:

  • 第一是要思维开阔,不断地学习和尝试新的技术和工具。Agile、XP和TDD都是新技术,而且发展得非常快,我们需要不断学习。
  • 第二要充分利用工具和自动化设备。……尽量让能够或应该自动化的工作自动化。这样,你就可以将时间和精力集中在那些需要思考和创造力的活动上。
  • 最后如果你的同事还没有掌握和采用敏捷方法与单元测试,那么开发工作很难达到真正的敏捷,因此,同你的同事分享你的知识、技术和成功经验是很重要的。尽力去影响他们,让他们也开始写测试代码。
  • 另外,此专题还邀请了技术专家周伟明讲解了“软件问题定位常见方法”,北京Java用户组(BJUG)核心成员、满江红开放技术研究组织成员莫映阐述了“测试驱动开发之是与非”以及ThoughtWorks咨询师、InfoQ中文站特约编辑熊节分享了“从焦虑到强迫——改变编程习惯”等内容。

    评价本文

    专业度
    风格

    您好,朋友!

    您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

    获得来自InfoQ的更多体验。

    告诉我们您的想法

    允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

    当有人回复此评论时请E-mail通知我

    杂志五月刊 by Ang Gao

    期待五月份杂志关于英雄会的后续报道,不过昨天问了报刊亭都说还没有到货呢,这的消息还比较灵通啊

    允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

    当有人回复此评论时请E-mail通知我

    允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

    当有人回复此评论时请E-mail通知我

    1 讨论

    登陆InfoQ,与你最关心的话题互动。


    找回密码....

    Follow

    关注你最喜爱的话题和作者

    快速浏览网站内你所感兴趣话题的精选内容。

    Like

    内容自由定制

    选择想要阅读的主题和喜爱的作者定制自己的新闻源。

    Notifications

    获取更新

    设置通知机制以获取内容更新对您而言是否重要

    BT