TDD的实施细节应该怎样做

问题描述

哈哈,标题党了。其实是我求细节操作。以前也有看过一些TDD的资料,但一直没有在实际的项目中实践过。最近可能有一个新的项目,不是特别大,想采用Scrum和TDD小试身手。先介绍一下我们以前项目的开发流程:1.拿下项目,需求调研分析,编写需求用例(如果客户没有要求,需求规格说明书都不写)基本上需求用例就是说明什么人,做什么事情,怎么做,达到什么目的,有什么要求这些。2.然后分析领域对象,分析业务流程和场景。并最终生成数据库物理模型。3.概要设计,其实也没什么,就是数据库结构,还有用例描述加一些时序图。4.根据需求用例,编写测试用例。5.开发人员进行开发,有时项目紧的时候,单元测试都不写(这个项目没有明文要求),主要靠开发人员个人意愿。6.根据周期定期进行打包测试。我一般会每周build两次,亲自操作一下业务流程,有问题提出修改。这个过程测试人员未参与。7.测试人员进入,按模块完成的先后顺序,持续的测试修改。以前的项目基本上是采用领域驱动的方式进行一步步开发的。现在打算采用TDD方式,现有一些细节疑问,打算请教一下实施了TDD的各种牛。1.TDD方式是不是不用写需求说明书了?2.分析领域对象,分析业务流程和场景。并最终生成数据库物理模型。这一步是不是在TDD之前完成?3.不写概要设计,由需求用例直接跳入TDD开发?4.测试用例是不是需求用例的细化和规范?5.TDD中的test是基于单元测试,还是基于需求测试?6.如果是单元测试,自然由开发人员完成。如果TDD是基于需求测试,那么开发人员是否需要测试人员配合?最后一个问题是:大家有结对编程的习惯吗?在实践过程中结对是否高效?反正我是觉得结对不会太高效的,主要是基于项目人员的配置本来就有成本在那里,而且人员水平也不一样。我的观点是一个经验丰富的带一两个新手共同开发一个模块,但并不需要结对的方式。ok,问题完了。等大家拍砖。问题补充humaeks 写道

解决方案

