- 0
- 0
- 约1.76千字
- 约 2页
- 2026-01-08 发布于北京
- 举报
黑盒测试和白盒测试的区别
作为软件测试人员,我们经常会谈到黑盒测试和白盒测试。假如问到两者之间的
区别,每个人对此都会有不同的理解。这里我们从不同的角度来讨论一下黑盒测试和
白盒测试之间的区别。
1.执试的工程师:测试有执行?
在软件开发活动中,有系统工程师、软件工程师、硬件工程师和测试工程师等等角
色。对于软件测试活动,主要相关的工程师是软件工程师和测试工程师。软件工程
师知道软件是如何工作的,而测试工程师或其他的用户应该是使用软件的功能。相
应的,由用户或其他非开发工程师进行的软件测试,我们可以称之为“黑盒测
试”。由开发人员进行的测试我们称之为“白盒测试”。进行黑盒测试和白盒测试
的判断是基于工程师对软件系统了解的程度。
2.测试的对象:测试什么内容
假如软件系统看作是一个整体,我们有时候将黑盒测试称之为系统测试。对
系统的单元模块进行的测试,我们就可以称为白盒测试。
另一个区分测试的方法是判断测试的目的是覆盖系统的需求,还是覆盖所有的代
码。这是两个是最经常用来进行判断的准则。基于需求的测试我们可以称为黑盒测
试,它用来验证客户的需求是否实现。基于代码的测试称为白盒测试,它用来验证
代码是否都被正确执行了,包括状态、路径和判断等等。
3.测试的风险:为什么进试
有时候测试活动是针对不同的风险的。边界值测试和性测试技术经常是针对普
通的代码错误。有效的安全性测试同样需要详细了解代码和系统框架。因此我们可
以将上述的技术称之为白盒测试。
另外一些风险关心的是软件是否了正确的功能。可用性测试等就是针对这种风
险,我们可以称为黑盒测试。
4.测试的活动:如何进试
功能性测试设计和结构性测试设计之间一个明显的区别是:前者根据功能需求定义
测试用例,而后者根据代码本身来设计测试用例。这是两种不同的测试用例设计方
法。功能性测试是根据外部的功能定义,因此我们经常称为黑盒测试。而结构性测
试根据的代码来设计,所以我们称为白盒测试。这也可能是最常用来区别黑盒
测试和白盒测试的方法。
我们有时候也可以从使用的工具来区分黑盒和白盒测试。测试工具用来测试代码覆
盖率的,我们称为白盒测试工具。测试工具用来系统输入和获取输出,比如
GUI获取回放工具,我们称为黑盒测试工具。相应的测试区分我们可以根据它们所
使用的测试工具来判断。
5.测试的评估:如何判断我们发现了一个
在测试中,许多的软件并没有显现的表现为系统的失效。这可能是处于系统的
容限值之内或运气比较好。比如系统内存的泄漏或野指针就是此类的例子。有
些特定的测试技术可以使这种类型的问题更可见。相应的技术可以捕获代码执行历
史和发生时的堆栈信息,可以帮助我们诊断问题。推断是另外一种技术来使缺
陷更可见。这些技术我们都可以称之为白盒测试技术。因为它们使用代码工具使内
部软件代码的工作过程更加可见。这和黑盒测试只观察系统程序的输出结果是不一
样的。
综上所述,我们可以定义黑盒测试:基于用户的测试(人)、基于系统或需求的测
试(对象)、可用性测试(风险)、功能性测试或捕获回放自动化测试(活动)。
而对于白盒测试:基于开发人员的测试(人)、基于单元或代码覆盖的测试(对
象)、边界或安全性测试(风险)、结构性测试、检查或代码覆盖率自动化测试
(活动)、或基于探测、推断和记录的测试(评估)。
原创力文档

文档评论(0)