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

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

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

 作者:program_think(CSDNbl    来源:51Testing软件测试网采编

  ★相对于黑盒测试的优点

  灰盒测试相对黑盒测试的优点,其实有不少,俺挑几个重要的来说说。

  ◇测试可以及早介入

  由于黑盒测试把整个软件系统当成一个整体来测试。如果系统的某个关键模块还没有完工,那测试人员就无法对整个系统进行测试,只好闲着没事干。而灰盒测试是针对模块的边界进行,模块开发完一个就测试一个。

  ◇有助于测试人员理解系统结构

  为了进行灰盒测试,测试人员首先要熟悉内部模块之间的协作机制。在熟悉的过程中,“顺便”也就对整个系统(及其结构)有一个初步的、宏观的认识。这有助于测试人员发现一些系统结构方面的Bug。

  而对于黑盒测试来说,由于测试人员不清楚软件系统的内部结构,难以发现一些结构性的缺陷。

  ◇有助于管理层了解真实的开发进度

  一些复杂的大系统,经常会发生开发进度失控的情况。因为很多开发人员有报喜不报忧的倾向。当某个开发人员号称自己的工作已经完成了90%,往往意味着他/她还要花同样多的时间来完成剩下的10%。这导致负责项目管理的人,无法了解开发的真实进度。

  由于灰盒测试针对对每一个模块进行,而且测试人员会从一个客观的角度来反馈模块的完成情况,这非常有利于管理层了解整个系统的真实完成情况。

  ◇可以构造更好的测试用例

  如果仅仅用黑盒的方式测试系统的外部边界(通常是用户界面),有很多软件缺陷是不容易发现的。俺分别以B/S系统和C/S系统来举例。

  假设开发一个复杂的(Windows环境下的)C/S软件。那么,这个软件通常不会仅仅只有一个EXE文件。它可能会有若干个EXE文件以及若干个 DLL文件。假如某个DLL提供的导出函数,没有按照约定对输入参数进行有效性判断(比如指针是否为空),那你用黑盒测试的方式,难以暴露出这种缺陷。而灰盒测试就容易发现此类问题(具体如何发现,后续的帖子会细说)。

  假如你开发的是一个Web应用系统,那么,这种系统的服务端多半会提供若干个Web接口用于被客户端调用。假如某个Web接口存在安全性问题/并发性问题/健壮性问题/XX问题,你单纯用黑盒测试的手段,同样难以发现,而灰盒测试就可以搞定(灰盒测试是如何搞定的,后续帖子会细说)。

  ◇利于提升测试人员能力

  很多公司搞的黑盒测试,就是让测试人员用鼠标(键盘都难得用)操作用户界面。在这种的环境里,测试人员干的活,很多都是重复性的体力劳动,技术能力难以得到提高。

  而如果搞灰盒测试,测试人员就需要多懂一点技术背景知识,必要时还得写点测试脚本,对测试人员的能力提升很有好处。

  ★相对于白盒测试的好处

  灰盒测试相对白盒测试的好处,比较容易概括。简单来说,就是白盒测试较费钱(研发成本较高)。这多出来的研发成本,体现在如下几个方面。

  ◇首先,招聘成本较高

  在人才市场上,100个应聘的测试人员中,未必能够找到一个合适的白盒测试人员。至少从俺及周围同事的面试经历来看,难得碰到具备白盒测试能力的人。所以,你可能要花很长时间才能找到合适的人,时间成本浪费掉了。

32/3<123>
《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号