兼容性测试


兼容性测试

在本节中,我们将了解什么是兼容性测试、我们为什么使用它、我们应该何时执行它、兼容性测试的类型、兼容性测试过程以及兼容性错误和工具。

什么是兼容性测试?

它是非功能测试的一部分。

在不同的软件、硬件平台、网络和浏览器上检查应用程序的功能称为兼容性测试。

为什么我们使用兼容性测试?

应用稳定后,我们将其移至生产环境,可能会被不同平台上的多个用户使用或访问,他们可能会面临一些兼容性问题,为了避免这些问题,我们进行了一轮兼容性测试。

我们应该什么时候进行兼容性测试?

通常,只有在应用程序或软件功能稳定时,我们才会进行兼容性测试。

兼容性测试

注意: 不是每个应用都做;我们只会为我们无法控制用户使用的平台的应用程序执行此操作。

兼容性测试的类型

以下是兼容性测试的类型:

  • 软件
  • 硬件
  • 网络
  • 移动的

软件

在这里,软件是指不同的操作系统(Linux、Window 和 Mac),还要检查不同版本操作系统的软件兼容性,如 Win98、Window 7、Window 10、Vista、Window XP、Window 8、UNIX、Ubuntu、和Mac。

并且,我们有两种类型的版本兼容性测试,如下所示:

  • 前向兼容性测试:在新版本或最新版本上测试软件或应用程序。 例如:最新版本的平台(软件) Win 7 → Win 8 → Win 8.1 → Win 10
  • 向后兼容性测试:在旧版本或先前版本上测试软件或应用程序。 例如: Window XP → Vista → Win 7 → Win 8 → Win 8.1

以及不同的浏览器,如Google Chrome、FirefoxInternet Explorer等。

硬件

该应用程序兼容不同大小的内存、硬盘、处理器和显卡等。

移动的

检查应用程序是否与 iOS、Android 等移动平台兼容。

网络

检查软件在运行速度、带宽和容量等不同网络参数下的兼容性。

测试兼容性测试最具挑战性的部分是什么?

执行兼容性测试时最具挑战性的事情是确定要测试的必要需求。

我们无法在所有现有平台上进行测试,因为这将是一个耗时的过程。

因此,我们只选择最终用户常用的那些平台。

兼容性测试

兼容性测试流程

在这里,我们正在执行 OS(操作系统)兼容性测试过程。

兼容性测试

  • 首先,客户将给出功能性需求和非功能性需求。
  • 得到非功能需求后,一个基础平台会根据最常用的平台来决定。
  • 之后,测试工程师将在基础平台上开始功能测试,直到应用程序功能稳定。
  • 我们必须在不同的平台上测试应用程序,为此,我们有一个 VMware 软件。

注1: VMware软件:借助VMware,我们可以将一台物理机分割成多台虚拟机,可以同时访问。

  • 对于兼容性测试,我们将使用 VM Server,在其中安装所有必需的操作系统和浏览器,并使用远程桌面连接访问该服务器。
  • 我们远程访问VMware设置,之后测试工程师会在平台上做一轮兼容性测试,检查端到端的流程。
  • 端到端流程将继续进行,直到应用程序稳定,应用程序在所有必要的平台上都能正常工作并移交给客户。

笔记2:对于浏览器兼容性测试,我们不必进行 VMware 设置,因为可以在一台机器上安装多个浏览器,也可以同时访问它们。对于同一浏览器的多个版本,我们必须使用 VMware 设置,因为无法从单个系统同时访问多个版本的浏览器。我们可以在不同平台上进行软件兼容性测试。

兼容性测试错误/问题

这些错误是那些发生在一个平台上,但不会发生在另一个平台上的错误。

兼容性bug一般是用户界面问题,部分UI问题如下:

  • 对齐问题
  • 重叠问题
  • 分散问题
  • 外观问题

对齐问题

对齐问题是页面元素没有以正确的格式对齐,如下图所示:

兼容性测试

重叠问题

当一个属性与另一个属性重叠时,当我们尝试在不同平台、浏览器上打开应用程序时可能会发生这种情况,如下图所示:

兼容性测试

分散问题

当测试工程师对应用程序进行兼容性测试时,该应用程序与所有浏览器和平台不兼容,这就是为什么会出现分散问题的原因,如下图所示:

兼容性测试

在不同平台上测试功能、集成和端到端流程是我们在兼容性测试中所做的工作。

兼容性问题:当应用程序功能无法在一种操作系统中运行,但在其他操作系统中运行良好时。这是因为开发人员编写的程序不仅可以在一个平台上运行,而且可以在所有其他平台上正常运行。

功能问题:当某个功能无法在所有操作系统/平台上运行时。它也被称为功能缺陷问题。

对于兼容性测试,测试执行报告如下所示:

兼容性测试

兼容性测试工具

一些最常用的兼容性测试工具如下:

  • LambdaTest
  • BrowserStack
  • BrowseEMAll
  • TestingBot

LambdaTest

它是一款开源的云端浏览器兼容性测试工具。借助此工具,我们可以在几乎所有移动浏览器和桌面浏览器上测试我们的 Web 应用程序。LambdaTest 有一个截图功能,它允许我们对我们的网页进行整页截图。

在这个工具中,我们可以在真实的浏览器上测试我们的应用程序,用户有大量的移动和桌面浏览器选项来检查应用程序的兼容性。

BrowserStack

该工具帮助我们测试网站和移动应用程序在多个浏览器和平台上的兼容性。

在这里,我们可以在各种浏览器和移动应用程序(如 android 和 iOS)中的所有移动设备中测试 Web 应用程序。

BrowserStack 工具的主要产品有 Live、Automate、App Live 和 App Automate,借助这些工具,我们可以保持成本。

这些工具帮助我们减少与测试相关的时间、价格和维护开销。

BrowseEMAll

该工具可以在 Linux、Windows 和 macOS 等不同操作系统上运行应用程序,它是一个跨浏览器的测试工具。

它用于在所有移动浏览器和桌面上测试应用程序,我们可以直接在本地机器和本地网络上使用它。

并且我们可以在没有任何网络延迟的情况下执行回归和可视化测试,我们还可以针对许多桌面和移动浏览器记录和播放自动化测试。

TestingBot

该工具用于在Firefox、Chrome、Edge、IE、Safari等各种浏览器上进行测试。在这里,我们可以比较多个浏览器和平台的截图,并测试应用程序的响应式布局。

它将提供大量浏览器版本供自动化测试的即时使用。