测试驱动开发-TDD(1)
测试:作为动词,它是评估的意思;作为名词,它是导致最终是接受还是不接受的过程。
测试是相互独立的。
测试列表,就跟你生活中记录你的工作计划一样。
测试优先:你应该在什么时候编写测试呢?在你编写要被测试的代码之前。
断言优先:我们什么时候写断言呢?在一开始就写断言。
什么时候开始构建一个系统?从对最终系统的描述开始。
什么时候开始编写一项功能?从希望最终代码通过的测试开始。
什么时候开始编写一个测试?从测试完成时需要通过的断言开始。
测试数据:一个是编排数据,一个是真实数据。
如何表达数据的意图?让测试自身包含预期和实际的结果,并且努力使他们的关系明显化。
尽量不要使用魔数!
什么是魔数?在代码中出现但没有解释的数字常量或者字符串。
一步测试:你将从测试列表中选择编写哪一个测试呢?选择那个具有指导意义而且你有把握实现的测试。
启动测试:我们应该从哪个测试开始呢?从测试某个实质上不做任何工作的操作开始。输出应当跟输入一样;输入应该尽可能的少。
说明测试:如何拓展自动测试呢?利用测试来请求及提供说明解释。
学习测试:你什么时候开始为外部软件编写测试呢?在你第一次准备使用这个包中的某一项新功能的时候。
要学会使用setUp()...test***()... tearDown()...
回归测试:当一个错误被发现时,你最想做的第一件事是什么呢?写一个尽可能小的会失败的测试,一旦运行,就对其加以修缮。什么是回归测试?指修改了旧代码以后,重新进行测试,以确认修改没有引入新的错误或导致其他代码的错误。
重新开始:当你迷茫了,迷失方向了怎么办?扔掉原来的代码,重新开始。
测试模式:
子测试(如果一个函数D包含了3个子函数模块A,B,C,那么就先测试A,B,C,再最后测试D),
模拟对象(比如如何模拟一个数据库),
自分流(没看懂),
日志字符串(JUNIT原理),
清扫测试死角(对异常测试),
不完整测试(中断工作接着恢复的法宝,使测试不完整,它能帮你恢复到离开时的那段记忆)
提交前保证你的所有测试运行通过(测试套件比测试用例更具有意义;未通过的测试强烈表明你对刚刚编码的东西没有充分的了解)
测试驱动开发-TDD(1)相关推荐
- 测试驱动开发(TDD)实战小例子(JAVA版)
我们知道,测试驱动开发(TDD)的基本思想就是在开发功能代码之前,先编写测试代码.也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用 ...
- 「敏捷架构」核心实践:测试驱动开发(TDD)简介
测试驱动开发(TDD) 是一种渐进的开发方法,它结合了测试优先的开发,即在编写足够的产品代码以完成测试和重构之前编写测试.TDD的主要目标是什么?一个观点是TDD的目标是规范而不是验证(Martin, ...
- Python测试驱动开发(TDD)
Python测试驱动开发(TDD) 前言:TDD是一种敏捷开发模式,而不是测试方法. 测试很难 --- 难在坚持,一直做下去. 现在花时间编写的测试不会立即显出功效,要等到很久以后才有作用 --- 或 ...
- 测试驱动开发(TDD)的实践
测试驱动开发(TDD)的实践 本文作者: Mr.J 本文链接: https://jiangtj.com/articles/almond/test-driven%20development/ 测试驱动开 ...
- 测试驱动开发-TDD
测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能 ...
- java测试驱动开发_java测试驱动开发(TDD)之《遥控军舰》
永久更新地址:https://my.oschina.net/bysu/blog/1647738 写在前面:若有侵权,请发邮件by.su@qq.com告知. 本文主要是学习<Java测试驱动开发& ...
- C++ 测试驱动开发 TDD(一)
文章目录 TDD 介绍 Soundex 算法示例介绍 增加Soundex 算法测例1 增加Soundex 算法测例2 Soundex 算法测例1 .2重构 后记 最近阅读了<C++程序设计实践与 ...
- java测试驱动开发(TDD)之《井字游戏》
为什么80%的码农都做不了架构师?>>> 永久更新地址:https://my.oschina.net/bysu/blog/1632393 写在前面:若有侵权,请发邮件by.su ...
- tdd测试驱动开发课程介绍_测试驱动开发的实用介绍
tdd测试驱动开发课程介绍 by Luca Piccinelli 通过卢卡·皮奇内利 测试驱动开发很难! 这是不为人知的事实. (Test Driven Development is hard! Th ...
最新文章
- 谷歌如何评估产品经理?
- Linux入门之运维(1) 系统监控 vmstat top
- 【安卓开发 】Android初级开发(七)MD5加密
- JEECG(J2EE Code Generation) 基于代码生成器J2EE智能开发框架 杂记:发布新版本 JEECG_v2.0
- Github排序(转载)
- 轻量级 Lock Free 线程安全的 QueueT 的C#2.0实现
- 因使用五年前的老旧代码,Azure 容器险遭黑客接管,微软已修复
- NetBeans 时事通讯(刊号 # 51 - Apr 07, 2009)
- 官方client php api接口日记
- 微信小程序图标样式的引用
- 小米笔记本pro lol测试软件,小米笔记本ProGTX版评测 到底好不好用
- java ITEXT实现PDF生成二维码和条形码
- 010-java 表单方式或者base64方式上传图片,后端使用nutz的post转发图片到另一个请求...
- 谈谈人工智能的罪与罚
- java标准差代码实现
- cesium加载谷歌影像底图
- [Eureka集群] 在linux上部署SpringCloudEureka的集群服务端(Dalston.SR5版本)
- 相机标定中各种标定板介绍以及优缺点分析
- oracle数据库12cocp培训教程,ORACLE OCP认证 12C课程大纲
- 2021-12-12周报
热门文章
- 天猫魔盒android开发者模式,【当贝市场】天猫魔盒3 PRO开启远程调试模式教程
- 微信小程序仿朋友圈上传图片到服务器,后端通过C#实现
- 备份方法scp rsync,inotifywait
- Cadence OrCAD Capture instance属性和occurences属性的区别
- 灰度共生矩阵:Gray-Level Co-occurrence Matrix
- 【实战】我背着女朋友,用 Python 偷偷抓取了她的行踪
- 算法--获取生成数组中的最大值(Kotlin)
- python 闭包理解与应用
- 高二计算机原理公开课教案,《山羊兹拉特》公开课教案 (人教版高二选修)
- 常用转换工具:时间,周期,频率 dBm,VPP,mW