Debugging 如何将客户端PC环境模拟为用于错误复制和QA测试的VM

Debugging 如何将客户端PC环境模拟为用于错误复制和QA测试的VM,debugging,testing,virtual-machine,qa,Debugging,Testing,Virtual Machine,Qa,是否有任何资源或工具允许我将客户机的计算机复制/镜像为VM环境,以尝试复制在我们的测试环境中无法复制的错误 理想情况下,工作流程如下所示: 获取远程PC环境的快照/映像 将远程PC环境的快照/映像作为VM加载 在远程PC环境中测试不可再现的错误/问题 我遇到的问题是,客户端报告错误,我们无法在任何测试环境中重新创建错误。从物理机到虚拟机有很多选择 其中一个选项是使用Disk2vhd。以下步骤来自: 下载Disk2vhd实用程序。转到Windows系统内部构件页面并下载该实用程序 在要转换的物理服

是否有任何资源或工具允许我将客户机的计算机复制/镜像为VM环境,以尝试复制在我们的测试环境中无法复制的错误

理想情况下,工作流程如下所示:

  • 获取远程PC环境的快照/映像
  • 将远程PC环境的快照/映像作为VM加载
  • 在远程PC环境中测试不可再现的错误/问题

  • 我遇到的问题是,客户端报告错误,我们无法在任何测试环境中重新创建错误。

    从物理机到虚拟机有很多选择

    其中一个选项是使用Disk2vhd。以下步骤来自:

  • 下载Disk2vhd实用程序。转到Windows系统内部构件页面并下载该实用程序
  • 在要转换的物理服务器上运行Disk2vhd
  • 将磁盘转换为VHDX格式并将其复制到Hyper-V主机
  • 在Hyper-V主机上创建新VM
  • 插入创建的磁盘
  • 运行虚拟机

  • 话虽如此。如果您正在对无法在本地重新创建的崩溃或挂起问题进行故障排除,请查看收集有问题进程的崩溃或挂起转储。在Windows上,工具adplus与Windows调试工具一起分发,可以直接收集转储。收集转储后,您可以使用来自同一工具发行版的WinDbg对其进行分析。转储文件比传输整个VM映像要小,并且经常会出现问题。

    好吧,从物理上讲,这是可能的,但是您很难在现实生活中引入这种做法,因为:

  • 它取决于您的客户拥有的操作系统
  • 整个用户状态的快照是一件非常重要的事情。它可能需要相当长的时间来采取一个和消耗大量的交通运输交付snapchot给你
  • 制作客户端机器的快照意味着访问可能是机密的数据。您不太可能被允许访问这些数据
  • 即使你做了一个快照,你也不可能得到100%相同的环境,因为有不同的外部因素会影响应用程序的行为(例如,用户在域中的权限)
  • 正如文章中所述,当安装Windows操作系统时,安装与您拥有的特定硬件相关(但我相信这对任何操作系统安装都是正确的),因此从测试角度来看,将一个硬件上的备份与其他硬件上的备份展开可能会使您的状态不可靠
  • 我建议你考虑以下选择:

  • 如果没有安全限制,您可以从 客户:如果您

    • 远程连接到客户端的计算机。这将大大减少传输数据所需的资源。这样您就可以执行一些测试并收集日志
    • 向应用程序引入远程调试功能。这样,您就可以使用IDE调试器连接到客户端的应用程序,并查看状态
  • 如果有,您可以考虑可能影响行为并记录它们的最危险的客户端状态属性。实际上,尽可能多地记录ase,并且客户端允许您记录。比如说,这就是安卓开发者从应用程序接收错误的方式。您永远不会将手机操作系统的快照发送给应用程序开发人员

  • 如果您仍然想使用虚拟化方法,那么您应该考虑不同操作系统的选项。最可靠的选择是,如果您的客户机在虚拟化环境中工作,那么他们可以在其网络中为您分配类似的实例,或者如果您使用相同的虚拟化软件,则为您提供快照