TDD,测试驱动开发,从敏捷软件开发方法开始流行,是一种非常实用的质量保证执行方式。敏捷软件开发方法使得TDD流行起来。

TDD的思想就是要在开发(设计和编码)应用程序代码(要测试的单元)之前,必须先编写出测试用例和测试脚本以及测试程序。
TDD颠倒了传统的活动顺序,使得应用程序代码的编写滞后于测试代码的编写,但只要编写好应用程序代码,就可以立即使用测试代码来对其进行测试。

TDD不仅要求在编写应用程序代码前编写出测试代码,而且要求应用程序必须通过测试才能保证质量,才能够建造出有质量的软件系统。

TDD的理论核心是“红灯、绿灯、重构”,这描述了一种编码和测试的理想流程:

  • 红灯:首先完成一个或多个单元测试代码,用来测试那些尚未完成的功能代码。测试会失败,测试框架显示一个红色的符号。
  • 绿灯:用最少的代码让测试通过,不需要考虑代码的优雅和扩展性,只关注测试能否通过。测试一旦通过,测试框架显示一个绿色的符号。
  • 重构:让代码通过新测试,并修改代码,提高代码的可维护性,使其符合质量标准。

TDD的好处为:

  • 先写测试代码会让程序员在编码前思考具体需求,在后期减少编码的重复工作。
  • 促使程序员用最少的代码通过测试,然后停止编码,最小化代码膨胀造成的负面影响。
  • 促使程序员写出更易于测试的代码,这种代码往往也是模块化的代码,对外部模块的依赖性也最小。

由于预先得到了测试代码,为了满足测试代码要求的功能,程序员可以只针对要测试的验证点来编写应用程序代码。因此,TDD实质上是主动地驱动了软件开发,而不仅仅是对软件的验证。

TDD的流行导致了很多相关的模式和框架的流行,例如xUnit。
JUnit框架基于组合模式开发,为Java提供了Test接口,这个接口基于TestCase和TestSuite两个类实现。

BDD是TDD的进化,意为行为驱动开发。
二者的结果一样,都是代码化的单元测试。BDD更关注单元的行为并引入了一些特定词汇,有助于团队的交流和测试文档的编写。

【软件测试】测试驱动开发相关推荐

  1. 在敏捷中应用测试驱动开发

    在敏捷和DevOps领域,企业越来越关注持续集成和持续部署问题.他们更频繁地更新软件,给软件测试造成额外的时间压力.而测试驱动开发可以成为解决这个问题的一剂良方. \\ 什么是测试驱动开发? \\ 测 ...

  2. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。

    测试驱动开发 测试前移 by Andrea Koutifaris 由Andrea Koutifaris Test driven development has become popular over ...

  3. 测试驱动开发_DevOps之浅谈测试驱动开发

    "测试驱动开发(Test-Driven Development, TDD),以测试作为开发过程的中心,它要求在编写任何产品代码之前,先编写用于定义产品代码行为的测试,而编写的产品代码又要以使 ...

  4. 简单的11步在Laravel中实现测试驱动开发

    测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名. 下文是我在Mediu ...

  5. 被高估了的测试驱动开发?

    测试驱动开发(TDD)始于上世纪 90 年代,时至今时今日,依然只有少数的开发者在践行着.本文作者从软件开发者的角度,又一次帮助我们定义了测试驱动开发,解答了众多开发着对 TDD 常见的谬误. 作者 ...

  6. C++ 测试驱动开发

    看到一篇非常好的C++测试驱动开发文章,这里转载下. 测试驱动开发(TDD)背景及综述 测试驱动开发是 Kent 提出的一种新的软件开发流程,现在已广为人知,这种开发方法依赖于极短重复的开发周期,面对 ...

  7. 面向 C++ 的测试驱动开发

    测试驱动开发(TDD)背景及综述 测试驱动开发是 Kent 提出的一种新的软件开发流程,现在已广为人知,这种开发方法依赖于极短重复的开发周期,面对开发需求,开发人员要先开发代码测试用例,这些代码实现的 ...

  8. 如何使用 Django 进行测试驱动开发,我来告诉你

    所谓测试驱动开发(TDD),就是先编写测试用例,然后编写代码来满足测试用例,具体包含以下步骤: 编写测试用例. 编写代码满足测试用例中的需求. 运行测试用例. 如果通过,说明代码满足了测试用例所定义的 ...

  9. servlet实现简单登录功能-基于测试驱动开发TDD

    今天学习了测试驱动开发(TDD)模式,用这个方法写一个简单的前端登录功能(基于servlet&Jsp的登录功能-三层架构实现) 不知道测试驱动开发,可以点这个: https://blog.cs ...

最新文章

  1. 1-2 用Python编写【房价预测】模型----paddle
  2. smartgit 授权文件 Free Trial License to Non-Commercial
  3. Python 测试开发从入门到高手成长之路
  4. 大型Java项目架构演进
  5. iphone屏幕录制_无需第三方APP,苹果iPhone手机屏幕录制的方法
  6. Github Actions:再次改变软件开发
  7. java的web项目资源访问规则
  8. 计算机二级web考点,2018年计算机二级考试WEB考点:web应用程序状态管理方式
  9. 王爽 汇编语言程序课程设计1
  10. matlab单回路和串级控制回路,串级控制回路PID参数如何整定?
  11. 最新服务器CPUe5,看这里!2019 至强 Xeon E5 服务器系列 CPU 天梯图分享
  12. 计算机属性资源管理器已停止工作,windows资源管理器已停止工作,教您windows资源管理器已停止工作如何解决...
  13. 专访Women in AI学者黄惠:绘图形之梦,寻突破之门
  14. vue修改vant自带的样式_@jie
  15. 滴水逆向作业——指针04
  16. MATLAB的汽车操纵稳定性仿真分析
  17. orb-slam3:优化状态量是camera坐标系下RPV还是body坐标系下RPV探究
  18. 小代码3 魔方矩阵
  19. 华科实验室信息汇总:
  20. 软件测试的发展趋势怎么样?

热门文章

  1. JS关键字和保留字汇总(小记)
  2. PhpStorm之操作数据库
  3. Maven知识点整理
  4. python 内置模块-re
  5. KMP算法(快速模式匹配)
  6. Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
  7. MySQL数据库开启root用户远程登录
  8. 批改网禁止粘贴怎么破_重大利好!教育部声明,要求家长批改作业等行为,发现一起严处一起...
  9. python博客源码下载_Python生成并下载文件后端代码实例
  10. ege限制鼠标移动的函数_浅谈函数节流和函数防抖