- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
测试驱动开发实践
一.前言
不知道大家有没听过 “测试先行的开发”这一说法,作为一种开发实践,在过去进行开发 ,一
般是先开发用户界面或者是类,然后再在此基础上编写测试。
但在TDD 中,首先是进行测试用例的编写,然后再进行类或者用户界面的开发。由于要先开发测
试用例,那么开发人员就必须清楚测试的目的,所测功能模块的业务逻辑以及需要测试的场景。
这样TDD确保了项目的代码与所需的业务是匹配的,并且在日后的开发工作中也能确保之前所做
的功能的可测试性。
很多同学问TDD是使用那种编程语言,或者是某种技术,这里需要明确的是,TDD并不是某种技
术,而是一种项目实践。
导语:
传统开发模式与TDD开发模式的区别在哪里?TDD开发的困难之处和优点是什么?TDD具体开发
过程中又需要用到哪些技术知识点?且看本文作者通过实例来为你阐述TDD 的开发流程,让你对TDD
有一个大致的了解。
二.传统开发模式与TDD开发模式
1. 传统开发模式流程:
项目代码开发 - 编写测试用例 – 运行测试用例 - 修复代码BUG
2. TDD开发模式流程
编写测试用例 - 运行测试用例 – 编写项目代码 - 运行测试用例 - 重构代码
三.TDD入门难题
说到写测试用例,一般的同学都觉得没啥问题,就根据已有的代码,顺着葫芦摸瓜的就把该测试
的方法都照着 “套”一遍,测试有哪些结果也得顺着项目的代码来。
至于这测试代码能不能测出项目的问题,那是另外的问题,关键是测试代码要Pass,那我的工
作才能算完。
但是要在还没项目代码之前写测试用例,那就是等于我要凭空想象那些个抽象又晦涩难懂的功能
点,还得要在心中勾勒出它们的轮廓以及细节,这不等于让我自己画个饼来充饥么?问题是我连这饼
应该是啥样子都还没个谱,这是何等的悲凉啊,要是 “蓝胖子”在我身边就好了~
四.TDD 的优点
1. 保证代码质量,鼓励开发人员仅编写满足需求的代码。
“李雷”同学号称马虎王,经常各种物品丢失,比如女友(对象)丢失;借用物品 (引用)丢失;
使用 “IO 自来水”之后不关阀门;去仓库(Database)取货,因为忘记某些物品,不得不频繁往返
等等。
“韩梅梅”同学功力深厚,精心打造出了一段瑞士军刀般的代码,耗 5天 (其实此功能客户无
扩展需求仅要求1天时间完成)。
而在TDD实践中,我们需要注重代码质量,并编写刚好适量的代码。
2. 保证代码与业务需求的一致性
一般来讲程序员都愿意把功能完美的体现在代码上,可有时候天不随人意,心里免不得担忧,我
这代码能满足业务需求么?但在TDD 中,首先是进行测试用例的编写,然后再进行类或者用户界面的
开发。由于要先开发测试用例,那么开发人员就必须清楚测试的目的,这样TDD确保了项目的代码与
所需的业务是匹配的。
3. 创建简明有针对性的接口
一日, “李雷”接到 “韩梅梅”发来的为某个功能准备的闯关宝典和核心步骤(类库与接口)。
可读了3000遍还是没有能理解,一方面是 “韩梅梅”采用了古代文言文与现代拉丁语的混搭来书写
核心步骤,另一方面 “韩梅梅”的 “韩”式1到1000000的命名规则让 “李雷”在读了30秒核心步
骤后,已经不知道第几条是第几条,。
在TDD实践中,我们要注重创建有意义的、简明的接口,因为这一点在与他人合作中尤其重要。
4. 与用户沟通,明确需求
在开发代码的过程中,我们总会有遇到不太明确的需求点,这个时候和需求人员沟通那是必不可
少的,了解了功能的输入和输出才能保证完美的完成任务。在沟通的过程中也加深了与客户的信任和
默契度,不知不觉中还能提高EQ,一举两得。
5. 回归测试,确保新的更改不影响现有功能
在 “韩梅梅”同学开发某个功能3个月后,“李雷”接到上级指示,客户要扩展该功能,但是原
有功能保持不变。在苦心操劳了之后,“李雷”同学光荣的完成了任务,正准备接受大家赞誉 ,“韩
梅梅”跳出来向大家诉苦,那就是“李雷”为了做扩展功能把她之前做的功能给弄坏了,当 “李雷”
那个心啊,拔凉拔凉的!
TDD 的开发中加入了回归测试,这样就确保了之前的功能的正确与完整性,减少不必要的问题。
6. 提升系统的开放性和扩展性
一直以来我们做事都要讲先后顺序,软件开发也有着类似的工序。“李雷”和 “韩梅梅”被一
您可能关注的文档
最近下载
- 计算机兴趣小组活动计划.docx VIP
- 人民币实际有效汇率波动对天津市贸易收支影响的实证研究的中期报告.docx VIP
- 中国石狮子PPT课件.pptx VIP
- 2025年全国高考(新课标)化学真题卷含答案解析 .pdf VIP
- 新部编小学语文五年级上册看拼音写词语.docx VIP
- 人教版(2025)必修第三册Unit 1 Festivals and celebrations Discovering Useful Structures 课件(共46张PPT)(含音频+视频).pptx VIP
- 年产2500吨高端氟材料项目环评报告表.pdf VIP
- 临床微生物室标准操作程序SOP.pdf VIP
- Boss Roland逻兰RC-600 乐句循环工作站RC-600 中文用户手册 说明书.pdf
- 2025年秋季湖北武汉市华中师范大学校友工作办公室学生助理招聘笔试历年典型考题(历年真题考点)解题思路附带答案详解(5套).docx VIP
文档评论(0)