“单元测试”是否属于白盒或黑盒测试?

时间:2012-03-27 15:44:58

标签: unit-testing testing

“单元测试”是否属于白盒或黑盒测试?或者它完全是一种独立的测试类型而不是其他两种?

2 个答案:

答案 0 :(得分:22)

我认为article by Kent Beck更多地提及TDD和单元测试总结得相当好。基本上,它取决于你实际编写测试的方式*。 Here is another article on the subject可能有助于澄清事情。

*如果您在应用程序中进行测试,那么它就是白盒。如果您正在测试它就像一个局外人只会调用面向公众的API,那么它就是黑盒子。

答案 1 :(得分:10)

白盒测试的通常标准是执行路径和数据结构敏感化。这些有时被称为“分支测试”,“路径测试”,“数据流测试”。请参阅维基百科的白盒测试。

也就是说,单元测试指的是在系统结构中进行测试的级别,而白盒和黑盒测试指的是,在任何级别,测试方法是否基于内部设计或仅根据设备的外部规格。

因此,如果您的单元测试会敏感您正在测试的单元中的所有执行路径和数据结构,那么它就是一个白盒测试。但是,如果您的设备无法识别设备的大多数路径和数据结构,则它不能声称是白盒测试。

请注意,在某些组织中,无论单元测试是基于单元的设计而不仅仅是其API,单元测试都称为白盒测试。最好不要在这一点上与老板争论。