unit-testing - 黑盒可以覆盖白盒测试

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

嗨,我是 SW 测试的新手。

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

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

白盒测试和黑盒测试之间的真正区别是什么?
对我来说,做一个广泛的输入,极端案例覆盖 BBT,这将是一个 WBT。

最佳答案

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

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

  • 例如,在给定的用户界面中,如果在输入值 X 后,我们期望响应 Y,而这正是用户得到的,那么从黑盒的角度来看,该测试将是成功的,但如果查看代码执行,我们就知道对最终用户不可见的事件在应该触发的时候没有被触发,那么从白盒的角度来看,该测试将失败。

    就执行代码的哪些区域而言,黑盒测试和白盒测试之间肯定存在一些重叠,但只有从用户界面可以执行所有代码行和分支,它才能完全重叠。此外,在透视方面完全没有重叠,因为在一个中您充当最终用户,而在另一个中您正在直接查看代码语句和分支。

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

    关于unit-testing - 黑盒可以覆盖白盒测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176130/

    相关文章:

    .net - 如何从完整的 .Net 框架测试项目中引用 ASP.NET Core 项目?

    c# - 在大型 c# 项目中进行 TDD 时如何处理缓慢的单元测试

    testing - 如何在 Cypress 中使测试可重复?

    javascript - 一种同步Web浏览器操作的方法

    java - Maven 配置文件不执行测试

    android - 如何测试 "Rate my App"功能?

    javascript - 单元测试 Angular Directive(指令)被文本区域取代

    javascript - Jest : Unit test toHaveBeenCalled() not working

    testing - 有条件地运行构建标志不起作用的测试

    bug-tracking - 是否有可用于 QA 的 "bad inputs" list ?