我开发了一个应用程序,需要在多个操作系统上进行测试,包括 Win98、XP、Vista 和 Win7。我想知道使用虚拟化技术是否能提供准确的测试结果。虚拟化系统是否会提供与在真实计算机上安装操作系统相同的结果?
答案1
是的,除了基准测试或驱动程序测试之外,虚拟化还是一个出色的软件测试平台(但即使是这样,也需要 USB 支持)。
如果您的软件与真实硬件相关,例如硬盘文件恢复实用程序(在某些情况下),或者专门针对未通过虚拟化的功能的程序(例如,几年前我记得直接使用 CPU 滴答的 c++ 程序存在问题),您也可能会遇到问题。
然而,对于一般的程序来说,这绝对没问题。
答案2
如果您的系统支持硬件虚拟化,那么虚拟计算机和真实计算机之间就没有太大区别,除非您需要图形加速。
答案3
虚拟化非常适合测试软件,您可以拥有大量非常相似的实例,不同之处在于补丁、已安装的软件等。这允许您非常具体地测试软件,同时始终稍微改变变量。此外,如果需要,还可以非常轻松地回滚到“干净”的系统并从不同的方向开始。我们有一个虚拟系统,用于在 Windows 补丁进入主系统之前对其进行测试,我们认为这只是一种很好的做法。
答案4
虚拟化确实是测试的最佳方式。只有两种例外情况:如果您正在执行非常具体的硬件接口,这些接口直接与硬件对话(即使这样,它对于某些东西(例如串行)也很有用,因为您可以更轻松地捕获到文件中)。第二种情况是,如果您需要使用多个相互通信的客户端进行测试,并且在 VM 网络内进行时间同步。请注意,多个虚拟机的网络运行良好,并且表现得好像它们都是独立的机器一样。这两种例外情况极为罕见。使用虚拟机进行测试的另一个优点是,如果您通过 UI 进行自动化测试并在测试中使用鼠标/键盘操作。这可以在不影响主机的情况下运行。