灰盒测试是一种软件测试方法,通过对内部工作结构的部分了解来测试软件应用程序。它是黑盒和白盒测试的结合,因为它涉及到访问内部代码来设计测试用例,因为白盒测试和测试实践是在功能级别上作为黑盒测试完成的。
灰盒测试通常识别属于 Web 系统的特定于上下文的错误。例如;在测试时,如果测试人员遇到任何缺陷,那么他会更改代码以解决缺陷,然后再次实时测试。它专注于任何复杂软件系统的所有层,以增加测试覆盖率。它提供了测试表示层和内部编码结构的能力。它主要用于集成测试和渗透测试。
为什么要进行灰盒测试?
灰盒测试的原因如下
- 它提供了黑盒测试和白盒测试的综合优势。
- 它同时包括开发人员和测试人员的输入值,以提高产品的整体质量。
- 它减少了长时间的功能和非功能测试过程的时间消耗。
- 它为开发人员提供了足够的时间来修复产品缺陷。
- 它包括用户的观点,而不是设计师或测试人员的观点。
- 它涉及从用户的角度深入审查需求和确定规格。
灰盒测试策略
灰盒测试并不意味着测试人员必须从源代码设计测试用例。为了执行这种测试,可以基于架构、算法、内部状态或其它高级描述的程序行为来设计测试用例。它使用黑盒测试的所有简单技术进行功能测试。测试用例的生成基于需求,并在通过断言方法测试程序之前预设所有条件。 执行灰盒测试的一般步骤是:
- 首先,从黑盒和白盒测试输入中选择并识别输入。
- 其次,确定这些选定输入的预期输出。
- 第三,确定在测试期间要遍历的所有主要路径。
- 第四个任务是确定子功能,这些子功能是执行深层测试的主要功能的一部分。
- 第五项任务是识别子函数的输入。
- 第六项任务是确定子函数的预期输出。
- 第七个任务包括执行子函数的测试用例。
- 第八项任务包括验证结果的正确性。
为灰盒测试设计的测试用例包括安全相关、浏览器相关、GUI 相关、操作系统相关和数据库相关测试。
灰盒测试技术 矩阵测试
这种测试技术属于灰盒测试。它定义了特定程序的所有已使用变量。在任何程序中,变量都是值可以在程序内传输的元素。它应该按照要求,否则,它会降低程序的可读性和软件的速度。矩阵技术是一种通过从程序中识别使用的变量来删除未使用和未初始化的变量的方法。 回归测试
回归测试用于验证软件任何部分的修改没有对软件的任何其他部分造成任何不利或意外的副作用。在确认测试期间,任何缺陷都得到了修复,并且软件的该部分开始按预期工作,但修复的缺陷可能会在软件中的其他地方引入不同的缺陷。因此,回归测试通过测试策略来处理这些类型的缺陷,例如重新测试风险用例、在防火墙内重新测试、重新测试所有缺陷等。 正交阵列测试或 OAT
此测试的目的是使用最少的测试用例覆盖最多的代码。测试用例的设计方式可以涵盖最大代码以及具有较少数量的测试用例的 GUI 功能。 模式测试
模式测试适用于遵循与以前软件相同的模式开发的此类软件。在这些类型的软件中,可能会出现相同类型的缺陷。模式测试确定故障原因,以便可以在下一个软件中修复它们。
通常,Greybox方法中使用自动化软件测试工具来执行测试过程。提供给测试人员的存根和模块驱动程序,以减轻手动代码生成。
|