低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

我的“单元测试”跟你的是两码事!

2008 年 6 月 26 日

对于 TDD 的“单元测试”与传统的“单元测试”之间的差异,业界一直存在着误解。知名的 XP 贡献者 Mike Hill,对这些误解进行了澄清。他还特别讲述了在 Industrial Logic 的经历,在那里展开教学时,他和其他人一起使用“微测试(microtests)”这个词汇来指代 TDD 的单元测试,避免产生“单元测试”概念上的混乱。

我们将 XP 中的单元测试称为“微测试”,因为之前总是要跟别人解释 XP 的的单元测试跟传统意义上的单元测试的不同,既繁琐又容易出错。这样命名以后,至少可以部分避免发生上述问题的几率。

讨论是由 Ben Hall 的问题引起的,他发现(不从事编程的)测试人员群体不像其他社区那么活跃,对此他觉得很疑惑:

社区里的测试人员都哪里去了?开发人员很容易找,从大型会议(PDC、TechED)到小型用户组(NxtGenUG),类似的活动很多。两年前,NxtGenUG 在考文垂举办首次活动,从那时起我就是它的成员了;而且我还参加 TechED Europe 会议。但是在这些活动中为什么见不到测试人员?还是我眼拙没注意到? 我知道公司的招聘人员们一直对此问题感到疑惑,但是从社区的角度来看——测试人员都去哪儿了?他们的交流在哪里进行?如何改进软件测试、测试人员如何融入到项目结构中、测试人员如何利用最新的开发技术?类似的问题一定会有人关心的,但是这些人在哪里?

很有意思,对 Ben 的问题的最初回应是这么说的:“是有这样的社区的,但是他们比较孤立,很大一部分原因是为了避免由于用词混淆带来的沟通误解”。由此激起了大家更热烈的反响,讨论使用新词汇所能带来的好处,比如用“微测试”表示TDD 中程序员使用的“单元测试”方式。

Hill 带头,强调了他使用“微测试”所带来的正向产出,新的 XP 团队因此理解了单元测试的着眼点是放在极其细微的测试“单元”之上,而不是传统的非 XP 开发过程中所着眼的、较大范围的“单元”。Mike 不只强调了这个区别,他还指出了 TDD 和微测试的真实 **意图** 及其与传统测试意图的差异。

我们发现:密集的微测试驱动开发带来的好处不仅仅是提高质量。质量的提升是 TDD 的一个副作用。实际上,我们所传授的 TDD 的好处和真正意图,是要指导生产力:更多功能,更快发布。

很多帖子都对 Mike 的主意表示赞同。其中,XP 大牛 Ron Jeffries 说道:

我非常同意这才是 TDD 真正的好处,我也很仰慕你[如此自信]敢于直接把它讲出来。

此外,这个讨论的有趣和有用之处在于引发的众多不同观点和实例,展示了引入“微测试”这样的词汇所带来的优劣之处,比如一个内容充实的列表,列出了真正的微测试的特征。

要想查看完整内容,您可以点击该链接,并可以让读者知道您对这个问题怎么看。

要想了解更多关于“微测试”的内容,请查看Industrial Logic 的“超级精选”学习专辑,以获得关于该主题的、基于web 的培训内容其他许多主题。

查看英文原文: My “Unit Test” Aint Your “Unit Test”


在 infoq 英文站上,有读者对该新闻的评论如下:

我从来都没有意识到存在这样的困惑。文中所述的“微测试”正是我所理解的单元测试。也许有人能告诉我别人是怎么理解单元测试的?

看来,传统意义上的单元测试已经有从国外软件开发人员的视野中淡出的迹象。

2008 年 6 月 26 日 04:48448
用户头像

发布了 479 篇内容, 共 127.1 次阅读, 收获喜欢 30 次。

关注

评论

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

大型互联网应用建设常用技术方案与手段,主要解决哪些问题?

睁眼看世界

极客大学架构师训练营

训练营第四周 作业1

Yangjing

极客大学架构师训练营

设计模式

Zzzz

极客大学架构师训练营

第三周作业

m

架构师训练营 -week04-总结

大刘

极客大学架构师训练营

极客时间架构 1 期:第4周 系统架构 - 命题作业

Null

「架构师训练营」第四周课后练习

L

第10周作业

Vincent

极客时间 极客大学

第四周作业

fmouse

极客大学架构师训练营

[架构师训练营第 1 期] 第四周学习总结

猫切切切切切

极客大学架构师训练营

手把手教你AspNetCore WebApi:认证与授权

AI代笔

Token ASP.NET Core JWT web api

第四周作业

TheSRE

极客大学架构师训练营

极客时间架构 1 期:第 4 周 系统架构 - 学习总结

Null

Q3结束的一点小感悟:谋篇者布全局,执行者拿结果

邓瑞恒Ryan

自我管理 创业心态 运营 运营管理

浅析 synchronized

朱华

Java 并发编程 synchronized

架构师训练营1期第4周作业

木头发芽

第四周总结

fmouse

极客大学架构师训练营

手把手教你如何在Oasis Second State 社区黑客马拉松获得 50 ROSE

Michael Yuan

区块链 智能合约 以太坊 hackathon

极客大学 - 架构师训练营 第四周

9527

架构师训练营 - 第四周 - 作业一

行者

高并发系统设计负载均衡架构

架构师修行之路

负载均衡 分布式 微服务

第10周学习总结

Vincent

极客时间 极客大学

第四周总结

睁眼看世界

极客大学架构师训练营

我理解的技术战略

异想的芦苇

战略管理

训练营第四周 学习总结

Yangjing

极客大学架构师训练营

第四周作业 (作业二)

Geek_83908e

极客大学架构师训练营

第四周学习总结

alpha

极客大学架构师训练营

[架构师训练营第 1 期] 第四周命题作业

猫切切切切切

极客大学架构师训练营

「架构师训练营」第四周课后练习

L

第四周作业 (作业一)

Geek_83908e

极客大学架构师训练营

设计一套RPC框架并非易事

架构师修行之路

分布式 微服务 RPC

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

我的“单元测试”跟你的是两码事!-InfoQ