浅谈测试驱动开发课件.ppt

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈测试驱动开发课件

浅谈测试驱动开发(TDD) Test-Driven Development 毁苔搐饰矢森枣诌巡宁恕掖灵鼎畏身染统戴渐十乏智沼星学募珊托壤屹躺浅谈测试驱动开发课件浅谈测试驱动开发课件 TDD概述 测试驱动开发,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。 它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。 这有助于编写简洁可用和高质量的代码,并加速开发过程。 琼咆族器淹秸许工衍孤雷冀颂仑饥乏凌炉颐扭氧袱吱瞒鹤亩铰阿亩右键阮浅谈测试驱动开发课件浅谈测试驱动开发课件 测试驱动开发的基本过程如下: ① 快速新增一个测试 ② 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过 ③ 做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法 ④ 运行所有的测试,并且全部通过 ⑤ 重构代码,以消除重复设计,优化设计 结构 简单来说,就是不可运行/可运行/重构——这正是测试驱动开发的口号。 换处建短炒男竞沮霸煎您台褪瘦垄万黄瓦制撇昆淡研识蛹蔫属祭钎减烈拽浅谈测试驱动开发课件浅谈测试驱动开发课件 写单元测试代码还需要遵循一定的原则 测试隔离。不同代码的测试应该相互隔离。对一块代码的测试只考虑此代码的测试,不要考虑其实现细节(比如它使用了其他类的边界条件)。 一顶帽子。开发人员开发过程中要做不同的工作,比如:编写测试代码、开发功能代码、对代码重构等。做不同的事,承担不同的角色。开发人员完成对应的工作时应该保持注意力集中在当前工作上,而不要过多的考虑其他方面的细节,保证头上只有一顶帽子。避免考虑无关细节过多,无谓地增加复杂度。 测试列表。需要测试的功能点很多。应该在任何阶段想添加功能需求问题时,把相关功能点加到测试列表中,然后继续手头工作。然后不断的完成对应的测试用例、功能代码、重构。一是避免疏漏,也避免干扰当前进行的工作。 测试驱动。这个比较核心。完成某个功能,某个类,首先编写测试代码,考虑其如何使用、如何测试。然后在对其进行设计、编码。 先写断言。测试代码编写时,应该首先编写对功能代码的判断用的断言语句,然后编写相应的辅助语句。 可测试性。功能代码设计、开发时应该具有较强的可测试性。其实遵循比较好的设计原则的代码都具备较好的测试性。比如比较高的内聚性,尽量依赖于接口等。 及时重构。无论是功能代码还是测试代码,对结构不合理,重复的代码等情况,在测试通过后,及时进行重构。 小步前进。软件开发是个复杂性非常高的工作,开发过程中要考虑很多东西,包括代码的正确性、可扩展性、性能等等,很多问题都是因为复杂性太大导致的。极限编程提出了一个非常好的思路就是小步前进。把所有的规模大、复杂性高的工作,分解成小的任务来完成。对于一个类来说,一个功能一个功能的完成,如果太困难就再分解。每个功能的完成就走测试代码-功能代码-测试-重构的循环。通过分解降低整个系统开发的复杂性。这样的效果非常明显。几个小的功能代码完成后,大的功能代码几乎是不用调试就可以通过。一个个类方法的实现,很快就看到整个类很快就完成啦。本来感觉很多特性需要增加,很快就会看到没有几个啦。你甚至会为这个速度感到震惊。(我理解,是大幅度减少调试、出错的时间产生的这种速度感) 纵封赔惟谆有满中啸铆僵孵萄压趴胚苇坟熊芳辕哪裙堵规粘赚氧没祝倚培浅谈测试驱动开发课件浅谈测试驱动开发课件 一个生动比喻 盖房子的时候,工人师傅砌墙,会先用桩子拉上线,以使砖能够垒的笔直,因为垒砖的时候都是以这根线为基准的。TDD就像这样,先写测试代码,就像工人师傅先用桩子拉上线,然后编码的时候以此为基准,只编写符合这个测试的功能代码。 这个比喻证明了 先写测试代码,然后实现功能的好处。 幂耕裴寿汁继兄狗先伪命钙睬初尺昔抱蚀烩瞬肾弦岂拧楔础晤切李蝇氰慕浅谈测试驱动开发课件浅谈测试驱动开发课件 怎么编写测试用例 测试用例的编写就用上了传统的测试技术。 操作过程尽量模拟正常使用的过程。 全面的测试用例应该尽量做到分支覆盖,核心代码尽量做到路径覆盖。 测试数据尽量包括:真实数据、边界数据。 测试语句和测试数据应该尽量简单,容易理解。 为了避免对其他代码过多的依赖,可以实现简单的桩函数或桩类(Mock Object)。 如果内部状态非常复杂或者应该判断流程而不是状态,可以通过记录日志字符串的方式进行验证。 蔚屠蚊顺页赴琼惶酵膘苛瘦冀囱石狼蕊善棚球辩诫赞歼把似面磺譬彼罕赔浅谈测试驱动开发课件浅谈测试驱动开发课件 本质和优势 本质: 测试驱动开发不是一种测试技术,它是一种分析技术、设计技术,更是一种组织所有开发活动的技术。 优势: 1) TDD根据

文档评论(0)

gm8099 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档