TDD开发感悟

时间:2022-12-18 10:57:07

由于公司要实现TDD形式的开发,所以准备了一下,准备在后续的项目中,投入到TDD的怀抱中。

在找一些参考书目的过程中,偶遇《测试驱动开发的艺术》这本书,书中的编码为JAVA派系,但是书的内容却是通俗易懂,书的作者属于实战派的写手,所以一开始几章就直接上具体的例子,然后通过测试,开发,重构,测试,开发,重构。。。的过程来展示如何实践TDD的。

在看书的过程中,我逐渐对TDD有了新的认识,目前已经看到了第三章,通过之前作者的引导,我所理解的TDD是这样的:

TDD,测试驱动开发,是一种软件开发过程的实践,是一种理念,而非实现的工具。它要求软件开发者在开发软件的过程中,按照 测试,开发,重构,测试,开发,重构。。。。的过程,来一点一滴的构建软件的。

映射到我以前的设计工作中,我确实体会到了TDD所带来的便捷之处:

以前的开发:瀑布式的开发,先写功能代码,遇到编译错误的地方,就直接Debug项目,然后让其编译通过即可,没有真正的去检测功能是否是正常的;即便有时候去写一写测试用例,也只是针对核心的业务逻辑进行一下覆盖,没有涉及到重构,测试的过程,所以有时候在开发完毕,发现问题还是挺多的。

TDD的开发:先写失败的测试,然后修改让其通过测试,然后实现功能代码,然后测试,然后重构,然后再测试,再开发,再重构。。。反正就是保证自己每次写的功能点都是可用的,都是通过测试的。等软件正式交付以后,所有的这些测试就可以当做以后系统出现问题时候的检测依据,可以很方便的定位到出错点。如果项目非常大的时候,能够快速的定位到出错点是非常难能可贵的。(在以前花旗做软件的时候,有一个巨大的项目,核心逻辑用c++写,表现层用C#写,粘合层用的CLR c++写,项目中的线程特别多,有时候当表现层出错的时候,需要定位到出错的地方,需要从C#调试到CLR C++,然后再往Native C++调试,过程苦不堪言,最重要的是,整个项目编译一次,需要四五个小时。。。熬过这段时间,才知道TDD的这种机制的重要性,作者的感受,于我心有戚戚焉。致敬。)

但是TDD也不是万能的,TDD能帮我们写出运行良好的软件,不过我们还是要想办法保证交付的功能正好能满足客户的需求。这里我们涉及到了“验收测试驱动开发”这个词,咱们且看且走。

TDD开发感悟的更多相关文章

  1. LM**项目开发感悟

    LM**项目开发感悟 经过一个多月的项目开发,自己主要负责服务端业务逻辑的实现.服务端采用纯servlet完成,自己是在已有的项目架构上进行编程,对于所使用的架构,自己还没有认真的研究过,但明白其用到 ...

  2. TDD实践感悟

    每个开发者都想开发出高质量的代码,更少的Bug.更容易维护不仅让人心情愉悦,也让我们有更多时间去学习和生活. 少加一些班,多陪家人,:) 当开发任务非常简单时,比如基本的增删改查,可能使用怎样的方式开 ...

  3. 从celery rabbitmq with docker-compose 引出对容器、依赖注入、TDD的感悟

    用docker配置项目管理系统taiga的时候,不是我一个人遇到这个问题.https://github.com/douglasmiranda/docker-taiga/issues/5 问题描述: 用 ...

  4. 前端 TDD 开发

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px ".PingFang SC"; color: #454545 } p.p2 ...

  5. 2014年终开发感悟(Tamic)

    接触Anroid已经一年过了,眼看就要2015年的到来,但是在这不长不短的时间以来,虽然没给IT圈贡献过什么大的开源项目,但是自己也一直在坚持着自己的爱好,也在不断的更新着自己博客,有  一次项目中偶 ...

  6. TDD开发案例

    前段时间把一个界面框架完成了,今天基于这个框架开发一个小模块,在这里把这个模块设计的全过程记录下来,希望大家讨论并指正. 一.起因 公司交给我一个任务,为测试员写一个手机模拟界面,以方便她们的手机短信 ...

  7. Python 在Visual studio 中做单元测试进行TDD开发

    Unit Tests Steve Dower edited this page on 14 Jul · 3 revisions Pages 38 Home Azure Remote Debugging ...

  8. 测试计划驱动开发模式 TPDD:一种比 TDD 更友好的开发模式

    相信大部分开发团队都在使用TDD,并且还有很多开发团队都 对外声明 在使用 TDD 开发模式. 之所以说是“对外声明”,是因为很多开发团队虽然号称使用的是 TDD 开发模式,实际开发过程中却无法满足 ...

  9. TDD的iOS开发初步以及Kiwi使用入门

    测试驱动开发(Test Driven Development,以下简称TDD)是保证代码质量的不二法则,也是先进程序开发的共识.Apple一直致力于在iOS开发中集成更加方便和可用的测试,在Xcode ...

随机推荐

  1. 看美剧英文字幕学英语的利器——“深蓝英文字幕助手”简介

    我从初中开始基本上就是一个英语很烂的人,数理化再好有什么用,工作了,结果发现数理化都没啥用,最有用的还是当年学的最烂的英语.于是在2011年年底开始了学习英语的课程,在学习的过程中,外教经常会放英剧美 ...

  2. 【转载】非线性分析中的ansys跟踪显示

    原文地址:http://muchong.com/html/201209/4936556.html 在ansys output windows 有 force convergenge valu 值 和 ...

  3. 完善dedecms站内搜索代码,为搜索结果添加第*页

    自那些平凡而伟大的程序猿开发了内容管理系统(cms),为了让看客们更快地找到自己感兴趣的内容,他们不断完善站内搜索代码,形成了一个小型的站内搜索引擎.可能有些网站模板设计师没考虑到seo的问题,很多站 ...

  4. paip.提升性能---- 网站并发数的总结.txt

    paip.提升性能---- 网站并发数的总结.txt 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.n ...

  5. PHP - 自定义函数

    第7章 自定义函数 学习要点: 1.标准函数 2.自定义函数 3.文件包含 4.魔法常量 一般来讲,冗余的代码都是不好的.一而再,再而三地重写代码不仅浪费时间,从布局结构角度看也显得粗制滥造.与所有优 ...

  6. VCI_CAN二次开发摘机

    1. 关于CAN滤波的设置的几个参数 PVCI_INIT_CONFIG结构,VCI_InitCAN函数调用时使用 AccCode: 验收码(左对齐) 帧过滤验收码.对经过屏蔽码过滤为"有关位 ...

  7. Chrome development tools学习笔记(5)

    调试JavaScript 随着如今JavaScript应用的越来越广泛,在面对前端工作的时候,开发人员须要强大的调试工具来高速有效地解决这个问题.我们文章的主角,Chrome DevTools就提供了 ...

  8. wayne生产环境部署(360的容器发布平台-开源)

    参考文档 http://360yun.org/wayne/dev/develop-flow.html 使用rke部署k8s,详细过程见前面 文章,同时部署好kubectl 安装go yum insta ...

  9. 第二阶段第十次spring会议

    昨天我对宠物信息进行了添加和调整. 今天我将继续对宠物信息添加保存按钮. private void button2_Click(object sender, EventArgs e) { Settin ...

  10. C# 多线程及同步简介示例

           60年代,在OS中能拥有资源和独立运行的基本单位是进程,然而随着计算机技术的发展,进程出现了很多弊端,一是由于进程是资源拥有者,创建.撤消与切换存在较大的时空开销,因此需要引入轻型进程: ...