您是否使用 VM、用户代理、MutlipleIE 等进行测试?

软件测试 虚拟机
2022-01-09 18:49:38

由于无法在阳光下获得所有的s/w和h/w,我们经常求助于使用虚拟机、用户代理、多个IE等。

当我没有找到在虚拟机上运行的应用程序,尤其是多个 IE 时,我遇到过这样的情况,但是当找到另一个具有所需配置的同事时,它运行良好。

鉴于这种情况,我开始怀疑使用这种模拟进行测试。您是否还使用这种模拟而不是实际设备进行测试。您是否相信使用这种模拟进行测试而不是使用实际设备?

4个回答

一般来说,虚拟机可以很好地进行测试,因为它们在 99% 的功能测试中都会给出与真机相同的结果。但是,有一些事情需要在真实的物理机器上进行测试,然后才能宣布测试通过:

  • 驱动程序,以及内核空间中的任何其他内容。虚拟机对操作系统来说是完全真实的,但有时抽象会泄漏。这通常只在操作系统的非常低级别中很明显,其中 VM 的反应可能与物理机器不完全相同。对于这些情况,在非常底层的操作系统代码中,您应该在物理机而不是 VM 上进行测试。
  • CPU 架构和专用编译器。VMWare 可以为您的 VM 模拟 x86 和 x64 兼容的 CPU,但它不能真正模拟不同的处理器架构。在之前的项目中,我不得不使用物理盒子在 Itanium 机器上测试驱动程序,并查看使用 Intel 编译器时的差异,这意味着在 Intel CPU 上编译和运行。出于显而易见的原因,这些东西对虚拟化不利。
  • 负载和压力的性能测试和基准测试。在虚拟机设置中,真实的物理资源在主机上的所有虚拟机之间共享。即使 CPU 周期和 RAM 被分区,网络和 IO 仍然是共享的。这意味着您不能真正在 VM 上进行性能测试,当然也不能进行基准测试。

问题是,即使有上述例外情况,我认为虚拟机无法有效使用,在任何一年中,我仍然在 98% 的工作中使用虚拟机。

虚拟化测试环境是节省硬件和提供集中式测试环境的好方法,但如果您没有背后的策略,它很容易出现与拥有一组物理机器的问题相同的类型。

在我的公司中,我们使用了几个虚拟系统集群,它们都源自一个通用模板,因此默认状态尽可能同质。对于我们创建的每个系统,我们倾向于拍摄默认状态的快照,以便在它因大量使用而变脏时恢复。这将重置时间减少到几秒钟,而不是重新映像物理机器的一个小时以上。

此外,这种方法非常适合为网站/应用程序测试以及桌面软件测试创建服务器环境,以运行一套自动化测试并提供自动化验收测试。迄今为止,我们从未遇到任何与虚拟平台相关的错误或行为;他们仍然设法在虚拟测试环境中成为特定于机器的。

我们CensoredCompanyName几乎只使用虚拟环境。我们正在为每位员工使用大量的 VM Ware 集群。那就是1000多人。

我们只有很少的专用环境,我们没有遇到任何问题。也许您的配置或 VMWare 软件有缺陷,或者问题可能出在其他地方?

所以向你保证......我们已经使用虚拟机多年了,安装的软件没有任何问题,也没有任何生产力问题。

不过,我不确定该公司使用什么作为 VM 软件,但如果可以的话,我会为您找出答案。

干杯!

事实上,每次安装操作系统都是不同的。测试时您的目标是确保您的环境尽可能受控。使用虚拟机,这既容易又困难。

优点是您可以在几秒钟内从图像创建全新的机器。这使您可以重新安装应用程序(因此以前的测试不会损坏。)对您的环境的控制是最重要的。

主要缺点是共享处理器/内存状态。这就是您对环境的控制开始崩溃的地方。如果其他人正在做一些密集的事情而你没有它说你做的资源怎么办?

在我的上一份工作中,我们使用虚拟机进行自动化夜间测试,效果很好。我们知道他们拥有资源和新鲜的环境。我们还拥有我们支持的各种系统的虚拟机。它就像一个魅力。

欢迎来到云时代。

作为记录,我们使用了 VMWare。我不认可它或任何东西。它很容易使用,但我没有比较标准,也没有做太多繁重的工作(尽管我确实编写了用于启动和停止 VM 的 Groovy 集成,这很容易。)