I want to confirm that my software works on an OS that is not installed on my workstation. So I want to use a virtual environment to test it.

I am worrying there are disadvantages about that.

Are there disadvantages for testing software in a virtual environment?

OS what I mean, operating system.

  • What exact OS are you thinking of (that "you don't have")? Most software need some specific OS API. The POSIX standard defines some well defined API. And what kind of software are you coding? Some weird (academic) operating systems don't even have files! So edit your question to improve it. Commented Dec 22, 2016 at 11:33
  • You probably should take days to read Operating System : three easy pieces or find some course on operating systems in Japanese. Commented Dec 22, 2016 at 11:37
  • 1
    Possible duplicate of Testing on different operating systems
    – Doc Brown
    Commented Dec 22, 2016 at 12:28
  • I would like more answers. If you can answer to me... Answer to me!
    – ra1ned
    Commented Dec 23, 2016 at 7:12

1 Answer 1


Virtual machines are very good. If your software works in a virtual machine, it should also work on a real machine. But sometimes, the software would work on a real machine but fails in a virtual machine:

  • if the software needs access to special hardware, like direct access to USB ports, graphic cards, ….
  • if the software needs direct network access.
  • if the software is related to virtualization. You can't create nested virtual machines.

So for most software, virtualization works well. There are a couple of disadvantages to virtual machines in general:

  • they use a lot of RAM while they are running. This limits the number of virtual machines you can run at the same time.
  • they take some time to boot up and shut down. You can't quickly test something.
  • if the virtual machine runs on an emulator, the virtual machine will be much slower. This is necessary if the OS runs on a different CPU architecture. For example, you are developing on a x64 machine, but want to test on ARM (mobile phones) or Sparc (Sun/Oracle servers).

I have used a lot of virtual machines for testing, and it was much easier than running many physical machines.

  • 1
    A VM only provides a virtual hardware execution environment. It still requires you to run the particular OS you want to test on. But the OP said he doesn't have that particular OS. Commented Dec 22, 2016 at 12:11
  • @JörgWMittag: what the OP wrote literally and what he actually meant are probably two different things.
    – Doc Brown
    Commented Dec 22, 2016 at 12:17
  • @JörgWMittag I understand that as “I don't have that OS installed on a physical machine/don't want to dual-boot/don't have separate hardware” not “I don't have access to the OS”. Then, a virtual machine can help. If the problem actually is “I want to develop for Mac OS/iOS/AIX mainframes/Arduino/Windows but don't want to buy the necessary hardware/software” then no amount of virtual machines will help.
    – amon
    Commented Dec 22, 2016 at 12:19
  • @amon: stay calm, I edited the question to make it more clearer.
    – Doc Brown
    Commented Dec 22, 2016 at 12:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.