Unit testing 黑盒可以覆盖白盒测试

Unit testing 黑盒可以覆盖白盒测试,unit-testing,testing,qa,white-box-testing,Unit Testing,Testing,Qa,White Box Testing,嗨,我是软件测试新手 WBT-Developer这样做,确保每一行都被执行,并检查所有条件语句 BBT-在黑盒中,我可以做与WBT相同的事情,我可以输入各种参数并检查输出,确保通过生成测试用例覆盖所有条件语句,还可以覆盖循环执行 白盒测试和黑盒测试的真正区别是什么? 对我来说,它看起来像是,做一个广泛的输入,角落案例覆盖BBT,这将是一个WBT。黑盒测试迫使您关注接口,而不是实现。从任何外部角度来看,任何系统都是它的接口,因此您需要证明的就是它的工作。从理论上讲,一个系统如何在内部实现并不重要,

嗨,我是软件测试新手

WBT-Developer这样做,确保每一行都被执行,并检查所有条件语句

BBT-在黑盒中,我可以做与WBT相同的事情,我可以输入各种参数并检查输出,确保通过生成测试用例覆盖所有条件语句,还可以覆盖循环执行

白盒测试和黑盒测试的真正区别是什么?
对我来说,它看起来像是,做一个广泛的输入,角落案例覆盖BBT,这将是一个WBT。

黑盒测试迫使您关注接口,而不是实现。从任何外部角度来看,任何系统都是它的接口,因此您需要证明的就是它的工作。从理论上讲,一个系统如何在内部实现并不重要,只要它确实做到了它声称要做的事情

因此,黑盒测试迫使您关注系统的需求和定义。有时,最好是“退一步”,与用户或客户确认它应该做什么,以便您可以适当地测试它。如果一个系统满足了它的需求,那么它就是按定义工作的。许多系统没有正确定义,这是导致许多QA失败的原因,部分原因是意见分歧,而不是实际的bug

因此,当黑盒方法迫使您编写接口规范以便您可以编写接口测试时,这就迫使项目全面运行得更好。QA是一个比测试代码行是否写得好要广泛得多的过程

黑匣子方法的一个缺点是,系统可能只是在工作,内部完全是一团糟!或者,如果测试没有100%完成,那么您可能没有涵盖所有路径或场景。大多数单元测试工具都有覆盖图,即使在黑盒测试期间也会进行覆盖图,因此您仍然可以看到是否需要添加更多测试,而不需要“了解”太多代码。(然而,代码覆盖率报告具有误导性,因为大多数系统每个代码行都有许多场景,即上下文、数据、输入等的变化,因此需要在数据矩阵上运行相同的代码,以确保覆盖所有真实场景)

我发现开发人员经常“过于接近代码”,无法对其进行充分或广泛的测试。他们根据自己的知识做出假设,并限制自己的测试范围。白盒测试有助于一种独立或同行审查的形式,其中假设较少,将执行更典型的用户行为(如错误或破坏性地使用系统)


我想说你需要做两种类型的测试。开发人员应该在构建代码时进行白盒测试(事实上,他们可能只能在了解代码的情况下进行测试!)。“QA人员”应进行黑盒测试,作为用户验收测试的一部分,并证明其满足其定义的功能。

测试的目标是确保事情按预期进行,因此,黑盒和白盒测试之间的主要区别是这些技术所考虑的表面来确定一个软件是否正常工作:

  • 黑盒测试将软件视为黑盒。测试操作发生在用户界面级别,断言基于从系统外部可观察到的系统响应,主要是系统响应,但也包括响应时间和从用户角度可观察到的其他事件
  • 白盒测试也称为白盒测试,它将软件视为一个透明的盒子,因此从测试人员的角度看,它的内部结构是可见的。测试操作发生在比用户界面级别更低的级别上,并从该较低级别向上对系统行为进行断言,包括从用户角度可能无法观察到的事件(代码分支错误、错误日志、部分操作响应时间等)
例如,在给定的用户界面中,如果在输入值X后,我们期望得到响应Y,而用户得到的是响应Y,则从黑盒的角度来看,该测试将成功,但如果查看代码执行情况,我们知道最终用户看不见的某个事件不会在应该触发时触发,然后,从白盒的角度来看,该测试将失败

在执行代码的哪些区域方面,黑盒测试和白盒测试之间肯定存在一些重叠,但只有在用户界面中所有代码行和分支都可以执行的情况下,才可能是完全重叠的。此外,在透视图方面完全没有重叠,一个是作为最终用户,另一个是直接查看代码语句和分支


最后一点,谁来做什么类型的测试完全取决于软件开发过程、角色和可用的技能。如果您的团队没有可用的手动测试人员,那么其他人将不得不模拟最终用户并进行测试。如果您的团队有高技术的测试人员,他们可以成功地执行白盒测试。

黑盒测试–在不检查内部代码结构、实现细节的情况下测试单元下应用程序(AUT)的功能的测试技术,以及软件内部路径的知识

黑盒测试告诉您软件系统的输入和输出,您不必担心软件程序的知识。检查用户对性能和应用程序的看法

白盒测试技术检查系统的内部功能。测试是为了检查代码语句的覆盖率。白盒测试中的分支、路径或条件被视为低级测试。这个的另一个名字