腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

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

  • 2007-04-26
  • 本文字数:996 字

    阅读完需:约 3 分钟

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

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

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

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

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

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

  1. 第一是要思维开阔,不断地学习和尝试新的技术和工具。Agile、XP 和 TDD 都是新技术,而且发展得非常快,我们需要不断学习。
  2. 第二要充分利用工具和自动化设备。……尽量让能够或应该自动化的工作自动化。这样,你就可以将时间和精力集中在那些需要思考和创造力的活动上。
  3. 最后如果你的同事还没有掌握和采用敏捷方法与单元测试,那么开发工作很难达到真正的敏捷,因此,同你的同事分享你的知识、技术和成功经验是很重要的。尽力去影响他们,让他们也开始写测试代码。

另外,此专题还邀请了技术专家周伟明讲解了“软件问题定位常见方法”,北京Java 用户组(BJUG)核心成员、满江红开放技术研究组织成员莫映阐述了“测试驱动开发之是与非”以及ThoughtWorks 咨询师、 InfoQ 中文站特约编辑熊节分享了“从焦虑到强迫——改变编程习惯”等内容。

2007-04-26 20:46688

评论

发布
暂无评论
发现更多内容

品牌轮:用MOT引导的品牌体验模型

石云升

用户体验 关键时刻 7月日更 体验设计

8月日更挑战正式开启,新人大奖等你来领!

InfoQ写作社区官方

8月日更 热门活动

正式发布!中国信通院联合腾讯安全等起草单位,共同发布研发运营安全工具系列标准

腾讯安全云鼎实验室

云计算 中国信通院 安全工具系列标准

打造“云边一体化”,时序时空数据库TSDB技术原理深度揭秘

数据库 大数据 时序数据库 tsdb 数据智能

【得物技术】服务发布时网络“抖动”

得物技术

网络 服务 响应时间 部署 发布

2021可信云大会顺利召开,北鲲云践行云计算六大发展趋势

北鲲云

手撕环形队列系列二:无锁实现高并发

实力程序员

程序员 数据结构 并发 无锁 环形队列

行云管家荣获CFS第十届财经峰会2021科技创新引领奖!

行云管家

行云管家 财经峰会

解读区块链技术对量子攻击的脆弱性以及量子安全区块链的解决方案

CECBC

你以为你懂redis?等看完某宝付费的资源你就知道了

Java架构师迁哥

完备的娱乐行业知识图谱库如何建成?爱奇艺知识图谱落地实践

爱奇艺技术产品团队

nlp 搜索 知识图谱

ONES 当选深圳信创联盟副理事长单位,助力国产软件工业发展

万事ONES

信创 ONES

新思科技解读金融服务业的应用安全误区与现实

InfoQ_434670063458

新思科技 金融服务安全

HarmonyOS开发者创新大赛获奖作品分享——《分镜头App》

科技汇

新工具上线!sdkmgr命令行助力流水线构建

科技汇

企业管云就用行云管家!省时省力省心!

行云管家

云计算 企业上云 行云管家 企业管云

主流分布式文件系统选型,写得太好了!

编程菌

Java 编程 程序员 计算机 技术宅

下一个颠覆的领域:区块链如何影响审计行业?(中)

CECBC

这次不编故事了,阿里Spring Cloud Alibabab笔记,自己领吧

Java架构师迁哥

好慷在家系统开发前景

ALVIS

微服务架构设计模式-进程间通信

以吻封笺

微服务 设计模式

如何识别并解决复杂的dcache问题

OPPO数智技术

后端

Fil收益怎么看?Fil一天收益如何?

区块链 IPFS fil收益 filecoin生态

爱奇艺搜索排序算法实践(内附福利)

爱奇艺技术产品团队

排序算法 nlp 搜索

希望体验更好的开发流程

escray

学习 极客时间 朱赟的技术管理课 7月日更

智慧农业陷转型困局,区块链如何“对症下药”?

CECBC

阿里巴巴Java岗面试题库更新(第8版)

Java架构师迁哥

Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

亚马逊云科技 (Amazon Web Services)

人工智能 开源数据库

ISC网络安全大会关于“新型网络犯罪打击与治理”的分析

郑州埃文科技

网络安全 isc

《程序员》第5期:要不要TDD?如何做?_Java_霍太稳@极客邦科技_InfoQ精选文章