谈谈对测试驱动开发思想的体会
最近学习了一本书《Python Web开发:测试驱动方法》,贯穿全书的便是测试驱动开发的编程思想。有点儿兵马未动,粮草先行的兵家思想。先简单总结一下这本书带给我的收获:1.学习了测试驱动开发的一种编程思想,与传统的瀑布开发流程又很大的出入。2.学习了如何写好功能测试,如何写好单元测试。3.先通过测试,再谈重构。
好,下面简单聊聊我对这种编程思想的体会。
何为测试驱动开发
维基百科中队测试驱动开发又一个比较正式的介绍:测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名。测试驱动开发始于20世纪90年代。测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。
测试驱动开发是戴两顶帽子思考的开发方式:先戴上实现功能的帽子,在测试的辅助下,快速实现其功能;再戴上重构的帽子,在测试的保护下,通过去除冗余的代码,提高代码质量。测试驱动着整个开发过程:首先,驱动代码的设计和功能的实现;其后,驱动代码的再设计和重构。
按照我个人的理解:将业务需求转化为功能测试及单元测试,业务代码则为了通过测试而不断的迭代。
测试驱动开发利弊权衡(由于未实战过tdd,看法可能略显稚嫩)
- 通过测试驱动开发,能保证业务代码能满足需求,不断的重构,能保证系统功能的正常运行。但是对于代码质量的把控,貌似很难做到。
- 测试驱动开发思想其实并不难理解,流程无非也是在测试开发重构过程中不断流转,但是个人感觉在工程实践上其实难度挺大
- 就个人工作经验来看,目前多数企业对于项目代码质量把控很差,项目周期紧,领导总是抱着先上线,遇到bug再解决,故TDD的开发模式在很多公司,尤其是创业公司中很难推广开,由于前期测试覆盖度不够,开发急促,导致后期上线维护异常困难
- TDD的开发模式也应该分业务场景而看,但具体是哪些场景合适目前没有资格谈
TDD这种方式,还是得实践。然而以目前公司的平台,基本属于不可能。不过,就算不能在公司实践TDD的开发模式,它其中最重要的核心部分–测试,会让我在今后的开发过程中更加重视这部分。
谈谈对测试驱动开发思想的体会相关推荐
- 谈谈个人对 TDD (测试驱动开发) 的理解
文章目录 介绍 我心中的 TDD 如何做 Tasking 举个例子 - Tasking 纵向拆分 Story 背景 Story -- 粗略版 Story -- 清晰版 Story -- 扩充 Task ...
- 书评:测试驱动开发的艺术
读罢<测试驱动开发的艺术>,忽然想起中国传统文化中的"道器之辩".<易经>曰:形而上者谓之道,形而下者谓之器.中国的传统文化常常是重道轻器,认为道本器末,即 ...
- 浅谈测试驱动开发(TDD)
背景 一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦.国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从.最近兴起的一些软 ...
- 从测试角度对测试驱动开发的思考【转】
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量.本文主要从测试角度出发,从需求分解等四个阶段阐述了测试人员在测试驱动开发中所发挥的促进作用 大 ...
- Python 测试驱动开发读书笔记(一)使用功能测试协助安装Django
使用功能测试协助安装Django 本章节知识分为两部分 一是测试驱动开发(Test-Driven Development,TDD)的基础知识: 二是从零开始写一个Web的应用,并用Selenium进行 ...
- 敏捷开发 —— TDD(测试驱动开发)
测试驱动开发 TDD(Test-Driven Development)是敏捷开发的一项核心实践,同时也是一种设计技术和方法. 既然是测试驱动,便是测试,测试用例先行: 首先编写好测试用例,期待值,实际 ...
- Java重构与TDD测试驱动开发实际案例一-陈勇-专题视频课程
Java重构与TDD测试驱动开发实际案例一-2117人已学习 课程介绍 本课程将高深的重构与TDD理论埋藏在一个实际案例中,深入浅出地演示了重构与TDD的完整步骤. 在这个真实的案例中 ...
- 【软件测试】测试驱动开发与行为驱动开发
文章目录 测试驱动开发 行为驱动开发 测试驱动开发 TDD,测试驱动开发,从敏捷软件开发方法开始流行,是一种非常实用的质量保证执行方式.敏捷软件开发方法使得TDD流行起来. TDD的思想就是要在开发( ...
- 测试驱动开发(TDD)实战小例子(JAVA版)
我们知道,测试驱动开发(TDD)的基本思想就是在开发功能代码之前,先编写测试代码.也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用 ...
最新文章
- 自定义UISegmentedControl
- java奥运会安排赛程问题_记录奥运-当今五大Java记录框架之间的竞赛
- s5pv210——LCD基础理论
- debug和release的区别
- python整数运算_深入 Python (6) 整数对象的数学运算
- php语言注册信息表,php语言表的空结果
- Ubuntu enca命令可以用来查看文件的编码格式
- cgi进程设置多少 宝塔_Python Multiprocessing 多进程、进程守护、锁、队列使用介绍...
- python模拟gps定位_python 模拟 GPS, $GPRMC $GPRMC
- 宠物商店 - MLDN 李兴华老师
- bbs.FISHC.com//python_文件
- 小程序轮播图测试用例
- vue中使用阿里图标
- echarts年龄饼图_echarts饼图
- Linux进程地址空间
- React(7)—— SPA应用 - React路由机制 - react-router-dom
- 致远oa系统报价_用友致远OA 系统 一般多少钱?(公司60-70台左右的电脑)
- centos8搭建私有云盘CloudReve
- Python制作登陆界面(2)(中等级)
- git提交tag细节