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

Man*_*ish 23 testing unit-testing

"单元测试"是否属于白盒或黑盒测试?或者它是否完全是另外两种类型的测试?

Jus*_*ony 24

我认为肯特贝克的这篇文章更多地提到了TDD和单元测试总结得相当好.基本上,它取决于你实际编写测试的方式*.这是另一篇关于这个主题的文章,可能有助于澄清事情.

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

  • 如果您在代码之后编写单元测试并且*在代码的基础上使用帮助/ - 单元测试是白盒测试.如果您在*代码之前编写单元测试*或根据规范编写单元测试 - 单元测试是后箱测试. (7认同)
  • 在这两种情况下,它们都是白盒测试.似乎许多人混淆了两种测试类型的定义.单元测试只是测试"代码"的每个单元类.这是一个白盒测试.Blackbox测试测试"app"的整体功能.你可以写任何方式并根据需要自动化它.但单元测试......好吧,它始终是白盒测试:) (4认同)

Eli*_*uft 12

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

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

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

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