【20221109每日面经】软件测试理论-什么是黑盒测试,什么是白盒测试

每日面经

  • 考察点:软件测试基础理论
  • 题目:什么是黑盒测试,什么是白盒测试

首先,黑盒测试、白盒测试观测的角度不同。黑盒测试,完全上帝视角(第三方视角),使用产品的过程中评测产品各功能的完成情况,并且还会对产品的设计提出用户体验建议。白盒测试,更加考虑功能,从功能角度出发,利用自动化工具完成功能的各流程(包含分支流程)。
白盒测试不能完全替代黑盒测试,但是某种程度上有重叠部分,因此重叠部分可以根据需要采用白盒的测试手段完成。

  • 黑盒测试好比一个封闭的盒子,我们无需了解盒子的内部结构,只需要关注输入输出就可以了,是基于功能的测试。
  • 白盒测试就相当于透明的盒子,着重去了解盒子的内部逻辑结构,是基于代码的测试

答:
白盒测试是:

  • 也称逻辑驱动测试,测试者知道被测对象的内部结构和逻辑实现,将其视作一个透明的盒子,针对其中实现细节的状态、结构、路径进行测试覆盖
  • 目的主要是验证「白盒子」内部的结构和运作是正常的
  • 常通过单元测试动态地进行测试,或code review的方式静态地进行检查

黑盒测试是:

  • 也称数据驱动测试,测试者无需知悉被测对象内部实现方式,将其视作一个黑色不透明的盒子,只考虑对产品明确提供的功能特性针对性进行输入,检测其输出
  • 目的主要是验证「黑盒子」承诺对外提供的功能是否按规范、规格说明的要求正确实现了
  • 常通过在用户界面(GUI),以用户的角度进行有效、无效操作

疑问:

  • 如果测试人员已知道代码实现的细节,根据代码分支判断逻辑来设计了一套用例集,并在用户界面上手工执行了。这个操作,是黑盒测试还是白盒测试?
  • 同一个操作,只能被归属进黑、白、灰三者之一?
  1. 如果是参考代码逻辑设计的功能测试用例,可以算作是灰盒测试。灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,既可保证输入输出,又可以了解程序的内部结构。但灰盒测试不会像白盒测试那样对内部程序功能和运作做详细了解。总体来说灰盒测试结合了白盒测试和黑盒测试的要素。
  2. 在针对是否了解代码逻辑的角度去对测试做分类的话,基本上现在是分为黑、白、灰这三种类型。
关闭