提到TDD大多数程序员的疑问:

  1. 为什么我要写两份程序?
  2. 为什么我要写程序来验证我已经知道的结果?
  3. 我又不是SA,可能也不懂domain,怎么产生一开始的test case?

最后的感想就变成是:

1.Unit Test,那都是说说而已

2.Unit Test?没那时间搞!

3、TDD 只不过是被拿来炒作而已,现实开发中,谁用TDD 写过一整个大系统?

4.TDD 只是先写测试程式而已,有什么特别的?

TDD 的开发顺序

  1. ATDD和BDD

  2. TDD

  3. 测试[testing]

  4. 重构[Refactoring]

因为每一个环节都紧紧相扣,所以有一些阶段不是这么容易区分清楚。例如Testing其实在ATDD, BDD , TDD中,都有包含在里面,这边独立的Testing,或许用Unit Testing会更加合适。

主要的大纲与精神

本系列学习顺序

预计将TDD分成四份,分别是Testing, Refactoring, TDD,最后辅以「ATDD与BDD」。设计的目标则是:working software。

一 测试

  1. 单元测试(单元测试)
  2. 整合测试(集成测试)
  3. 表现层测试

二 重构

  1. 让程序会说话( Let code can talk )
  2. 简单就是美(简单就是美)
  3. 不要过度设计(从来没有超过设计)
  4. 运用基本的面向对象原则(需要了解面向对象的技术和原理)

三 TDD,ATDD,BDD

  1. 满足使用者需求(达致与用户要求)
  2. 如何产生测试案例(如何获得验收测试案例)
  3. 如何由测试案例开始设计程序(How to start by test cases )

四、开发实例

  1. 用户故事
  2. ATDD
  3. BDD
  4. TDD
  5. 重构

五、总结

  1. 面向对象
  2. 单元测试
  3. 集成测试
  4. 重构
  5. CI与自动测试
  6. 敏捷/ XP(连续反馈)

最后则是用来贯穿整系列文章的总结:

程序的存在是为了,也只为了满足使用者需求,而不是写给工程师自己爽的

名词解释:TDD:测试驱动开发  ATDD:验收测试驱动开发   BDD:行为驱动开发  CI:持续集成  XP:极限编程

备注:这个系列是我毕业后时隔一年重新开始进入开发行业后对大拿们的博文摘要整理进行学习对自我的各个欠缺的方面进行充电记录博客的过程,非原创,特此感谢91 等前辈

TDD学习笔记【一】----序言的更多相关文章

  1. TDD学习笔记【四】--- 如何隔离相依性 - 基本的可测试性

    前言 相信许多读者都听过「可测试性」,甚至被它搞的要死要活的,还觉得根本是莫名其妙,徒劳无功.今天这篇文章,主要要讲的是对象的相依性,以及对象之间直接相依,会带来什么问题.为了避免发生因相依性而导致设 ...

  2. TDD学习笔记【三】---是否需针对非public方法进行测试?

    前言 在Visual Studio 2012 中,针对Unit Test 的部分,有一个重要的变动: 原本针对「测试对象非public 的部分」,开发人员可通过Visual Studio 2010 自 ...

  3. TDD学习笔记【二】---单元测试简介

    大纲 Testing 的第一个切入点:单元测试. 本篇文章将针对单元测试进行简介,主要内容包含了5W: Why What Where Who When 而How 的部分,属于实现部分,将于下一篇文章介 ...

  4. Asp.Net Core + Dapper + Repository 模式 + TDD 学习笔记

    0x00 前言 之前一直使用的是 EF ,做了一个简单的小项目后发现 EF 的表现并不是很好,就比如联表查询,因为现在的 EF Core 也没有啥好用的分析工具,所以也不知道该怎么写 Linq 生成出 ...

  5. TDD学习笔记【五】一隔绝相依性的方式与特性

    前言 在上一篇文章中,提到了如何通过 IoC 的设计,以及 Stub Object 的方式,来独立测试目标对象. 这一篇文章,则要说明有哪些设计对象的方式,可以让测试或需求变更时,更容易转换. 并说明 ...

  6. TDD学习笔记【六】一Unit Test - Stub, Mock, Fake 简介

    这篇文章简介一下,如何通过 mock framework,来辅助我们更便利地模拟目标对象的依赖对象,而不必手工敲堆只为了这次测试而存在的辅助类型. 而模拟目标对象的部分,常见的有 stub objec ...

  7. Algorithms学习笔记-Chapter0序言

    0.开篇 <Algorithms>源自Berkeley和UCSD课程讲义,由   Sanjoy Dasgupta / Christos H. Papadimitriou / Umesh V ...

  8. STL学习笔记序言

    笔者作为计算机科学与技术专业的学生,学习并使用C++已经有3年了.在接触STL之前的编程习惯是,所有程序的功能包括数据结构.算法等都是亲自实现,效率极其缓慢.后来从使用STL的vector开始慢慢的感 ...

  9. STM32学习笔记——序言

    写AVR已经两年了.如果初中时候玩Arduino也算的话,就是6年. 两年以来,我用AVR单片机完成了两个大项目: AVR单片机教程,一时兴起写的,效果不好: MEDS,参赛用的课题,半完成,比赛都结 ...

随机推荐

  1. 关于MySQL存储过程中遇到的一个错误

    执行结果: 查询:)) comment '操作变量' begin set var='MySQL%Orcle%DeLL%IBM'; select replace(var,'%'... 共 行受到影响 执 ...

  2. SQL Server启动的几种方法

    SQL Server 启动有以下几种方法: (1)在Control Panel——Administrative Tools——Services,找到SQL Server (XXX)进行启动. 其中XX ...

  3. (转)CentOS下开机启动查看管理命令:chkconfig用法

    CentOS下开机启动查看管理命令:chkconfig用法   CentOS下开机启动查看管理的命令是:chkconfig   1. 开机启动列表查看: chkconfig --list     说明 ...

  4. Unity3D 动态改变地形

    直接获取TerrainData进行修改即可 using System.Collections; using UnityEngine; using UnityEditor; public class D ...

  5. [Machine Learning] Active Learning

    1. 写在前面 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi ...

  6. 为什么质数检验到 N的开方 就可以结束了

    以为所有N的除数都是以根号N为轴对称的. 例如16的开方为4: 16%1 == 0 则1 与 16 都是16的除数. 16%2 == 0 则2 与 8 都是16的除数. 16%4 ==0 则4 为16 ...

  7. .net mvc中的表单异步提交

    // // 摘要: // 将 <form> 开始标记写入响应. // // 参数: // ajaxHelper: // AJAX 帮助器. // // actionName: // 将处理 ...

  8. C# socket send方法

    转  http://msdn.microsoft.com/zh-cn/library/d318fkch(v=vs.80).aspx

  9. 学习 opencv---(5) 创建Trackbar(活动条) &图像对比度,亮度值调整

    学习如何在opencv 中用trackbar 函数创建和使用 轨迹条,以及图像对比度,亮度值的动态调整 一.OpenCV中轨迹条(Trackbar)的创建和使用 [1]创建轨迹条-----create ...

  10. UEFI模式下Win10和Linux双系统

    一.准备 用Win自带的磁盘管理或者进PE分出一块空间来. 你必须要有一个U盘,然后使用软碟通或者ImageWriter把iso系统镜像文件烧录进去,这是比较传统的方法,但既然我们UEFI启动,那就根 ...