构建之法阅读笔记02

1、我过去是怎么做的(或者我过去看见谁是怎么做的)

由于之前学习或者写的一些程序规模很小,所有代码都写在一个文件里,从来没有写单元测试的习惯。而且觉得写规格说明书或者软件说明书之类的文档甚至是在浪费时间。

2、结合书中所讲,说明为什么这样不好

书中举的例子:有些软件写了好几年都没有发布,也许是因为他们没有在一开始就写单元测试,所以后来就有很多问题要处理。很多调查显示,在软件开发后期发现的bug,修复起来要花更长的时间。在写技术模块的规格说明书的时候,要越详细越好。单元测试也能帮助程序员记录这个模块的历史和设计变更的理由。

我在后来的学习和编程练习中,由于代码量的增大,有时程序中会出现一些bug,但是要找到其具体出错的症结所在,要耗费大量的时间和精力,有时甚至想要放弃写的全部代码,重新写一遍。

3. 提出一个解决办法,避免再次掉入陷阱

单元测试应该准确、快速地保证程序基本模块的正确性。所以单元测试它是程序中重要而不可或缺的一部分。

那么我们写单元测试时要以“好的单元测试的标准”为依据:

(1)单元测试应该在最基本的功能/参数上验证程序的正确性。

(2)单元测试必须由最熟悉代码的人(程序的作者)来写。

(3)单元测试过后,机器状态保持不变。

(4)单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)。

(5)单元测试应该产生可重复、一致的结果。

(6)独立性——单元测试的运行/通过/失败不依赖于别的测试,可以认为构造数据,以保持单元测试的独立性。

(7)单元测试应该覆盖所有代码路径。