黑盒测试与白盒测试区别及应用.pdfVIP

  • 0
  • 0
  • 约1.76千字
  • 约 2页
  • 2026-01-08 发布于北京
  • 举报

黑盒测试和白盒测试的区别

作为软件测试人员,我们经常会谈到黑盒测试和白盒测试。假如问到两者之间的

区别,每个人对此都会有不同的理解。这里我们从不同的角度来讨论一下黑盒测试和

白盒测试之间的区别。

1.执试的工程师:测试有执行?

在软件开发活动中,有系统工程师、软件工程师、硬件工程师和测试工程师等等角

色。对于软件测试活动,主要相关的工程师是软件工程师和测试工程师。软件工程

师知道软件是如何工作的,而测试工程师或其他的用户应该是使用软件的功能。相

应的,由用户或其他非开发工程师进行的软件测试,我们可以称之为“黑盒测

试”。由开发人员进行的测试我们称之为“白盒测试”。进行黑盒测试和白盒测试

的判断是基于工程师对软件系统了解的程度。

2.测试的对象:测试什么内容

假如软件系统看作是一个整体,我们有时候将黑盒测试称之为系统测试。对

系统的单元模块进行的测试,我们就可以称为白盒测试。

另一个区分测试的方法是判断测试的目的是覆盖系统的需求,还是覆盖所有的代

码。这是两个是最经常用来进行判断的准则。基于需求的测试我们可以称为黑盒测

试,它用来验证客户的需求是否实现。基于代码的测试称为白盒测试,它用来验证

代码是否都被正确执行了,包括状态、路径和判断等等。

3.测试的风险:为什么进试

有时候测试活动是针对不同的风险的。边界值测试和性测试技术经常是针对普

通的代码错误。有效的安全性测试同样需要详细了解代码和系统框架。因此我们可

以将上述的技术称之为白盒测试。

另外一些风险关心的是软件是否了正确的功能。可用性测试等就是针对这种风

险,我们可以称为黑盒测试。

4.测试的活动:如何进试

功能性测试设计和结构性测试设计之间一个明显的区别是:前者根据功能需求定义

测试用例,而后者根据代码本身来设计测试用例。这是两种不同的测试用例设计方

法。功能性测试是根据外部的功能定义,因此我们经常称为黑盒测试。而结构性测

试根据的代码来设计,所以我们称为白盒测试。这也可能是最常用来区别黑盒

测试和白盒测试的方法。

我们有时候也可以从使用的工具来区分黑盒和白盒测试。测试工具用来测试代码覆

盖率的,我们称为白盒测试工具。测试工具用来系统输入和获取输出,比如

GUI获取回放工具,我们称为黑盒测试工具。相应的测试区分我们可以根据它们所

使用的测试工具来判断。

5.测试的评估:如何判断我们发现了一个

在测试中,许多的软件并没有显现的表现为系统的失效。这可能是处于系统的

容限值之内或运气比较好。比如系统内存的泄漏或野指针就是此类的例子。有

些特定的测试技术可以使这种类型的问题更可见。相应的技术可以捕获代码执行历

史和发生时的堆栈信息,可以帮助我们诊断问题。推断是另外一种技术来使缺

陷更可见。这些技术我们都可以称之为白盒测试技术。因为它们使用代码工具使内

部软件代码的工作过程更加可见。这和黑盒测试只观察系统程序的输出结果是不一

样的。

综上所述,我们可以定义黑盒测试:基于用户的测试(人)、基于系统或需求的测

试(对象)、可用性测试(风险)、功能性测试或捕获回放自动化测试(活动)。

而对于白盒测试:基于开发人员的测试(人)、基于单元或代码覆盖的测试(对

象)、边界或安全性测试(风险)、结构性测试、检查或代码覆盖率自动化测试

(活动)、或基于探测、推断和记录的测试(评估)。

文档评论(0)

1亿VIP精品文档

相关文档