什么是灰盒测试?

灰盒测试是什么?

什么是灰盒子测试?灰盒测试主要测试什么?

灰盒测试是一种软件测试技术,用于测试软件产品或应用程序,测试工程师需要的技术是了解应用程序的内部结构。灰盒测试方法的目的是查找和识别由于代码结构不一致或应用程序使用不当造成的软件缺陷。灰盒测试只需要了解代码的大体结构。

灰盒测试的测试阶段可以识别出与Web系统相关的上下文特定的错误。灰盒测试的测试特性在于它是将重心集中于每一个复杂系统的各个层面来提高测试覆盖率。

什么是灰盒测试法?

灰盒测试是一种软件测试方法,灰盒测试的方法是白盒测试和黑盒测试方法的结合。

白和黑盒灰盒测试

白盒测试黑盒测试灰盒测试:

  • 白盒测试方法:软件/应用程序内部结构(也就是代码)是已知的
  • 黑盒测试方法:软件/应用程序内部结构(代码)是未知的
  • 灰盒测试方法的区别在于软件/应用程序内部结构(代码)部分已知

灰盒测试是什么测试?

灰盒测试主要具备的特性是:

在软件工程中,灰盒测试主要测试应用程序的外观设计展示以及内部结构代码两大部分。灰盒测试的应用场景:灰盒测试技术主要用于集成测试和渗透测试。

灰盒测试实践

灰盒测试的实际例子:当测试如网站链接或独立链接功能时,如若发现任何问题,测试人员可以直接在HTML代码中进行更改并完成实时检查。这就是为什么网页特点使其非常适合进行灰盒测试的原因。


为什么要做灰盒测试?

灰盒测试的目的任务:

  • 软件测试灰盒测试结合了黑盒测试和白盒测试的优点
  • 灰盒测试结合了设计开发输入和测试人员输入信息,提高了软件产品整体质量
  • 灰盒测试减少了功能测试和非功能测试的测试周期和费用支出
  • 灰盒测试为开发人员提供了足够的空余时间来修复软件缺陷
  • 灰盒测试方法是从用户的角度出发进行的测试,而不是开发者角度

灰盒测试的基本原则

灰盒测试的执行是不需要测试人员访问源代码。灰盒测试是根据算法、软件体系结构、程序内部状态或程序行为以及其它高级描述设计的。

 灰盒测试主要方法:

  • 灰盒测试应用了简单的黑盒测试技术,也有人说灰盒测试属于黑盒测试的一部分
  • 灰盒测试是基于需求测试用例生成的。因此,在使用断言方法(assertion method)测试程序之前要预先设置所有的预置条件。

软件灰盒测试技术

灰盒测试方法有哪些?

  • 矩阵测试法:这种软件测试技术定义了程序中的所有变量。
  • 回归测试方法:用于检测之前版本的更改是否对新版程序的其他方面有所影响,即软件产品是否能正常运行。回归测试的基本过程:它是通过重新测试系统测试的测试策略,重新测试异常测试用例,在防火墙内重新测试等软件测试策略来完成的。
  • 正交数组测试(Orthogonal Array Testing, OAT):它提供了最大值的代码覆盖率和最少的测试用例。
  • 测试模式:这种软件测试方法是在以前有系统缺陷的历史数据上执行的。与黑箱测试不同,灰盒测试是在代码中执行,并找出故障发生的原因。

灰盒测试工具

灰盒测试方法通常由自动化测试工具执行。自动生成方法存根和驱动程序模块创建免去了测试人员手动生成代码这一步骤。

如何进行灰盒测试?执行灰盒测试的步骤:

  1. 确定输入
  2. 确定输出
  3. 确定主要路径
  4. 确定子功能模块
  5. 为子功能模块设计和开发输入
  6. 为子功能模块设计和开发输出
  7. 执行子功能模块测试用例
  8. 验证子功能模块输出的正确性
  9. 如有其它子功能模块,请重复第4步和第8步
  10. 如有其它子功能模块,请重复第7步和第8步

    灰盒测试用例

    灰盒测试用例包括:GUI测试用例,安全性测试用例,数据库测试用例,浏览器测试用例,操作系统测试用例等。

灰盒测试的优缺点

灰盒测试的优点和缺点:

  • 当被测试的组件发生某种故障时,可能会导致正在进行的操作功亏一篑
  • 当测试用例被全面执行时仍显示结果不正确。
  • 使用灰盒测试可以降低系统缺陷的总体成本并阻止系统的小缺陷进一步恶化
  • 灰盒测试更适合于GUI软件测试、软件功能测试方法、网站安全评估、Web应用程序测试、测试Web服务等。

灰盒测试主要包括哪些?

  • 矩阵测试(Matrix Testing )
  • 回归测试  (Regression Testing)
  • 正交数组测试或 OAT测试(Orthogonal Array Testing)
  • 模式测试 (Pattern Testing)

 

Author: Maha

我是Wintesting中国站的 Maha,目前职位是市场营销&内容经理,负责CN Wintetsing网站内容的设计、编写与发布,同时还监管国内市场营销工作。与此同时,我也是一名IT培训教员,我的教育背景和所从事的行业都是与IT工程师行业及信息通信技术相关。此外,除了编写中英双语的新兴技术文稿外,我还是一名IT翻译工作者,累积翻译字数逾近10万,涉及的领域有大数据、人工智能、IoT、机器学习、云计算、AR&VR、计算机网络技术、计算机网络安全技术、应用程序测试、软件测试、系统测试、网络测试及IT基础设施等。如果你需要相关领域的内容编写或翻译工作请联系我。