网络测试和应用程序测试一直是在整个开发过程中重要的一环。测试包括发现和解决问题——无论是导航中的小故障、注册表单的问题、支付处理的中断,还是仅仅是字体大小的简单差异。然而,测试可以确保每次更改都不会在不同设备上破坏用户体验。
拥有一个健壮的测试流程的关键部分是运行测试的设备。一个彻底的测试程序在其结果中也可能会在不同设备上产生差异。因此,测试设备的重要性至关重要。特别是对于在移动设备上进行测试,由于设备的多样性,包括不同的操作系统、浏览器和硬件配置,测试设备的重要性更是不言而喻。
让我们研究不同的移动测试设备解决方案,以获得更深入的了解。
移动测试设备解决方案的类型
随着时间的推移,技术的发展,测试也看到了在各种移动测试设备解决方案中其份额的提升。这些移动测试解决方案是为了支持网站跨浏览器测试和移动应用程序测试而构建的,通过分析应用程序的行为、功能和界面方面,在不同手机上进行测试。
这种测试的主要目的是确保网站和应用在不同的移动设备上具有一致的行为。由于这些设备在硬件配置、操作系统和屏幕分辨率上存在差异,因此在某个设备上可能以某种方式运行的功能在其他设备上可能会有所不同。
主要在两种设备上进行移动测试:
- 真实设备
- 虚拟设备
什么是真实设备?
真实测试设备是用于运行网站或应用以测试其功能和行为模式的多种移动手机型号。这些是最终用户会使用的实际手机。
通常,测试团队会购买几款带有iOS、黑莓、安卓手机、平板电脑和iPad的移动手机来测试他们的软件应用程序。
测试设备的演变:从真实设备到虚拟测试设备
尽管在真实设备上测试得到的结果非常准确,但测试成本较高,因为公司必须购买多款设备,并且必须随着时间的推移更新它们,因为市场上会出现新产品。
在真实设备上进行测试的费用是公司面临的巨大挑战,他们通过引入如模拟器和仿真器等虚拟测试设备来克服这一挑战。因此,在进行跨浏览器兼容性测试的软件时,虚拟测试设备变得常规使用。
什么是虚拟测试设备?
虚拟测试设备是计算机上的一个软件程序,与真实设备不同,它提供了对实际智能手机设备的大部分重要功能的模拟。它模仿智能手机的特性,帮助测试人员在其上运行软件应用程序,以了解它在指定真实设备上运行的情况。
尽管虚拟测试设备能够模仿设备并且成本效益高,但由于准确性和可靠性因素,它不能取代真实设备。
虚拟测试设备分为两种类型:
- 仿真器
- 模拟器
仿真器是什么?
仿真器是一种软件,能够在您的计算机上模仿目标设备的硬件和软件。它们通过将目标设备的ISA(指令集架构)翻译成您用于进行测试的计算机上使用的ISA,并通过二进制翻译来实现这一点。
ISA是一组用机器语言编写的指令,每个处理器家族都会使用它们来构建自己的设备配置,描述设备的功能和行为。
通过将目标移动设备的ISA翻译到您的计算机中,您可以模仿目标设备的运行方式,形成一个用于测试的虚拟环境。
然而,这些接近本地的目标移动设备功能,使您能够调整物理传感器、地理位置等,是以延迟为代价的。
Android模拟器、Galaxy模拟器和iPhone模拟器(实际上是对iOS模拟器的误称)是一些广泛用于软件测试的模拟器。
模拟器是什么?
模拟器是一种软件,可帮助您的计算机运行为不同操作系统构建的某些程序。与易于模拟的Android设备不同,它们主要用于iPhone和iPad设备。
<iOS模拟器模仿iOS系统,在计算机操作系统之上运行所需的应用程序。但要想运行iOS模拟器,只能使用macOS操作系统,因为它需要苹果的本地Cocoa API。这个Cocoa API对于图形用户界面、运行时以及许多其他操作至关重要。
这带来一个问题,开发者要么需要在MacBook上工作,要么在现有系统上虚拟化macOS。
与模拟器不同,模拟器并不模仿硬件。因此,在使用模拟器进行测试时,无法研究某些功能,如电池使用、蜂窝网络中断等。
阅读更多: 虚拟机(VM)上的测试:转向真实设备测试
模拟器与仿真器:了解差异
虽然这些虚拟测试设备在交流中有时可以互换使用,实际上,模拟器和仿真器在许多方面都彼此不同。
Criteria | Emulators | Simulators |
---|---|---|
目标区域 | 移动设备硬件、软件和操作系统 | 移动设备的内部行为 |
提供者 | 仿真器由设备制造商提供 | 模拟器由设备制造商和其他公司提供 |
内部结构 | 用机器级汇编语言编写 | 用高级语言编写 |
适合调试 | 模拟器可靠且更适用于调试 | 另一方面,模拟器不太可靠,不太适合调试 |
性能 | 二进制翻译使得它们由于延迟而变慢 | 由于没有二进制翻译,模拟器更快 |
示例 | 安卓SDK | iOS模拟器 |
真实测试设备与虚拟测试设备
真实测试设备和虚拟测试设备在功能上有所不同。
Criteria | Real Testing Device | Virtual Testing Device |
---|---|---|
成本 | 购买真实设备成本过高 | 通常可以免费安装,因此成本较低 |
可靠性 | 真实设备能展示准确结果,并允许在用户相同的条件下进行测试 | 虚拟测试设备仅能模仿设备,无法复制真实用户条件,如硬件和软件配置 |
处理速度 | 在真实设备上进行软件测试要快得多 | 由于二进制翻译,虚拟设备上的软件测试较慢 |
适合调试 | 使用真实测试设备进行调试可能很棘手,尤其是在捕获缺陷时。 | 虚拟设备通过其功能,使得分步调试变得容易,您可以捕获缺陷。 |
跨平台测试 | 通常可以使用真实设备进行跨平台测试。 | 使用虚拟设备可以无缝地进行跨平台测试。 |
真实设备、模拟器和仿真器:何时测试什么
利用这些设备各自的功能,如果使用得当,可以优化结果,使跨浏览器兼容性测试变得更加容易。最佳实践主要包括在正确的设备上测试以获得更好的结果。
由于虚拟设备提供了更好的调试功能,因此在代码开发的初始阶段使用最为合适。虚拟设备可以使循环更快、更高效,因为在初始阶段需要进行频繁的迭代。
另一方面,由于准确性的因素,Sanity Testing 和 User Acceptance Testing 最好使用真实设备进行。在某个阶段之后,回归测试的某些部分仍然可以使用虚拟设备进行,但这可能会导致结果受损。
使用真实设备云迈出一步
真实设备和虚拟设备各有利弊,使得它们在测试的不同阶段各有所长。然而,采用真实设备云进行测试可以实现两者的最佳结合。
通过单一的真实设备云,您将能够获得:
- 原生的真实设备体验、准确性和可靠性
- 节省成本
- 像虚拟设备一样易于调试
- Web自动化测试和移动应用自动化测试,实现快速大规模测试
- 无需麻烦地进行实时互动跨浏览器测试和互动应用测试
真实设备云因此成为理想的解决方案,既能让测试人员轻松找到bug,也能让开发人员轻松修复bug,同时保持低成本。
Source:
https://www.browserstack.com/guide/testing-on-emulators-simulators-real-devices-comparison