灰盒
什么是灰盒?
灰盒是指对其内部工作了解有限的软件测试。灰盒测试是一种道德黑客技术,黑客必须使用有限的信息来识别目标安全网络的优势和劣势。
了解灰盒
灰盒是白盒测试的混合体,测试人员检查软件代码的内部逻辑和结构,以及黑盒测试,测试人员对软件代码一无所知。要了解灰盒测试,首先要了解黑盒测试和白盒测试。
黑盒和白盒测试
黑盒测试只关注用户的输入以及在给定这些输入的情况下软件产生的输出。黑盒测试不需要任何编程语言或其他技术细节的知识。它是一种用于系统测试和验收测试的高级测试。软件工程师需要软件需求规范 (SRS) 文档来执行黑盒测试。该测试从最终用户的角度出发,黑盒测试人员不知道输出是如何从输入生成的。
白盒测试需要深入了解用于构建软件的技术和平台,包括相关的编程语言。它是一种用于单元测试和指示测试的低级测试。软件工程师需要了解用于创建应用程序的编程语言,以便他们能够理解其源代码。白盒测试的主要目的是加强安全性,检查输入和输出如何在应用程序中流动,并改进设计和可用性。当白盒测试人员没有从给定的输入中获得预期的输出时,结果被认为是需要修复的错误。
灰盒测试的工作原理
灰盒测试包括黑盒测试和白盒测试的重要组成部分,以获得比单独获得更好的结果。最终用户和开发人员都在对应用程序的源代码了解有限(部分)的情况下执行灰盒测试。灰盒测试可以是手动的也可以是自动的。它比黑盒测试更全面、更耗时,但不如白盒测试全面或耗时。灰盒测试人员需要详细的设计文档。
灰盒测试涉及识别输入、输出、主要路径和子功能。然后继续开发子功能的输入和输出,执行子功能的测试用例,并验证这些结果。
灰盒示例
灰盒测试员可能会检查并修复网站上的链接。如果链接无效,测试人员会更改HTML 代码以尝试使链接有效,然后重新检查用户界面以查看链接是否有效。灰盒测试仪也可能会测试在线计算器。测试人员将定义输入——数学公式,例如 1+1、2*2、5-4 和 15/3——然后检查计算器在给定这些输入的情况下是否提供了正确的输出。灰盒测试员可以访问计算器的 HTML 代码,并且可以在发现任何错误时对其进行更改。
灰盒测试着眼于应用程序的用户界面或表示层,以及它的内部工作或代码。它主要用于集成测试和渗透测试,但不适用于算法测试。灰盒测试通常用于通过矩阵测试、回归测试、正交数组测试和模式测试等技术来测试应用程序的用户界面、安全性或在线功能。灰盒测试人员最有可能识别特定于上下文的问题。
“灰色”是指测试人员看到应用程序内部运作的部分能力。 “白色”是指能够通过软件的界面看到其内部运作,而“黑色”是指无法看到软件的内部运作。灰盒测试有时称为半透明测试,而白盒测试有时称为透明测试,黑盒测试也可能称为不透明测试。
## 强调
灰盒测试本质上是白盒(全知识)和黑盒(无知识)方法的混合。
灰盒测试是一种用于发现软件错误或发现漏洞的技术,其中预先知道有关底层软件的一些有限知识。
这种形式的“道德黑客”允许软件开发人员创建修复程序和补丁,以防止恶意攻击者利用这些漏洞。