TDD是手法Scrum是管理现在我对Scrum还是没办法全作.TDD很简单.1.不启动tomcat测试2.不启动DB写逻辑3.所有的程序员必须可以口述所写的东西.4.每个逻辑只写在一个类里不需要页面配合.5.非hibernate的话可以连数据库写DAO6.真实的对应自己的需要.而不是什么套路.7.每个会出错的文件对应一个测试,每次出现了错误你会点测试,那个按钮.改成你想要的样子,你要是能顺利改成可以过了的程序会有一种爽快感,有了test的限制后,就了有种没有限制的世界,如果你还能发现更理性的代码写法.会更爽快.上了正轨之后几乎没有人会退回去结对只要你的公司能支付的起工资你的工作不是拷贝代码效果非常不错.当然楼上说的人品是个问题.但我遇到不能结对的人只占很少的一部分DDD需要更多的上层支持更.很有可能技术不是问题.人是很关键的如果压力很大的话不建议进行这种尝试其它的一些设计,需求,计划的一些实践很困难......没有成功过
解决方案二:
稍稍再补充一点,所有的这些都是方法论。研究方法论的方式就是实践,实践的时候能把握住方法论的constraint和它能产生benefit的原因,然后根据本身团队情况来进行调整。千万不要想着一步到位。
解决方案三:
1. tdd是编程技巧和风格,与规格说明书不是同一级别的东西,那个应该是scrum或者整个agile development所关注的;2. tdd是编程技巧,DDD是设计方式,按软件生命周期,需求、设计(大设计)、编码、测试,每个小迭代里面还是按这个走的,至少在我当前的开发流程里面是这样,可能我对这个的理解不深;3. 需求test driven是对的,关键看需求如何拆分,是逻辑代码段的需求,还是系统功能需求。抽象一点来说,tdd背后是一种风格,指在所有事情开始之前,先考虑验收,实际上很老的软件工程理论就说了测试应该在需求阶段就介入,并根据需求规格编写对应的验收测试。TDD只是把这种风格带到coding环节;4.5. mentoring很累,很容易流产,所以必须看苗子,另外就是个人魅力和忽悠。继续,个人愚见而已。
解决方案四:
tdd,中文翻成测试驱动的设计或开发,取决于最后一个d,因此要理解测试驱动,由测试产生设计或实现
解决方案五:
peterwei 写道5.成员水平不一样可以采取结对方式提升人员水平,对于你这个观点,我不同意。我记得几年前,有人讨论过水平不一样,结对更加容易流产。peterwei 写道我的观点是一个经验丰富的带一两个新手共同开发一个模块,但并不需要结对的方式。 你明明没做过,哪儿来的这么多观点呢?
解决方案六:
个人的几点愚见,有点零乱:1. 首先明确unit test和功能测试不一样,参与的人也不一样。2. 设计完了再入TDD阶段,写UT的过程其实也是校验测试的过程,如果测试不好写,就需要review设计。这里插播一下,既然考虑采用DDD,应该先出来CDM,然后java OO与CDM对应,剩下才是设计物理模型和持久层3. 传统意义上的TDD指的是unit test。背后很重要的一个思想是先写测试有助于写出clean code that works, 或者说是just enough的代码,实践上需要权衡。对程序员的编程技巧要求高,在我的团队成员中,从零到真的能写出“单元”测试,需要每天抽一小时1 on 1 code review一个月以上。需要程序员有逻辑拆分以及一些coding技巧,看implementation patterns / clean code 这两本书会有帮助,但关键还是每天的code review给及时反馈。4. 100%覆盖是不切实际的东西,尤其是初次尝试TDD,可以采用以点带面的方式,让部分成员先尝试到TDD带来的好处,然后在团队中传播;5. 成员水平不一样可以采取结对方式提升人员水平,但成本回收周期长,基本不会对本项目(3月内的项目)产生benefit,但遇到有好苗子要坚决培养,否则日后还是会死,留不留得住人,就是另外一个管理topic了。仅供参考。

时间: 2024-11-10 00:26:53

TDD的实施细节应该怎样做的相关文章

支付宝总裁樊治铭:在物流POS战略实施中支付宝只做两件事

3月19日消息,支付宝启动物流POS战略,宣布向中国电商COD市场投资5亿元,推动整个电商COD体系发展.支付宝副总裁樊治铭表示,支付宝发力物流POS支付未来专注两件事,分别是做好物流POS支付方案和支付宝POS设备布建投资. 樊治铭称,支付宝开始关注COD市场,发现市场COD支付方案未能很好的需求客户与用户需求,主要表现为配送收银时,不能实现配送签收信息的同步传送,而且许多COD服务也不能提供POS刷卡应用.为此,支付宝市场投资5亿元推动整个COD体系软硬环境的改善. 樊治铭说,在这个物流PO

网站排名SEO优化之“细节从内容做起”

在网站优化当中,笔者一直追求着进步,然而在学习的过程中像许多站长一样,会一味的追求所谓的"方法",往往最忽略在网站SEO优化当中最为关键的细节问题,最后的最后总是以失败告终.我想大家也都知道,对于搜索引擎而言特别是百度,对于一个网站而言很多的站长都把SEO当做一种技术,然后不断的去提升所谓的"技术"和网站外链的工作的,而忽略了搜索引擎排名优化的一些基本细节,往往这些细节最后成为我们失败的主要原因. 网站优化细节有很多种,例如网站html代码.网站标签.排版.友链等等

谷歌排名SEO小细节你都做了吗

回顾自己SEO google优化来时的路,要从2009年5月12日说起了,记得特别深刻,因为那是08年汶川地震1周年,文笔不好,但总结还是要有的.写写才知道自己到底学到什么,成长了多少,哪里不足.沿途中说不完的触动和心酸.有过好奇.有过焦虑.有过兴奋.有过失落.相信这是好多seoer都经历过的吧. 自己主要接触的是英文网站google优化即关键词排名优化.学会如何分析关键词.确定关键词,合理安排关键词密度.写好标签,更新站内新闻,学会如何发外链,发有效外链,发高质量外链,如何做好第三方博客以及站

