浅谈对TDD的看法
它要求在编写某个功能的代码之前先编写測试代码,然后仅仅编写使測试通过的功能代码,通过測试来推动整个开发的进行。
由于关注用户反馈,能够及时响应需求变更。同一时候由于从使用者角度出发的简单设计,也能够更快地适应变化。
在实际的软件开发中,用户需求和外部环境的不稳定性会导致软件需求难以把握。仅仅有让用户看到了执行的软件,用户才干驱使软件朝着他想要的方向前进,通常需求和设计都会不断调整。
我们全然能够在完毕系统功能的同一时候。完毕单元測试,然后通过重构的方式来改善既有代码的质量。
”但假设把这些放在代码之前。那么我们怎样保证自己的測试用例写得恰当,一旦需求变更,或者对需求理解有误,那么改动測试用例。意味着我们的编码所有废弃了,不要小看这个成本。非常可能会出现这样的情况:我们花成倍的时间去维护我们的測试用例,却不能如期交付我们的软件。
TDD强调“先理解清楚需求,把它转化为測试用例,然后再来实现和重构“,细一琢磨。这不就是瀑布模型嘛?强调需求先于实现,瀑布模型用文档表达需求,而TDD仅仅只是是把需求文档换成了測试用例而已。
所以我觉得,TDD不是什么新东西,仅仅只是在瀑布模型的基础上换了身衣服。带了个自己主动測试的帽子而已。它将不可避免地面临和瀑布模型同样的问题:“忽略了软件需求的产生是一个在实际执行中不断调整探索完好的过程。
”
浅谈对TDD的看法的更多相关文章
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
- 浅谈HTML5单页面架构(一)——requirejs + angular + angular-route
心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验 ...
- 浅谈php生成静态页面
一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...
- 浅谈JS之AJAX
0x00:什么是Ajax? Ajax是Asynchronous Javascript And Xml 的缩写(异步javascript及xml),Ajax是使用javascript在浏览器后台操作HT ...
- 【转】浅谈Java中的hashcode方法(这个demo可以多看看)
浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native i ...
- AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构
requirejs + angular + angular-route 浅谈HTML5单页面架构 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又 ...
- 【转】浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native int hashCode(); 根据这个 ...
- [原创]浅谈IT人如何做理财规划
[原创]浅谈IT人如何做理财规划 鱼哥博客上多数写的是技术和管理相关,但很少有理财等话题,今天抽空来谈谈IT人如何做理财规划,如果要想学习理财,我想很有名的“标准普尔家庭资产象限图”上值得每个学习和理 ...
- 浅谈Java中的hashcode方法(转)
原文链接:http://www.cnblogs.com/dolphin0520/p/3681042.html 浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地 ...
随机推荐
- 用canvas绘制android机器人
直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- java课后作业-5
作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...
- 【09】node 之 fs流读写
前面我们已经学习了如何使用fs模块中的readFile方法.readFileSync方法读取文件中内容,及如何使用fs模块中的writeFile方法.writeFileSync方法向一个文件写入内容. ...
- jsp导出table数据excel表
<html> <head> <meta http-equiv="content-Type" content="text/html;chars ...
- HH去散步(bzoj 1875)
Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因 ...
- Manacher--雾窗寒对遥天暮,暮天遥对寒窗雾
POJ 3974: Palindrome 题意: 最长回文子串的长度... 分析: Manacher板子题... 代码: #include<algorithm> #include<i ...
- 【SPOJ61】Brackets(线段树)
题意:给出一个括号序列,要求维护两种操作: 1.将第x位上的括号取反 2.查询当前整个括号序列是否匹配 n<=3e4 思路:线段树维护区间内没有匹配的左右括号数量 pushup时t[p].r=t ...
- 《手把手教你学C语言》学习笔记(3)---变量
编程目的是为了解决问题,编程本质是用计算机的思维操作数据,操作就是算法,数据主要是数据类型,也可以说量,其中分为常量和变量,常量主要是指在量的生命周期内无法改变其值:变量主要是指在量的生命周期内可以随 ...
- 小谈c#数据库存取图片的方式
第一种方式 文件夹与数据库配合 /// <summary> /// 上传图片 /// </summary> /// <param name="FUSShop ...
- Linux Performance Observability Tools