GUI 测试

2025年3月17日 | 阅读11分钟

在本节中,我们将讨论所有 GUI(图形用户界面)测试,其中包括以下重要主题:

  • 什么是 GUI 测试?
  • 为什么我们需要执行 GUI 测试?
  • GUI 测试的特点
  • GUI 测试的类型
  • GUI 测试的示例
  • GUI 测试中面临的不同挑战
  • GUI 测试工具

在深入探讨上述所有主题之前,我们首先将了解图形用户界面(GUI)。

什么是 GUI?

在计算机应用程序中,我们主要有两种类型的界面,例如:

  • 命令行界面 (CLI)
  • 图形用户界面 (GUI)

当我们输入文本时,计算机响应该命令时使用命令行界面

另一方面,图形用户界面用于通过使用图像而不是文本与计算机交互。

我们有一些关键的 GUI 元素,可以用于用户和应用程序之间的通信。

  • 复选框
  • 列表框
  • 单选按钮
  • 文本框

如下图所示:

GUI Testing

现在,我们将转向我们讨论的重点,即 GUI 测试。

什么是 GUI(图形用户界面)测试?

它是独特的软件测试类型之一,经常用于检查应用程序或软件的图形用户界面功能。

通常,GUI 测试用于评估元素或功能的设计,例如:

  • 文本框
  • 字体大小
  • 字体颜色
  • 按钮
  • 菜单
  • 链接
  • 布局
  • 标签
  • 文本格式
  • 列表
  • 标题
  • 图标
  • 内容

GUI 测试的主要目标是验证软件或应用程序的功能是否符合给定的要求/规范。

图形用户界面测试过程可以手动或自动执行,并由第三方组织而不是开发人员或最终用户重复执行。

换句话说,我们可以说 GUI 测试是一种方法,用于测试应用程序的用户界面,以查看软件或应用程序是否按预期在用户界面性能方面工作。

为什么我们需要执行 GUI 测试?

在理解了 GUI 测试的定义之后,我们对其有了基本的了解。但是会出现一些问题,例如:

  • 是否需要进行 GUI 测试来测试应用程序?
  • 为什么我们需要执行 GUI 测试?
  • 而且测试应用程序的功能和逻辑是不是太多了?那么为什么我们还需要浪费时间执行 UI 测试呢?

如果我们要回答上面提到的所有问题,我们需要像用户一样思考,而不是测试工程师。因为用户对指定的应用程序或软件没有任何了解,所以应用程序的用户界面决定了用户是否会更多地使用该应用程序。

在这里,首先,普通用户了解应用程序或软件的外观和设计,以及他/她理解用户界面的容易程度。

如果用户对界面不满意或无法识别应用程序的理解困难,他/她将永远不会再次使用该应用程序。由于上述情况,必须实施图形用户界面测试,以确保 GUI 测试提供无缺陷的应用程序。

为什么图形用户界面测试是必要的?

在软件测试技术中,图形用户界面的实现对于执行其他类型的软件测试至关重要。

正如我们所知,提供高质量的产品并满足客户要求和无缺陷的产品是执行任何类型测试的首要关注点。

并且已经声明:“我们无法将质量审查到产品中。

这就是为什么为了提高产品质量,开发团队从一开始就寻求将其开发到他们的项目中。

为了提高产品质量,我们可以在SDLC(软件开发生命周期)的早期使用测试过程,这也称为左移测试

开发团队增加了单元测试和接口测试的时间和资源,而不是在应用程序完成后等待系统测试。结果,开发过程中的早期错误检测将降低修复它们的成本。

正如我们已经知道的,单元和接口/API 测试兼容自动化,因为开发人员在编写代码时开发单元测试;另一方面,API 测试趋于非常稳定,并且与 API GUI 测试相比,维护成本更低。

我们可以观察到左移测试的重要性正在吸引人,这使得 GUI 测试变得脆弱。尽管如此,手动 GUI 测试可能是一个耗时且资源密集的过程。

而对于 GUI 来说,测试自动化更具刺激性,因为用户界面会频繁修改,早期运行的自动化 GUI 测试可能会失败,需要大量的精力来维护它们。