新集合

对我来说,集合类属于最强大的一种工具,特别适合在原创编程中使用.大家可能已感觉到我对Java 1.1提供的集合多少有点儿失望.因此,看到Java 1.2对集合重新引起了正确的注意后,确实令人非常愉快.这个版本的集合也得到了完全的重新设计(由Sun公司的Joshua Bloch).我认为新设计的集合是Java 1.2中两项最主要的特性之一(另一项是Swing库,将在第13章叙述),因为它们极大方便了我们的编程,也使Java变成一种更成熟的编程系统. 有些设计使得元素间的结合变得更紧密,也更容易让人

做SEO容易忽略的细节

做seo容易忽略的细节,你做了,你就比别人先一步 本文的主要目的是找出做seo容易被忽略的过程,我相信很多细节组合起来是很大的力量,很少有人会全部做到,因为嫌麻烦,如果你做了.你就比别人多了一个优势!原创,申请达人 第一大类,网站内部优化方面 1:注意标题,所有文章题目不要超过30个字,标题太长容易被搜索引擎截断,不宜与吸引客户来点击,一个标题对应文章内容就可以,突出中心思想,没必要写那么多字, 2: 标题中,重点关键词放在前面,有利于排名, 3:  坚持,所有的文章内容页面的标题连接,不要自动

草根站长运营经验总结:建站要从细节做起

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 站长行业每一天都有新人的加入,还有老人的黯然离去.那么是什么导致了一次次建站失败呢?我们这里还是要强调:细节决定成败!每天比别人多想一些,多做一些,那么便距离成功更近一些.其实完全取决于一个人怎么去做,如何的去思考.人和人脑袋是一样的,但是思路不一样决定了不同的出路.我们这里对网站建设做一定的论述: 1.核心主题要集中, 再次强调这个话题.希

这儿有通关秘籍 CIO面试之细节决定成败

今天注定是个癫覆的日子,史上最奇葩.最撕逼的"权力的游戏"大结局2016年总统大选已落听.特朗普最终胜选.当然,小编在这里不是要跟大家讨论总统大选的问题,而是还记得上周小编整理的那篇<CIO面试谈话内容技巧>吗?今天小编也是在一边关注总统大选一边整理出第二弹--CIO面试通关秘籍之细节决定成败! 1 让面试成为一场对话 面试时你把自己的详细经历表述给面试官,但CIO不会喜欢像做演讲般的陈述.在面试过程中,假设有一个麦克风放在面试桌上,你会希望把持麦克风和面试官进行一次深切的

胖子哥的大数据之路(三)- 数据仓库的需求分析该怎么做

一.引言 基于大数据技术构建数据仓库平台,源于大数据技术本身的不成熟和普及度问题,以及辅助工具的缺失,注定了其实施过程与传统数据仓库的差异性,和更大的实施难度.本文针对大数据技术应用与数据仓库类项目需求分析阶段,需要完成的主要工作基于用户需求分析说明书的文档结构进行目录式展现.如需了解更深层的细节,可以做专项技术交流和咨询服务. 一.项目范围的界定 没有明确项目边界的项目是一个不可控的项目,如果项目规划阶段就没有界定明确的项目范围,项目实施过程过程中必将陷入万劫不复的境地,慎重慎重.基于大数据基

企业实施数据虚拟化的十个错误

数据虚拟化克服硬件和软件复杂性的能力为企业提高IT灵活性和显著节省开支提供了极好的机会.随着越来越多的企业寻求这种好处,数据虚拟化正在迅速从新的想法变成主流的应用.下面是早期应用者常犯的十个错误,希望能够作为一些客观的教训帮助企业加快实现数据虚拟化可能带来的潜在的好处. 错误1:过多地进行虚拟化 数据虚拟化与存储.服务器和应用程序虚拟化类似,提供了极好的利润收益.例如,一家能源公司使用数据虚拟化把实时的油田数据与每天晚上的综合仓储信息结合起来把每天的原油产量提高了数千桶.一家金融公司把新的应用的