如何开展灰盒测试[1]:灰盒测试优缺点分析

发表于:2010-12-10 16:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:编程随想(CSDNblog)    来源:51Testing软件测试网采编

  俺在忽悠某个技术领域的玩意儿之前,通常先要分析一下优缺点——这样才能调动大伙儿的积极性。所以,本系列第1帖先分析一下灰盒测试的优缺点。

  ★几个基本概念

  首先,把一些基本概念,简单通俗地说一下。如果觉得俺解释得不够好,不够细,可以自己去查维基百科的词条:洋文的在“这里 ”,中文的词条在“这里 ”(可惜中文词条不够全,偏偏缺了“灰盒测试”这一节)。

  ◇黑盒测试

  通俗来说:黑盒测试不关注软件内部的实现细节。他仅仅把被测试的软件当成一个整体来处理,只关注软件的外在表现,不关注内部细节。典型的黑盒测试,就是光拿着鼠标操作一下用户界面,看看功能是否满足要求。

  ◇白盒测试

  白盒测试与黑盒测试相反,重点关注软件内部的实现细节(比如代码覆盖率等)。

  ◇灰盒测试

  如果你是从事开发或者测试的行当,应该已经听过黑盒测试与白盒测试这2个概念。但对灰盒测试,或许比较耳生。单纯从名称上来看,灰盒测试是介于黑盒测试与白盒测试之间的一种测试方式。

  这种测试方式,主要用于多模块构成的稍微复杂的软件系统。在灰盒测试中,重点关注软件系统的各个组成模块之间的互动。这里所说的"互动",包括模块之间的互相调用、数据传递、同步/互斥、等等。

  ◇灰盒测试与黑盒测试的区别

  如果某软件包含多个模块,当你使用黑盒测试时,你只要关心整个软件系统的边界,无需关心软件系统内部各个模块之间如何协作。而如果使用灰盒测试,你就需要关心模块与模块之间的交互。这是灰盒测试与黑盒测试的区别。

  ◇灰盒测试与白盒测试的区别

  但是,在灰盒测试中,你还是无需关心模块内部的实现细节。对于软件系统的内部 模块,灰盒测试依然把它当成一个黑盒来看待。而白盒测试则不同,还需要再深入地了解内部 模块的实现细节。所以,这是灰盒测试与黑盒测试的区别。

  ◇灰盒测试与单元测试的区别

  刚才看到有网友在评论中问到此问题,俺补充一下。

  首先,在进行单元测试时,需要写一些测试代码(行话叫“桩代码”,洋文叫stub)。通常测试代码和被测试代码通常是同种语言(比如Java的单元测试通常也用Java来写),且测试代码和被测试代码的耦合很紧密。因此,单元测试通常由开发人员来完成的,测试人员的能力未必能胜任。

  其次,单元测试的颗粒度会更细(会细到类一级、函数一级),而灰盒测试仅仅到模块一级。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • jarystar
    2010-12-13 10:44:02

    怎么感觉有点像集成测试、接口测试

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号