重视测试的开发过程

在2003,Ken Beck发表了有关TDD的开发概念,令很多程序员重新重视测试的重要;
也而且成为“敏捷开发"其中一个重要部分;
基本上在学习中,很少情况,学校和导师跟你说要进行很多测试;
通常的做法就是“编码后能跑到”就可以了。
如果开发的目的学习,或者演示之用,这样是可以的;
但是如果开发大型的应用,这样做会做出很多问题;

~~ 没有测试的情况 ~~
1. 开发流程:
了解需求 -> 编写代码 -> 完成 -> 测试

2. 测试阶段是通常会遇上的这些问题:
a) 没有测试环境:
测试不了,因为他需要其他功能,测试数据,或者测试服务器;

b) 找不出BUG的来源
Bug出现了,但是已经了几千行代码,找不出问题的根源 =.=

c) 没完没了的DEBUG
- 测试好了,交付给用户;但是用户测试了一会,程序崩溃了;
改了后,再交付,又有出现问题......


~~ 引进测试之后 ~~
a) 没有测试环境:
在开发同时,其实同时处理了测试环境,模拟数据等操作;

b) 找不出BUG的来源
当程序包含了单元测试,就可以容易找出出现问题的地方和
什么数据引起错误;

c) 没完没了的DEBUG
如果有做"regression test",每次发布前测试所有unit test
就可以避免DEBUG或增加代码时,同时产生其他bugs;
如果没有"regression test"的环境,也可以检查相关的unit test;


~~ 总结 ~~
如果代码没有测试,就不能保证它能正常执行;
所有越多测试和程序越便利于测试,可以保证你的程序越少BUG了;


作者: kenlee

Tweet: https://twitter.com/kenlakoo

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...