#谈到软件白盒测试与黑盒测试,我们首先要区分以下两个概念,“缺陷”与“BUG”。
“缺陷”可引起多个BUG,它可能是程序设计、数据库设计等引起的;
“BUG”是某缺陷的一种表现,区别于缺陷。
#黑盒测试只能观察软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件就是正确的。因为程序有可能用错误的运算方式得出正确的结果,例如“负负得正,错错得对”,只有白盒测试才能发现真正的原因。
#白盒测试工作必须早期界入,不要等到整个系统开发完毕才开始,因为缺陷会越积越多并且分布得更广、隐藏得更深,反而导致测试与改错的代价大大增加。最糟糕的是无法估计测试与改错的工作量,使进度失去控制。因此为图眼前省事而省略单元测试或者“偷工减料”,是“得不偿失”的做法。