【发布时间】:2012-03-27 15:44:57
【问题描述】:
“单元测试”属于白盒测试还是黑盒测试?还是与其他两种测试完全不同?
【问题讨论】:
-
老实说,关于白盒测试的维基百科文章解释得很好。
-
我注意到,经常重构的代码的白盒单元测试会产生大量工作来维护测试本身。
标签: unit-testing testing
“单元测试”属于白盒测试还是黑盒测试?还是与其他两种测试完全不同?
【问题讨论】:
标签: unit-testing testing
我认为article by Kent Beck 更多地提到了 TDD 和单元测试,这很好地总结了这一点。基本上,这取决于您实际编写测试的方式*。 Here is another article on the subject 这可能有助于澄清事情。
*如果您在应用程序中进行测试,则它是白盒。如果您正在测试它,就像一个局外人只会调用您面向公众的 API 一样,那么它就是黑盒。
【讨论】:
白盒测试的常用标准是执行路径和数据结构敏感度。这些有时被称为“分支测试”、“路径测试”、“数据流测试”。请参阅有关白盒测试的 Wikipedia。
也就是说,单元测试是指测试在系统结构中发生的级别,而白盒和黑盒测试是指在任何级别,测试方法是否基于内部设计或仅根据设备的外部规格。
因此,如果您的单元测试对您正在测试的单元中的所有执行路径和数据结构都敏感,那么它就是白盒测试。但是,如果您的单元不能对单元的大部分路径和数据结构敏感,那么它就不能声称是白盒测试。
请注意,在某些组织中,单元测试称为白盒测试,无论单元测试是否基于单元的设计,而不仅仅是其 API。最好不要在这一点上与你的老板争论。
【讨论】: