`
aqingsao
  • 浏览: 174980 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

敏捷中国2009大会TDD workshop随笔

阅读更多

敏捷中国大会已经结束,我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,你们测试自动化的程度还很低...

后来想了想,觉得可以把测试与社会联系起来,比较有意思:

  1. 无单元测试,单纯靠QA手工来测,可以算原始社会,估计这样的开发团队也不多;
  2. 有一些单元测试,但是基本靠自觉,其他测试靠QA,这可算作奴隶社会;
  3. 有自动化的单元测试,甚至有自动化的功能、性能测试,可算作封建社会,可能很多团队就这样做的;
  4. 测试驱动开发+自动化的功能/性能/集成测试+持续集成+QA手工测试,这算资本主义吧,做到这一步,自动化水平已经很高了;
  5. 最后就是完全自动化的测试,不过单纯追求自动化,势必有较高的成本,会得不偿失,所以像共产主义一样空中楼阁。

如果再有这样的机会,希望TDD workshop能够编程XP workshop,辅以持续集成,另外整一些Web测试的框架给大家演示,效果会更好吧。

 

 

分享到:
评论

相关推荐

    workshop-tdd-java:该研讨会旨在帮助您开始或提高TDD技能

    使用Java的TDD Workshop 该研讨会旨在帮助您开始或提高和技能。 您将在本研讨会中看到的旨在演示TDD的优势和技术。 目的是代表现实世界的场景,但是有时为了简单起见,这是不可能的。 什么是TDD 或测试优先开发是...

    测试驱动的软件开发 TDD (Test-Driven Development)+敏捷开发过程

    测试驱动的软件开发(TDD,Test-Driven Development)...总的来说,TDD 和敏捷开发相结合,为软件开发提供了一种高效、高质量的方法论,但需要开发者有较高的测试意识和技术能力,以及团队对敏捷原则的深入理解和应用。

    TDD测试驱动开发

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际功能代码之前,先编写测试用例。这种方法的核心理念是“先写测试,再写代码”。TDD通过引入测试来引导软件设计,使得开发过程...

    第三届敏捷大会幻灯片

    【第三届敏捷大会幻灯片】是关于敏捷开发领域的一次重要会议记录,主要围绕着敏捷方法的演进设计展开。这次大会由Paulo Caroli主持,他是一位在敏捷开发领域有着深厚造诣的专家,致力于推动软件开发的高效与灵活。...

    react-tdd-workshop:TDD与React研讨会

    React TDD工作坊 WIP-这是我的 欢迎来到我的React TDD研讨会! 入门 npm i npm test 观看模式: 1号航站楼: npm start 2号航站楼: npm run test:watch 这个研讨会是关于什么的? 我们将使用React + Jest + ...

    TDD读书报告

    - **案例**: 例如IBM等大型企业在敏捷转型过程中将TDD视为提升开发效率和软件质量的关键手段之一。 综上所述,TDD作为一种现代软件开发方法论,其核心理念和实践流程对于提高软件开发的效率和质量有着显著的作用。...

    Test Driven: Practical TDD and Acceptance TDD for Java Developers (PDF英文版)

    此外,书中可能还会探讨持续集成、测试自动化策略以及如何将TDD融入敏捷开发流程。 总之,通过这本书的学习,Java开发者不仅能提升自身的测试技能,还能进一步优化开发流程,为项目的成功提供坚实的基础。

    phpunit-TDD驱动开发

    ### 使用PHPUnit进行TDD驱动开发 #### 一、引言 测试驱动开发(TDD, Test-Driven Development)是一种软件开发方法论,它要求在编写实际功能代码之前先编写测试用例。通过这种方式,可以确保代码的质量,并且有助...

    UMTS-TDD手册

    ### UMTS-TDD 手册知识点解析 #### 核心知识点概述 本文档主要针对的是**NS2网络仿真软件**中的**UMTS-TDD**(Universal Mobile Telecommunications System - Time Division Duplex)仿真方法进行了深入细致的介绍...

    tdd_workshop_agenda

    #Tdd Workshop作者:陈杰(Jack Chen) ###传统的: 程式码执行 手动测试 担心代码 编写测试 放心了(真的吗?) ### TDD: 编写测试 使测试正确失败 程式码执行 通过测试验证实施 松了一口气(真的!)

    node-tdd-workshop

    【标题】"Node-tdd-workshop" 是一个关于使用JavaScript进行测试驱动开发(TDD)的工作坊。这个工作坊旨在帮助开发者掌握在Node.js环境中实践TDD的方法和技巧,通过实际操作提升代码质量和可维护性。 【描述】"Node-...

    TDD驱动测试开发培训

    测试驱动开发(TDD)是...迭代开发是敏捷开发的核心实践之一,它要求开发团队不断地在一系列短周期内完成产品增量的开发,每个迭代周期都包括需求分析、设计、编码、测试和回顾等步骤,TDD很好地符合了迭代开发的节奏。

    GSM TDD noise分析

    "GSM TDD 噪声分析" GSM TDD 噪声是一种常见的干扰现象,发生在 GSM 通信系统中的射频部分。这种噪声的产生是由于天线辐射出的射频能量和 PA 突发工作时带动电源的干扰。为了减少这种噪声的影响,我们可以采用一些...

    TDD 测试驱动开发 文档 详细

    TDD在敏捷开发中被广泛应用,因为它有助于提高代码质量,减少缺陷,并且可以更早地发现设计问题。 标题中的“TDD测试驱动开发文档详细”表明这是一个关于TDD的详细资料集合,可能涵盖了TDD的理论基础、实践步骤、...

    单元测试与TDD实践

    单元测试与TDD实践 **一、单元测试之测试目的** 单元测试,作为软件开发过程中的重要环节,其核心目标在于确保代码的质量、可维护性和可扩展性。它通过独立测试软件中的最小可测试单元,如函数或方法,来验证其...

    TDD测试驱动开发.pptx

    这一理念虽然在当时被视为一种激进的方法论,但随着敏捷开发方法的普及,TDD逐渐被更多的开发团队采纳和推崇。TDD结合了测试先行和代码重构两大实践,通过不断迭代的测试和重构来提高软件的质量和可维护性。 TDD的...

Global site tag (gtag.js) - Google Analytics