然而,单元和接口测试无法评估系统的所有方面,特别是工作流可用性的关键功能。这就是 GUI 测试的重要性,它从用户的角度而不是开发人员的角度实施。

通过从用户的角度评估应用程序,有助于我们向项目团队提供信息,他们需要选择应用程序是否可以部署。

例如,在 Windows Firefox 浏览器中出现的下拉列表将与 Mac-Firefox 不同。这些问题可能是足够的,因为这些是操作系统功能,我们需要以相同的方式接受它们。

GUI 测试的特点

下面讨论图形用户界面(GUI)测试的一些最显著的特点:

  • GUI 测试用于在 Selenium Grid 上与固定的 Selenium Web Driver 执行匹配或分配的测试。
  • GUI 测试的执行将允许我们从用户的角度测试应用程序的功能。
  • 通过图形用户界面测试,我们可以获得自定义测试报告。
  • 它还为具有动态 ID 的 Web 元素生成一致的对象文档。
  • 有时系统的内部性能工作正常,但用户界面不正常;这就是为什么 GUI 测试是测试其他类型应用程序的绝佳方法。

GUI 测试的类型

图形用户界面测试分为两种不同类型,如下所述:

GUI Testing

模拟录制

图形用户界面测试的第一种类型是模拟录制。借助模拟录制,人们将始终与 GUI 测试工具连接。

本质上,GUI 测试工具用于封装精确的键盘按键、鼠标点击和其他用户活动,然后将它们存储在文件中以供回放。让我们看一个示例来了解模拟录制的基本功能。

示例

模拟录制可能会记录用户在 X = 700 像素,Y = 600 像素处左键单击,或在框中输入单词“登录”,然后按键盘上的 ENTER 键。

基于对象的录制

另一种 GUI 测试类型是基于对象的录制。在这种情况下,测试工具可以通过编程方式连接到需要测试的应用程序,并每个特定的用户界面模块(例如文本框、按钮和超链接)视为一个独立的对象。

在基于对象的录制中,我们可以执行以下活动,例如:

  • Click
  • 输入文本
  • 读取状态(是否启用或禁用)

在查看了所有类型的 GUI 测试之后,我们将转向下一个主题,即图形用户界面测试技术或不同方法

图形用户界面(GUI)测试技术/方法

我们有一些独特的技巧来执行 GUI 测试,如下所示:

GUI Testing
  • 基于手动测试
  • 基于模型的测试
  • 录制和回放
  • 混合测试
  • 基于代码的测试

让我们详细了解它们,以便更好地理解:

1. 基于手动测试

GUI 测试的第一种方法是基于手动测试。执行 GUI 测试最简单的方法是纯粹手动使用应用程序。通常,基于手动测试由热情的参数测试工程师实施。

换句话说,我们可以说,在这种方法中,图形项目由测试工程师手动测试,遵循BRS(业务需求规范)文档中指定的要求。

GUI Testing

正如我们已经知道的,手动测试效率低下,因为有时手动测试的执行速度慢、单调且容易出错。如果我们要适当地发布高质量的软件,我们应该坚持不懈地尝试自动化我们的测试策略。

但在当前的测试策略中,手动测试仍然发挥着重要作用。我们确定执行手动测试的正确平衡点。具体来说,对于 GUI 测试,手动测试工程师可能对界面的主观方面有更多了解,例如其外观和可用性

2. 基于模型的测试

GUI 测试的下一个方法是基于模型的测试,我们知道模型是系统性能的视觉叙述,这有助于我们理解和预测系统性能或活动。

模型对于借助系统需求开发实用的测试用例非常有益。

GUI Testing

在执行基于模型的测试方法时需要考虑一些基本要求:

  • 创建模型
  • 验证模型的输入
  • 分析特定模型的预期结果
  • 实施测试
  • 平衡实际结果与预期结果
  • 对模型上的附加操作进行评估

它也是一种不断发展的程序,用于借助给定需求创建测试用例。与其他的 GUI 测试方法相比,基于模型的测试提供了修复 GUI 可以实现的有害状态的优势。

我们可以通过其他一些基于模型的方法获得测试用例:

  • 决策表
  • 图表

决策表:决策表用于控制每个相关输入的输出。

图表:图表技术表示系统的状态并在一些输入后测试状态。

