灰度测试
词条百科 1
目录
灰度测试
灰度测试,是白盒测试和黑盒测试的结合。 此测试的目的是搜索由于结构不当或应用程序使用不当而导致的缺陷(如果有)。
概览
黑盒测试人员不知道要测试的应用程序的内部结构,而白盒测试人员可以访问应用程序的内部结构。 灰盒测试人员部分了解内部结构,包括访问内部数据结构的文档以及所使用的算法。
灰盒测试人员需要描述应用程序的高级和详细文档,他们收集这些文档是为了定义测试用例。
需要进行灰盒测试
灰度测试是有益的,因为它采用了直接的黑盒测试技术,并将其与白盒测试中的代码目标系统相结合。
灰度测试是基于需求测试用例生成的,因为它使用断言方法呈现程序测试之前的所有条件。 需求规范语言用于使理解需求和验证其正确性变得容易。
面向对象软件的灰度测试假设
面向对象的软件主要由对象组成; 其中对象是具有可执行代码和/或数据的单个不可分割的单元。 下面陈述了应用灰盒测试所需的一些假设。
- 激活方法
- 在被测类 (CUT) 中报告状态。
- 报告测试是被测类中固有的。
例子
技术
Cem Kaner 将灰盒测试定义为涉及输入和输出,但测试设计是通过有关代码或通常不在测试人员视野范围内的程序操作的信息来指导的。 灰度测试技术是:
- 矩阵测试:陈述项目的状态报告。
- 回归测试:这意味着如果进行了新的更改则重新运行测试用例。
- 模式测试:验证其设计或架构和模式的良好应用。
- 正交阵列测试:用作所有可能组合的子集。
效果
积极影响
- 提供综合优势:由于灰度测试结合了白盒和黑盒测试,因此它具有两种测试的优势。
- 非侵入式:它基于功能规范、架构视图,而不是基于源代码或二进制文件,这也使其具有侵入性。
- 智能测试编写:灰盒测试人员处理智能测试场景,例如数据类型处理、通信协议、异常处理。
- 公正的测试:尽管有上述所有优点和功能,灰度测试仍保持测试人员和开发人员之间的测试边界。
负面影响
- 部分代码覆盖率:在灰盒测试中,由于对应用程序内部或结构的访问受限,导致代码路径遍历访问受限,因此源代码或二进制文件丢失。
- 缺陷识别:在分布式应用程序中,很难关联缺陷识别。 不过,灰度测试有助于发现这些系统抛出异常的适当程度,以及在具有 Web 服务环境的分布式系统中处理这些异常的程度。
应用
- 灰度测试非常适合网络应用程序。 Web 应用程序具有分布式网络或系统; 由于缺少源代码或二进制文件,因此无法使用白盒测试。 由于客户和开发人员之间的合同,也没有使用黑盒测试,因此使用灰盒测试更有效,因为 Web 服务描述语言 (WSDL) 中提供了重要信息。
- 灰度测试适用于功能或业务领域测试。 功能测试基本上是对用户与外部系统交互的测试。 灰度测试由于其特性非常适合功能测试; 它还有助于确认软件满足为软件定义的要求。

未来范围
Web 服务的分布式特性允许灰盒测试来检测面向服务的体系结构 (SOA) 中的缺陷。 众所周知,白盒测试不适合 Web 服务,因为它直接处理内部结构。 白盒测试可用于现有技术方法; 例如,消息突变生成大型数组的自动测试以帮助异常处理状态,没有源代码或二进制文件的流程。 这种策略有助于将灰盒测试推向更接近白盒测试的结果。
内容来源于网络,本内容不代表16map.com立场,内容投诉举报请联系16map.com客服。如若转载,请注明出处:https://16map.com/wiki/nmjeei5lmitg