- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《测试驱动开发TDD》.ppt
测试驱动开发TDD 实战与模式解析 概述 Kent Beck先生最早在其极限编程(XP)方法论中,向大家推荐“测试驱动”这一最佳实践,还专门撰写了《测试驱动开发》一书,详细说明如何实现。经过几年的迅猛发展,测试驱动开发已经成长为一门独立的软件开发技术,其名气甚至盖过了极限编程。 简介 测试驱动开发(Test Driven Development,英文缩写TDD)是极限编程的一个重要组成部分,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完成全部功能的开发。代码整洁可用(clean code that works) 是测试驱动开发所追求的目标。 优点 (1)完工时完工。表明开发人员可以很清楚的看到自己的这段工作已经结束了,而传统的方式很难知道什么时候编码工作结束了。 (2)全面正确的认识代码和利用代码,而传统的方式没有这个机会。 (3)开发小组间降低了交流成本,提高了相互信赖程度。 (4)避免了过渡设计。 优点 (5)系统可以与详尽的测试集一起发布,从而对程序的将来版本的修改和扩展提供方便。 (6)逃避了设计角色。对于一个敏捷的开发小组,每个人都在做设计。 (7)大部分时间代码处在高质量状态,100%的时间里成果是可见的。 (8)由于可以保证编写测试和编写代码的是相同的程序员,降低了理解代码所花费的成本。 优点 (9)为减少文档和代码之间存在的细微的差别和由这种差别所引入的Bug作出杰出贡献。 (10)在预先设计和紧急设计之间建立一种平衡点,区分哪些设计该事先做、哪些设计该迭代时做提供了一个可靠的判断依据。 (12)发现比传统测试方式更多的Bug 开发过程 概括起来,测试驱动开发的基本过程如下: (1) 明确当前要完成的功能。可以记录成一个 TODO 列表。 (2) 快速完成针对此功能的测试用例编写。 (3) 测试代码编译不通过。 (4) 编写对应的功能代码。 开发过程 (5) 测试通过。 (6) 对代码进行重构,并保证测试通过。 (7) 循环完成所有功能的开发。 更概括的来说,可以分为三部曲: 红条模式 绿条模式 重构 实例演示----Fibonacci 数列 测试驱动开发,那么测试先行是必然的了. 第一个测试: public void testFibonacci(){ assertEquals(0,fib(0)); } 我们都知道:Fibonacci 数列的第一个数是0,现在测试代码有了,那么我们先运行一下测试吧. 报错,红条模式! 显然,因为我们甚至还没有fib()这个函数! 我们赶紧让这个测试通过吧,于是添加如下功能代码: 实例演示----Fibonacci数列 int fib(int n) { return 0; } 绿条模式,测试通过! 第二个测试 public void testFibonacci() { assertEquals(0,Fib(0)); assertEquals(1,Fib(1)); } 实例演示----Fibonacci数列 为了能让测试通过,我们编写如下代码: int fib(int n) { if(n==0) return 0; return 1; } 绿条模式,测试通过! 从测试代码中我们看到: assertEquals(0,Fib(0)); assertEquals(1,Fib(1)); 实例演示----Fibonacci 数列 重复!不仅在源代码,就是在测试代码中,我们也要避免重复!(因为测试代码中也会出现模式!) 改写测试代码: public void testFibonacci { int cases[][]={{0,0},{1,1},{2,1}}; for(int i=0; icases.length;i++) assertEquals(cases[i][1],fib(cases[i][0])); } 演示实例----Fibonacci数列 这样添加测试代码就容易多了. 测试代码改过了,再运行下,绿条模式!还能通过,那我们就可以放心继续了! public void testFibonacci { int cases[][]={{0,0},{1,1},{2,1},{3,2}}; for(int i=0; icases.length;i++) assertEquals(cases[i][1],fib(cases[i][0])); } 演示实例----Fibonacci数列 红条模式!测试失败,
您可能关注的文档
最近下载
- 丽声北极星自然拼读绘本第二级 Eggs for Ben 课件2.pptx
- 第09课 美丽的颜色(公开课一等奖创新教学设计).docx
- 2024年危险化学品生产企业安全试题(安全管理人员)真题题库附解析答案.docx
- 2022-2023学年宁波市鄞州区八年级上学期期中数学试卷(含答案解析).docx
- 工程项目分包合同书样本.doc
- 轻骑士橡筋制作_航模系列.ppt
- 兽医检验复习试题.doc
- DB42_T 2163-2023 水利工程质量监督规程.doc
- 金井“茶乡小镇”城镇建设及旅游开发一期PPP项目-招标文件.doc
- 人教版初中美术九年级上册《异彩纷呈的中国古代雕塑、工艺和建筑》优课比赛课件.pptx VIP
文档评论(0)