3. 录制和回放

我们可以借助自动化工具执行 GUI 测试,这可以通过两种方式完成。在录制部分,测试步骤由自动化工具封装。在回放中,这些录制的测试步骤在被测应用程序上执行。例如:QTP。

自动化方法是最常见的技术,其中 GUI 自动化测试本身超出了录制和回放方法的范围。

GUI Testing

顾名思义,录制和回放方法依赖于测试工程师使用特定工具录制测试会话。录制和回放方法的主要优点是不需要任何编码技能,这降低了我们使用它的障碍。录制和回放测试的主要缺点是它们的弱点

由于用户界面是应用程序中经常修改的一部分,因此依赖于用于与屏幕元素交互的策略。

4. 混合测试

混合测试是目前执行 GUI 测试的不同方法。对于非技术背景的用户来说,这是一种有益的技术,可以通过录制他们的会话来开发测试用例。之后,熟悉编码的用户可以在技术上进一步控制这些录制的测试。

拥有编码知识的人可以进一步操作这些录制的测试,以修改它们以应对更复杂的情况。

5. 基于代码的测试

执行图形用户界面测试的另一种方法是基于代码的测试。为了通过使用代码开发测试用例,GUI 测试提供了一些 GUI 测试工具。为了发现更困难的测试场景,我们可以使用基于代码的测试方法。

随后,他们的代码、测试用例可以在源代码控制中与应用程序的代码一起设计。

基于代码的方法的明显缺点是,它们要么要求我们让开发人员停止编码并让他们编写测试用例,要么教我们的测试工程师编码或编程。

GUI 测试的示例

在描述了图形用户界面之后,GUI 测试的描述也随之而来。我们可以说它是一种测试方法,用于验证产品的 GUI。

让我们看看在 GUI 测试下可以测试的各种元素/对象/模块。本质上,图形用户界面(GUI)测试包括以下内容:

  • GUI 测试检查屏幕的各个部分并分析不同分辨率下的屏幕。
  • 它检查界面是否美观或令人愉悦,以及图像是否清晰。
  • GUI 测试分析标题是否正确对齐。
  • GUT 测试测试拼写、位置大小、宽度、功能或元素的高度、字体颜色、超链接颜色、图像对齐、图像大小、错误消息颜色、警告消息
  • 根据页面大小测试滚动条(如果有),字体是否透明/可读。
  • 它还检查错误消息是否显示以及禁用的字段(如果有)。
  • 它还确保用户在使用系统界面时不会感到沮丧。

GUI 测试中面临的不同挑战

软件测试中,执行回归测试时最常见的缺点或问题是 GUI 经常更改。这使得测试工程师在执行测试并查找是问题还是改进时变得非常困难。

当没有与 GUI 修改相关的文档时,问题就会出现。执行图形用户界面(GUI)测试期间一些最常见的挑战如下:

  • 对象的稳定性
  • 技术支持
  • 仪器仪表

GUI 测试工具

为了识别在设计阶段发生的错误或缺陷,我们将使用图形用户界面(GUI)测试工具,这有助于我们提高软件的质量。

通过使用这些工具,我们可以轻松检测漏洞,而不是手动实施 GUI 测试。

根据应用程序行为,我们将测试涉及鼠标和键盘操作以及一些额外的 GUI 项目(例如对话框、按钮、菜单栏、工具栏和编辑字段)的应用程序。

一些最常用的 GUI 测试工具如下:

  • Ranorex Studio
  • Eggplant
  • Squish
  • AutoIT
  • RIATest

有关 GUI 测试工具的更多信息,请参阅以下链接:gui-testing-tools

结论

在彻底了解了所有 GUI 测试主题之后,我们可以说图形用户界面测试的执行至关重要。软件产品的成功取决于 GUI 如何与最终用户交互并帮助使用其各种属性。

图形用户界面测试的执行是必不可少的,因为它确保应用程序在不同平台和浏览器中呈现和工作相同。因此,GUI 测试非常重要,因为它将确保可观的客户群和业务价值。

在 GUI 测试中,有时执行手动 GUI 测试可能是一个重复且繁琐的过程。然而,强烈建议对 GUI 测试过程进行自动化。


下一主题测试策略