图形用户界面测试


图形用户界面测试

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

  • 什么是 GUI 测试?
  • 为什么我们需要进行 GUI 测试?
  • GUI测试的特点
  • GUI测试的类型
  • GUI测试示例
  • GUI测试过程中面临的不同挑战
  • 图形用户界面测试工具

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

什么是图形用户界面?

在计算机应用中,我们主要有两种类型的接口,例如:

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

命令行界面,使用时我们需要输入文本,并在同一时间计算机响应该命令。

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

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

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

正如我们在下图中看到的:

图形用户界面测试

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

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

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

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

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

GUI 测试的主要目标是验证软件的功能,或者应用程序按照给定的要求/规范执行。

图形用户界面的测试过程来实现手动或自动和通过重复执行第三方组织,而不是开发人员或最终用户。

换句话说,我们可以说 GUI 测试是一种测试应用程序用户界面的方法,如果软件或应用程序按与用户界面性能相关的预期工作。

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

在了解了GUI测试的定义之后,我们就得到了它的基本概念。但是会出现一些问题,例如:

  • 测试应用程序是否需要 GUI 测试?
  • 为什么我们需要进行 GUI 测试?
  • 对Application的特性和逻辑的测试是不是太多了??那为什么我们需要浪费时间在执行 UI 测试上呢?

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

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

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

为什么需要图形用户界面测试?

在软件测试技术中,图形用户界面的实现对于执行其他类型的软件测试是必不可少的。

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

并且已经声明“我们不能审查产品的质量”。

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

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

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

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

我们可以观察到Shift Left 测试的重要性令人着迷,这使得 GUI 测试容易受到攻击。尽管如此,手动 GUI 测试可能是一个耗时且资源密集型的过程。

虽然测试自动化对 GUI 来说更刺激,因为用户界面可以经常修改,但早期运行的自动化 GUI 测试可能会失败,需要相当大的决心来维护它们。

然而,单元和接口测试无法评估系统的所有领域,尤其是工作流可用性的关键特性。而且,这就是 GUI 测试的重要性,它是从用户而不是开发人员的角度来实现的。

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

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

GUI测试的特点

图形用户界面 (GUI) 测试的一些最重要的特性如下所述:

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

GUI测试的类型

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

图形用户界面测试

模拟录音

第一种图形用户界面测试是模拟录音。在模拟录音的帮助下,人们将始终与 GUI 测试工具保持联系。

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

例子

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

基于对象的记录

另一种 GUI 测试类型是基于对象的记录。在这种情况下,测试工具可以以编程方式连接到需要测试的应用程序,并将每个特定的用户界面模块(例如文本框、按钮和超链接)作为不同的对象进行观察**。**

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

  • 点击
  • 输入文字
  • 读取状态(是否启用或禁用)

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

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

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

图形用户界面测试

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

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

1. 手动测试

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

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

图形用户界面测试

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

但是在目前的测试策略中,手动测试仍然扮演着重要的角色。我们确定了执行手动测试的正确平衡。确切地说,谈到 GUI 测试,手动测试工程师可以对界面有更多的主观方面,比如它的外观和感觉以及可用性

2. 基于模型的测试

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

这些模型有助于在系统需求的帮助下开发实际的测试用例。

图形用户界面测试

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

  • 创建模型
  • 验证模型的输入
  • 对于特定模型分析预期结果
  • 实施测试
  • 平衡实际结果与预期结果
  • 对模型添加动作的评估

为了在给定需求的帮助下创建测试用例,这也是一个不断发展的过程。与其他 GUI 测试方法相比,基于模型的测试提供了修复我们的 GUI 可以完成的不利状态的好处。

我们可以借助其他一些基于模型的方法来获取测试用例:

  • 决策表
  • 图表

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

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

3. 录制和回放

我们可以在自动化工具的帮助下进行 GUI 测试,自动化工具可以分为两种类型。在整个记录部分,测试步骤由自动化工具封装。并且在回放中,这些记录的测试步骤是在被测应用程序上实现的。例如:QTP。

自动化方法是最常见的技术,其中 GUI 自动化测试证明其自身超越了记录和回放方法。

图形用户界面测试

顾名思义,记录和重放方法取决于让测试工程师使用特定工具来记录测试会话。Record and replay 方法的显着好处是它不需要任何编码技能来减少我们使用它的障碍。记录和重放测试的主要缺点是它们的弱点

由于用户界面是经常修改的应用程序的一部分,并且依赖于用于与屏幕上的元素相互关联的策略。

4. 混合测试

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

拥有编码知识的人可以进一步操纵这些记录的测试,以针对更复杂的情况对其进行修改。

5. 基于代码的测试

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

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

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

GUI测试示例

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

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

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

GUI测试过程中面临的不同挑战

软件测试中,执行回归测试时最常见的缺点或问题是 GUI 定期更改。对于测试工程师来说,为了执行测试并发现它是问题还是改进,这变得非常困难。

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

  • 物体的稳定性
  • 技术支持
  • 仪表

图形用户界面测试工具

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

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

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

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

  • Ranorex Studio
  • Eggplant
  • Squish
  • AutoIT
  • RIATest

结论

在彻底了解所有 GUI 测试主题后,我们可以说图形用户界面测试的执行是必不可少的。软件产品的完成依赖于 GUI 如何与最终用户相互关联并帮助使用它的几个属性。

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

在 GUI 测试中,有时执行手动 GUI 测试可能是一个重复且乏味的过程。但是,强烈建议在 GUI 测试过程中使用自动化。