烈火验真金,逆境磨意志——卢修斯?塞尼加
编写单元测试是一种验证行为,更是设计行为,更是编写文档行为。避免了反馈循环。
★4.1测试驱动的开发方法
设计程序先编写测试方案,单元测试是检验程序功能的唯一标准,不多加一个功能、不增加一行代码。
包罗万象的单元测试的好处:1.每项功能都有测试来验证其正确性。2.迫使我们从调用者的角度思考。3.迫使我们把程序编写为可测试的,易于调用的,和周边环境解耦的。4.测试可以作为文档,演示如何调用。
★4.1.1一个测试优先设计的示例
hunt the wumpus 捕获狮头象
先编写测试,从而目的是让测试通过,称为intentional programming。先编写的测试会影响设计方法。
★4.1.2测试促使模块之间隔离
★SLS:Mock – 假的 or 仿制的对象:认识Mock Object:http://bigwhite.blogbus.com/logs/535124.html
★4.1.3意外获得的解耦合
单元测试在解耦方面提供了很多推动和指导。例如:使用了Mock Object后,就可以对呗Mock的对象进行解耦,而不依赖于某个特定的对象。
★4.2验收测试
作为验证工具,单元测试是必不可少的,但还不够。
单元测试用于验证系统小的组成单元的功能,但没有验证系统做为一个整体时工作的正确性。
单元测试验证系统中个别机制的白盒测试(white-box tests)。验证测试是用来验证系统满足客户需求的黑盒测试(black-box tests)。
验收测试由不了解系统个内部机制的人编写。
验收测试是程序可以运行,一遍使用脚本语言编写。
首先编写验收测试的行为,对系统架构产生深远的影响。可以促进解耦。
项目迭代初期会受到手工的方式进行验收测试的诱惑。但是,这样做使得在迭代的初期就丧失了自动化验收测试需要带来的对系统解耦的推动力。
单元测试促使在小的方面做出优良的设计。验收测试促使在大的方面做出优良的设计。
创建一个验收测试框架是一个困难的过程。
★4.2.1验收测试示例
★SLS:这是一个非常超脱的例子,做得很通用。经典。值得借鉴。
薪水支付的验收测试。
★4.2.2意外获得的构架
用xml表示输入和输出是一个非常好的构架。
★4.3结论
测试套件运行起来越简单,机会越频繁的运行他们。从而越快的发现错误,系统失效的时间就决不会超过几分钟。整个时间会越来越短。
单元测试和验收测试都是一种文档形式,这些文档形式是可编译的、可执行的、因此他是准确的、可靠的。
测试的重要好处是对架构产生的影响。既“解耦”。
★SLS:本章要点:1.验收测试和单元测试促进解耦。2.自动化脚本提高测试效率,从而提高产品质量。
编写单元测试是一种验证行为,更是设计行为,更是编写文档行为。避免了反馈循环。
★4.1测试驱动的开发方法
设计程序先编写测试方案,单元测试是检验程序功能的唯一标准,不多加一个功能、不增加一行代码。
包罗万象的单元测试的好处:1.每项功能都有测试来验证其正确性。2.迫使我们从调用者的角度思考。3.迫使我们把程序编写为可测试的,易于调用的,和周边环境解耦的。4.测试可以作为文档,演示如何调用。
★4.1.1一个测试优先设计的示例
hunt the wumpus 捕获狮头象
先编写测试,从而目的是让测试通过,称为intentional programming。先编写的测试会影响设计方法。
★4.1.2测试促使模块之间隔离
★SLS:Mock – 假的 or 仿制的对象:认识Mock Object:http://bigwhite.blogbus.com/logs/535124.html
★4.1.3意外获得的解耦合
单元测试在解耦方面提供了很多推动和指导。例如:使用了Mock Object后,就可以对呗Mock的对象进行解耦,而不依赖于某个特定的对象。
★4.2验收测试
作为验证工具,单元测试是必不可少的,但还不够。
单元测试用于验证系统小的组成单元的功能,但没有验证系统做为一个整体时工作的正确性。
单元测试验证系统中个别机制的白盒测试(white-box tests)。验证测试是用来验证系统满足客户需求的黑盒测试(black-box tests)。
验收测试由不了解系统个内部机制的人编写。
验收测试是程序可以运行,一遍使用脚本语言编写。
首先编写验收测试的行为,对系统架构产生深远的影响。可以促进解耦。
项目迭代初期会受到手工的方式进行验收测试的诱惑。但是,这样做使得在迭代的初期就丧失了自动化验收测试需要带来的对系统解耦的推动力。
单元测试促使在小的方面做出优良的设计。验收测试促使在大的方面做出优良的设计。
创建一个验收测试框架是一个困难的过程。
★4.2.1验收测试示例
★SLS:这是一个非常超脱的例子,做得很通用。经典。值得借鉴。
薪水支付的验收测试。
★4.2.2意外获得的构架
用xml表示输入和输出是一个非常好的构架。
★4.3结论
测试套件运行起来越简单,机会越频繁的运行他们。从而越快的发现错误,系统失效的时间就决不会超过几分钟。整个时间会越来越短。
单元测试和验收测试都是一种文档形式,这些文档形式是可编译的、可执行的、因此他是准确的、可靠的。
测试的重要好处是对架构产生的影响。既“解耦”。
★SLS:本章要点:1.验收测试和单元测试促进解耦。2.自动化脚本提高测试效率,从而提高产品质量。