Ani*_*udh 5 tdd pair-programming extreme-programming
我在一个团队,我试图说服我的队友采用TDD(因为我已经看到它在我以前的团队工作,设置类似).另外,我个人认为,至少在开始时,如果TDD和结对编程都是一起完成的话,这确实有帮助.这样,两个缺乏经验的(在TDD中)开发人员可以互相帮助,讨论要编写哪种测试并取得良好进展.
另一方面,我的经理认为,如果我们一次在团队中引入两个新的开发实践,那么两者都很可能会失败.所以,他希望保守一点并介绍任何一个.
我如何让他相信这两者都是互补的而不是正交的.或者我错了?
Mar*_*eck 13
我不确定是否有更多的人不知道他们在TDD中做了什么会有所帮助.它会很快进入你们两个人的谷歌搜索主题,或者你们俩都在争论TDD究竟是什么/不是什么.
我认为你最好让团队中的某个人成为某种技术的传播者(有人去读TDD,有人去阅读对编程)并让这些人推广和试验这些东西.是的,两者都可以同时发生,但不必在整个项目团队中使用.你可以让你的团队中的一小部分人进行编程,然后报告他们的经历.
在学习新练习尤其是TDD时,对编程是有效的
所以,你可以同时妥协.以增长的方式以敏捷的方式做到这一点.首先进行结对编程.这两者更容易.配对编程后的所有练习将变得更容易学习,并且将更快地以更高的一致性被团队采用.结对编程是第一个(如果不是第一个应该采用的工程实践)之一.确保它有效地完成.以下是如何进行结对编程的说明.
配对编程是开发团队在开发软件时可以使用的最有效的实践之一.两位开发人员使用一台计算机和键盘积极开发故事卡.管理人员担心使用配对编程会使编程成本翻倍.乍一看,为什么他们会认为 - 毕竟 - 两个开发人员被要求在同一个任务上一起工作是可以理解的.然而,在实践中,使用这种开发技术的敏捷团队发现,初始开发的成本略有增加(根据犹他大学的研究,这一比例为15%)远远超过了缺陷的减少,更短,更便宜的测试循环和减少对生产支持的需求.
虽然让程序员配对并协同工作可能会提高生产率似乎违反直觉,但这种技术真正起作用的原因有很多(想想古老的说法,"两个人比一个人好.")这就是为什么:
一旦团队配对很舒服,那就采取TDD.下面是一个描述:
测试驱动开发(TDD)是一种软件开发工程实践,包括短期开发,首先编写覆盖所需改进或新功能的新测试用例,然后实现通过测试所需的生产代码,最后软件经过重构以适应变化.在实际开发之前测试的可用性确保在任何变化之后快速反馈.从业者强调,测试驱动开发是一种设计软件的方法,而不仅仅是一种测试方法.测试驱动开发是一种强大的实践,是减少生命周期后期发现的缺陷的主要因素.强烈建议新团队与体验TDD从业者配对或以其他方式接受TDD辅导
测试驱动开发要求在代码本身的每个方面之前编写定义代码要求的自动化单元测试.这些测试包含真或假的断言.运行测试可以在代码发展和重构时快速确认正确的行为.基于xUnit概念的测试框架提供了一种用于创建和运行多组自动化测试用例的机制.测试驱动的开发周期:以下序列基于"按示例进行测试驱动开发"一书,许多人认为这是现代形式的概念的规范源文本.
重复
从另一个新测试开始,然后重复该循环以推进该功能.步骤的大小可以与开发者喜欢的一样小,或者如果他/她感觉更自信则会变大.如果为满足测试而编写的代码不能很快地执行此操作,那么步长可能太大,并且可能应该使用较小的可测试步骤.使用外部库时,重要的是不要增加小到仅仅有效地测试库本身的增量,除非有理由相信库有错误或功能不完整以满足所有需求.正在编写的主程序.
开发风格使用测试驱动开发有很多方面,例如"保持简单,愚蠢"(KISS)和"你不需要它"(YAGNI)的原则.通过专注于仅编写通过测试所需的代码,设计可以比通常通过其他方法实现的更清晰和更清晰.测试驱动的开发要求程序员首先使测试用例失败.我们的想法是确保测试真正起作用并且可以发现错误.一旦显示,将开始正常循环.这被称为"测试驱动的开发Mantra",被称为红色/绿色/重构,其中红色意味着失败,绿色通过.测试驱动开发不断重复添加失败,传递和重构的测试用例的步骤.在每个阶段接收预期的测试结果可以加强程序员对代码的心理模型,增强信心并提高生产率
建议他们在TDD上阅读这些书:
迈克尔羽毛的工作有效地与遗留代码
Kent Beck的经典测试驱动开发-以身作则,
杰拉德·梅萨罗斯的xUnit测试模式-重构测试代码
测试驱动开发的Microsoft .NET
或者这些网站在结对编程中:
结对编程(维基百科)
Corey Haines结
对编程发光
| 归档时间: |
|
| 查看次数: |
7683 次 |
| 最近记录: |