TDD 测试驱动开发

上一篇 / 下一篇  2013-08-08 09:52:32 / 个人分类:测试理论

 
昨天参加公司的培训,听高手讲TDD,主要思想就是,在开发功能代码之前,先编写单元测试用例代码,开发通过测试用例来填充功能代码。
之前上家公司老大要求,当需求确定,开发出了技术方案以及接口定义后,开发写代码的同时,测试要开始写测试代码,当时很不理解,为啥要这样呢?整个环境都还没好,我要怎么验证呢?而且后期开发通过具体的实现会修改当然的技术方案甚至于变更需求,这样测试势必要返工重写,我觉得很浪费时间,直到今天才知道原来这就是TDD(汗一个)。
百度了下TDD
测试驱动开发敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。
TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。
自我感觉这个是一个理想的过程,但是要把这个在项目里实行则有很大困难,开发的配合支持以及测试的编码能力要求,以及这个测试用例是开发写,还是测试写,还是共同来完成?
为了让大家理解TDD,高手还讲述了个例子,
A模块调用B模块,这个的耦合性太强,需要解耦
解耦:A模块---》interface---》B模块
这时候interface是B的,还是A的呢?
当时第一反应是当然是B的啊
记得大学老师就这么讲的,命名interface还是IB,呵呵
但是老师说这个interface是A在用,是使用者在用,所以应该是A的
当时觉得怪怪的,晚上回家跟老公讨论这个问题,老公说当然是B的,我问为啥?老公说interface其实即不是A,也不是B的,是B这一类的一个抽象而已,对于这个interface·来说可以A调用,也可以A1调用,也可以C调用,但是interface肯定是B,Bx之类的一个抽象。
我凌乱了。。。。貌似都说的有道理。。。
 
 

TAG:

个人空间 引用 删除 zhanglisha   /   2014-02-26 10:07:07
原帖由zangwenjie于2013-09-02 09:30:39发表
我也觉得是B的。。。
zangwenjie的个人空间 引用 删除 zangwenjie   /   2013-09-02 09:30:39
我也觉得是B的。。。
 

评分:0

我来说两句

Open Toolbar