测试驱动开发是测试作为软件开发过程的中心,它要求在编写任何产品代码之前,编写测试产品代码行动的测试,而编写产品代码又是以测试代码通过为目标.
测试驱动 以 测试为 开发中心,;开发顺序:编写测试代码,编写产品代码,编写产品代码以测试代码为目标,不断迭代开发
驱动测试开发(tdd) 所追求的目标: 代码整洁可行(clean code that works) ;
代码整洁可行基于以下几个原因:
(1) 是一个可预测的开发方法 ;
(2) 给我们全面认识和利用代码的哦机会;
(3) 改善开发软件用户的开发环境 ;
(4) 让软件开发小组这件相互依赖 ;
(5) 这样开发代码感觉更好,更自信 ;
TDD:两条规则:
2.消除重复设计,优化设计结构 .
为测试简单:这个开发规划必须由高内聚,低耦合 ;
软件开发经历的过程:
1.不可运行---写一个不能工作的测试程序,一开始可以这个程序甚至可以不能编译.
2.可运行---尽量让这个测试程序工作起来,为此可以添加一些不合情理的代码.
3.重构 --消除在测试程序中的重复设计,优化代码结构 .
测试驱动开发口号:不可运行/可运行/重构
勇气
测试驱动开发是一种消除忧郁感的软件开发方法 .
本书包含三部分:
1.the money Example
2.xUnit
3.patterns for test driven development ;
第一部分: 资金实例
目标:了解Tdd流程:
(1) 快速新增一个测试.
(2) 运行所有测试,发现新测试不能运行.
(3) 做一些小小的改动.
(4) 运行所有测试,让全部测试可运行 .
驱动测试开发总体流程:
(1)写一个测试程序
(2) 让测试程序运行起来
(3)编写合格的产品代码(clean code that works)
分之解决代码重构:先解决代码符合代码规定职责,再优化代码结构 .
每个开发周期cycle都分为不同的阶段
(1)写一个测试程序
(2)让编译测试程序通过
(3) 运行测试程序,发现不能运行,
(4) 让测试程序可以运行
(5) 消除重复设计,优化代码结构
三种实现通过运行:
(1) 伪实现
(2) 显示实现
(3) 三角法
衡量测试的方法:
(1)语句覆盖
(2) 缺陷插入 改变一行代码的意思,让测试代码不能通过 .
把消除代码和测试间的重复性作为驱动测试的手段 ;
测试是程序的实验石
测试优先 断言优先
测试数据 :永远不要用常量来表示多种不同的意思 ;