单元测试的必要性
前言
积土成山,风雨兴焉。
单元测试堪比汽车零件检测
据估计,一般轿车约由1万个不可拆解的独立零部件组装而成。结构极其复杂的特制汽车,,如F1赛车等,其独立零部件的数量可达到2万个之多。可以设想下,如果汽车组装企业在没有对这些独立零部件进行检定的情况下就把整车组装好,结果发现汽车无法启动,这该是一件多么令人沮丧的事情。想要排查到底是哪个零件出现了问题恐怕也是没有那么容易,如果哪个汽车组装企业是这么做的,估计离关门大吉也不远了。
软件系统就相当于整车,软件单元就相当于汽车中不可拆解的独立零部件,引入单元测试的概念和车辆组装过程中要对零部件先进行检定的道理是一样的。编程过程中,每写1000行代码会犯几十个错误;编程与编译运行结束后,每1000行代码中大约残留有2-6个Bug;寻找与修改程序错误的代价占总体开发投资的30% -60%。Bug在整个研发流程中被发现的越早,修改的代价就越低。
总结
合成误区:对软件整体进行了充分测试,就等于对软件的各个组成单元进行了充分测试。这种观点是错误的。