一个实例搞懂TDD(测试驱动开发)

一 TDD是什么?

TDD(Test-Driven Development)是敏捷开发中的一项核心实践和技术,也是一种设计方法论,其基本思想是:在明确要开发某个功能后,在开发功能代码之前,先编写测试代码,然后编写功能代码并用测试代码进行验证,如此循环直到完成全部功能的开发。

二 TDD实战方法举例

为了弄清楚TDD的思想和原理,现假设一个需求场景,并运用TDD的方法实现该需求。

需求描述:

实现一个检查给定数字是否为质数的函数(is_prime)

利用TDD的思想实现该需求的步骤如下:

1. 分析需求:

        A. 接收一个参数,且为数值类型;

        B. 判断该数值是否为质数,返回bool值;

2. 设计测试用例(TDD的核心:开发功能代码前先实现测试代码):

3. 开发测试代码:

4. 开发功能代码(使用测试代码验证功能代码,驱动功能完善):

因测试用例#3发现缺陷,需要修复该缺陷,修复后的实现版本标记为V2,如下:

因测试用例#5发现缺陷,需要修复该缺陷,修复后的实现版本标记为V3,如下:

本次测试用例全部通过,功能实现在有限用例的验证下已符合需求。

三 总结

本文通过一个实例对TDD(测试驱动开发)的思想进行了讲解,TDD的基本思想是开发功能代码前,先开发测试代码,并用测试代码验证功能实现是否满足需求或存在缺陷,在测试代码的驱动下优化功能代码的开发;TDD的实施手段是单元测试,通过上述实例,也能清楚认识到,在每次版本改动后,使用测试用例验证了版本修复情况,同时也验证了本次改动是否引起回归问题。由此,TDD中测试代码的作用:在被测代码发生改动后,执行单元测试用例即可验证本次改动是否对函数原有功能造成影响,是未来函数重构的信心保证。

四 其他资源

关于TDD:请参看http://i.youku.com/weiworld521 第22节;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,533评论 19 139
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 22,386评论 7 278
  • 1****、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决? 首...
    蛋炒饭_By阅读 5,395评论 1 94
  • 本文结构: 什么是 TDD 为什么要 TDD 怎么 TDD FAQ 学习路径 延伸阅读 什么是 TDD TDD 有...
    李浪溪_WaterLee阅读 76,742评论 16 168
  • 上了将近两个月的班,总算有点进展,可是快到该签时,来了别的搅局的事,我茫然了,是自己太急切还是自己现在没有好的定位...
    水滴2009阅读 296评论 0 0

友情链接更多精彩内容