- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
敏捷软件开发第二讲-计划与测试
* * * * * * * * * * * * * Page * 跟踪 余量图(燃尽图):每一周过后,还有多少点数需要在下一个主要里程碑或者发布中完成。 Page * 测试驱动开发 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。 Kent Beck最早在其极限编程(XP)方法论中,向大家推荐“测试驱动”这一最佳实践,还专门撰写了《测试驱动开发》一书,详细说明如何实现。经过几年的迅猛发展,测试驱动开发已经成长为一门独立的软件开发技术,其名气甚至盖过了极限编程。 Page * 为什么要进行测试驱动开发 常见场景: 当有一个新的开发任务时,往往第一个念头就是如何去实现 它呢? “应该是这么做的吧,嗯,差不多就是这样的” 。 抓起任务就开始编码,一边写,一边修改和设计。 时间这么紧!我还是先实现任务吧,然后再好好测试。 还是不工作,时间不多了。不管了,还是先做个实现,以后再来整理代码吧。 我已经单步调试了好几次了,遍历了所有可能的分支,应该不会有问题了,提交,今天可以好好休息一下了。 要不要写单元测试把我刚才单步调试的步骤写下来啊?那样是很好,但工作量很大哦。 Page * 为什么要进行测试驱动开发 常见场景: 这样的情况要作自动测试太复杂了。还是手工测试一下吧。 程序员应该做些有创意的东西,这样才有趣啊。 测试是QA的事,我为什么要做啊,我做了他们干什么啊。 奇怪了,怎么代码跟开发文档上有这么大的差别啊。 这段代码究竟想表达什么意思? 代码现在越来越乱了,我都不敢修改代码了,修改了这个地方,天晓得会引起多少别的地方出错啊! 这个地方的代码怎么好象在那个地方看到过啊?这个程序里怎么会有这么多的重复代码呢? Page * 为什么要进行测试驱动开发 常见场景: 开发部在干什么啊,BUG怎么这么多,他们有没有自己先测试一下啊。 这下好了,让他们修改了一个BUG,现在一下子来了这么多的BUG。 他们到底在搞什么啊,有没有从用户的角度考虑啊,我新增一个采购订单,订单项竟然可以输入负数。 为了消除上面的各种抱怨,可以考虑使用TDD。因为测试驱动所追求的目标就是代码整洁可用,其实现目标为: 1.只有测试失败时,我们才写代码 2.消除重复设计,优化设计结构 Page * 测试驱动开发方法 TDD简单来讲就是每当需要添加一个新功能,或修改现有功能时,首先思考这部分代码期望达到的输入与输出,先把验证该业务的单元测试用例写出来,再去写最简单的实现代码来通过该测试;不断重复此过程直到完成整个功能。 例如:下面程序中testMove方法描述一个测试,连接在4号房间的东边是5号房间,向东移动应该断言玩家在5号房间中。 代码: Public void testMove(){ WumpusGame g=new WumpusGame (); g.connect(4,5,”E”); g.setPlayerRoom(4); g.east(); assertEqual(5,g. getPlayerRoom()); } Page * 测试驱动开发步骤 典型的TDD开发步骤: Step 1:分析并确定一个目标测试场景 Step 2:添加一个单元测试来验证该测试场景的输入输出 Step 3:运行该测试,得到失败的测试结果 Step 4:写最简单的功能代码来通过该测试 Step 5:再次运行该测试,看到测试通过 Step 6: 进行代码重构,包括功能代码和单元测试代码 Step 7:重复以上步骤,直至开发完成 Page * 测试驱动开发步骤 Page * 测试促进模块之间的隔离 耦合在一起的薪水支付系统模型 Page * 测试促进模块之间的隔离 单元测试在解耦方面提供了很多推动和指导。例如:使用了Mock Object后,就可以对被Mock的对象进行解耦,而不依赖于某个特定的对象。下面是使用访对象Mock Object设计模式引入Payroll类的测试类test Payroll: Page * 测试促进模块之间的隔离 解除了耦合的薪水支付系统的应用模型 Page * 测试促进模块之间的隔离 解除了耦合的薪水支付系统的应用模型 Page * 验收测试 作为验证工具,单元测试是必不可少的,但还不够。单元测试用于验证系统小的组成单元的功能,但
您可能关注的文档
最近下载
- 内务整理班会.pptx VIP
- 《世界的物质性》课件.ppt VIP
- 长沙理工大学继电保护课程设计—水电站35kV线路电流保护设计三段式电流保护整定计算工程设计.doc
- 1998—2019北京市中考数学试卷含详细解答(历年真题).pdf VIP
- 2025年新高考英语复习 听力满分策略+真题练习(学生版+解析版)含听力音频 .docx VIP
- DZT0316—2018-砂石行业绿色矿山建设规范.pdf VIP
- T∕BECC 002-2024 智算中心技术要求和评估方法.pdf
- 自我管理(中职通用职业素质课程)全套教学课件(220页).pptx VIP
- 医护人员岗位能力提升策略.pptx VIP
- 智能加工技术:课程标准解读与学习指南.docx VIP
文档评论(0)