测试驱动开发-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 ...
最新文章
- ACM入门之【DP】
- 【SSH网上商城项目实战20】在线支付平台的介绍
- TCP相关的面试内容整理
- linux —— shell 编程(文本处理)
- 你敢花一天时间看完本文在简历上添一笔“熟练使用C++编程”吗?
- 西门子mag6000接线_电磁流量计MAG5000或MAG6000,通过脉冲输出累积流量,脉冲输出如何接线,如何设置参数?...
- win查看php 启动状态,windows上如何查看nginx是否启动
- [转]magento2项目上线注意事项 切换到产品模式
- SonicWall 紧急提醒:EOL 设备正遭勒索攻击!
- How to build .apk file from command line
- 科研小技巧——论文投稿视频制作指南
- 2021暑期学习之旅
- EVO工具在EUROC数据集TUM数据集,评测ORB-SLAM3和VINS-MONO
- python祝福,1024,用Python抽取你的专属祝福!
- Ubuntu更新显卡驱动及安装多版本cuda
- Hbase meta表介绍
- 两无线路由器连接方法
- python迭代器是什么_python中什么是迭代器
- angular学习-数据绑定
- MacOS 升级自带PHP5.6 升级到 PHP7.1