黑匣子可以覆盖白盒测试

时间:2016-08-26 23:55:27

标签: unit-testing testing qa white-box-testing

嗨,我是SW测试的新手。

WBT - Developer执行此操作,确保执行每一行并检查所有条件语句。

BBT - 在Black Box中,我可以做同样的事情,我可以输入各种参数并检查输出,确保我通过制作测试用例覆盖所有条件语句并覆盖循环执行。

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

4 个答案:

答案 0 :(得分:2)

黑盒测试迫使您专注于界面而不是实现。从任何外部角度来看,任何系统其界面,因此您需要证明的只是工作。从理论上讲,系统在内部实施如何并不重要,只要它完全按照它声称要做的那样。

黑盒测试因此迫使您专注于系统的要求和定义。有时候退回"退步"并与用户或客户确认它应该做什么,以便您可以适当地测试它。如果系统满足其要求,则按定义工作。许多系统没有被正确定义,导致许多QA失败,部分原因是意见不同而不是实际错误。

因为黑盒方法迫使你编写接口规范以便你可以编写接口测试,然后这会强制项目全面运行。 QA是一个比测试代码行写得好的更广泛的过程。

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

我发现开发人员经常与代码太接近了#34;能够彻底或广泛地测试它。他们通过自己的知识做出假设,并限制自己的测试范围。白盒测试有助于实现独立或同行评审的形式,其中假设较少,并且将执行更典型的用户行为(例如使用系统不正确或破坏性)。

我想说你需要进行两种类型的测试。开发人员应该进行白盒测试(事实上,他们可能只能在他们知道代码时才这样做!),而他们正在构建它。 A"质量保证人员"应该进行黑盒测试,作为用户验收测试的一部分,并证明它符合其定义的功能。

答案 1 :(得分:2)

测试的目标是确保事情按预期工作,因此黑白盒测试的主要区别在于 surface 这些技术考虑确定一块软件是否正常工作:

  • 黑盒测试将软件视为黑匣子。测试操作发生在用户界面级别,并且断言是基于系统响应可以从系统外部观察到的,主要是系统响应,还有响应时间和用户角度的其他可观察事件。
  • 白盒测试,也称为glass box testing,将软件视为透明盒子,因此从测试人员的角度来看,它的内部内容是可见的。测试操作发生在比用户界面级别更低的级别,并且从较低级别向上对系统行为进行断言,涵盖从用户角度可能无法观察到的事件(代码分支错误,错误日志,部分操作响应时间,等)

作为一个例子,在给定的用户界面中,如果在输入值X之后我们期望响应Y并且那是用户获得的,那么该测试将从黑盒的角度成功,但如果查看代码执行我们知道最终用户不可见的某个事件应该被触发,然后该测试将从白盒的角度来看失败。

在执行代码的哪些区域方面,黑白盒测试肯定存在一些重叠,但如果从用户界面所有代码行,它只能完全重叠分支机构可以行使。此外,在透视方面根本不存在重叠,例如,您作为最终用户,而另一方面,您正在直接查看代码语句和分支。

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

答案 2 :(得分:0)

黑匣子测试 –一种测试技术,其中在不检查内部代码结构,实现细节和软件内部路径知识的情况下,测试了Under Under Unit(AUT)的功能。< / p>

黑匣子测试会告诉您有关软件系统的输入和输出,而您无需在此担心软件程序的知识。研究了用户对性能和应用程序的看法。

白盒测试技术检查系统的内部功能。完成测试以检查代码语句的覆盖范围。白盒测试中的分支,路径或条件被视为低级测试。此测试的另一个名称是玻璃盒,透明盒,透明盒或基于代码的测试。

这种类型的测试需要技术知识和测试专业知识。知识的实施对于进行白盒测试也很重要。因此,白盒测试由软件开发人员或软件测试专家执行。在白盒测试中发现的最常见错误是:

语法不正确 逻辑错误 设计错误

Resource和视觉学习者的漂亮影像。

答案 3 :(得分:0)

WBT可以为您提供更多其他想法,因此可以使用BBT进行检查。您会发现通常可以更快地直接查看代码。从代码库的角度了解应用程序的工作方式将为您开发产品提供更多的机会。