敏捷中国大会已经结束,我9月12日参加了会议,下午与一些嘉宾在TDD workshop进行了结对编程活动,有一点感想。
我本来没打算参加TDD workshop,是临时被拉过去的。一坐下来就感觉非常尴尬──没提前熟悉题目就要跟别人pair,而且得以我为主,给别人讲解,而题目是个Mars Rover,足足有半页纸。我强迫自己冷静了一些,跟pair一块粗略看了题目,然后就从最简单的测试开始做了起来。
测试──失败──实现──通过──重构,基本按照这样的节奏进行,随着功能逐渐添加,到最后竟然发现功能全部实现了,真是出乎我的意料,因为初看题目时觉得蛮复杂的。我和pair都很高兴,然后对代码中一些严重的smell进行了重构,运行所有的测试,通过。
期间还闹了不少笑话,今年做了一个Rails项目和一个.Net项目,算来已经大半年没用Java,仓促间竟忘了Java语法,在TDD驱动类的方法名总是大写,害得小强在后面吼了好几次“这是Java”...
Pair期间有些朋友问了一些问题,常见的如TDD的好处(Kent Beck的测试驱动开发专门讲这个的)等,怎么写页面的测试(可惜现场没有环境,只好简单讲了一下)。有意思的是某位朋友问我们是不是用Junit、Ant等,刚回答“是”,该朋友很高兴的说他们也是,然后他biabia就讲了很多,其实我很想对这位朋友说,如果还只是用了Junit/Ant,你们测试自动化的程度还很低...
后来想了想,觉得可以把测试与社会联系起来,比较有意思:
- 无单元测试,单纯靠QA手工来测,可以算原始社会,估计这样的开发团队也不多;
- 有一些单元测试,但是基本靠自觉,其他测试靠QA,这可算作奴隶社会;
- 有自动化的单元测试,甚至有自动化的功能、性能测试,可算作封建社会,可能很多团队就这样做的;
- 测试驱动开发+自动化的功能/性能/集成测试+持续集成+QA手工测试,这算资本主义吧,做到这一步,自动化水平已经很高了;
- 最后就是完全自动化的测试,不过单纯追求自动化,势必有较高的成本,会得不偿失,所以像共产主义一样空中楼阁。
如果再有这样的机会,希望TDD workshop能够编程XP workshop,辅以持续集成,另外整一些Web测试的框架给大家演示,效果会更好吧。
分享到:
相关推荐
TDD敏捷开发入门到精通 Agile 02 pdf
使用Java的TDD Workshop 该研讨会旨在帮助您开始或提高和技能。 您将在本研讨会中看到的旨在演示TDD的优势和技术。 目的是代表现实世界的场景,但是有时为了简单起见,这是不可能的。 什么是TDD 或测试优先开发是...
3GPP采用“求同存异”的原则进行L1E FDD和TDD的标准制定工作.将两种制式的协议实现在相同的规范中描述,并尽可能保证其协议实现相同,如遇到无法融合的差异,则仅针对差异部分进行分别描述。标准制定的这种指导思想...
Node-tdd-workshop
React TDD工作坊 WIP-这是我的 欢迎来到我的React TDD研讨会! 入门 npm i npm test 观看模式: 1号航站楼: npm start 2号航站楼: npm run test:watch 这个研讨会是关于什么的? 我们将使用React + Jest + ...
#Tdd Workshop作者:陈杰(Jack Chen) ###传统的: 程式码执行 手动测试 担心代码 编写测试 放心了(真的吗?) ### TDD: 编写测试 使测试正确失败 程式码执行 通过测试验证实施 松了一口气(真的!)
单元测试 TDD EASYMOCK 的一般用法说明 实例
华为LTE TDD系统原理培训PPT文档
测试驱动的软件开发 TDD (Test-Driven Development)+敏捷开发过程 多个经典资料打包集合
TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。 TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求...
TDD测试驱动开发,准备的资料,我自己用的,公司只能上CSDN社区
Laravel开发-tdd 时分双工
GSM TDD noise 分析,但愿对GSM RF感兴趣的您有所帮助
C语言的TDD参考示例代码,主要包含了书中所参考的源代码
极限编程+TDD开发
TDD 测试
使用phpunit 一步一步使用tdd开发模式,减少bug数,提高项目质量
《敏捷开发知识体系》面向敏捷实践者学习敏捷知识和敏捷软件开发企业进行敏捷转型的需要,旨在帮助个人更快地掌握敏捷开发知识,帮助企业更好地实施敏捷转型。主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发...
TDD实战 - Test Driven Development in Action
GSM TDD 板振说明及分析方法、解决方法总结