I need to test a software across different operating systems for compatibility. Is using a virtual machine with different OSs installed a good way to test for compatibility? Is there a repository somewhere where I can use pre-built virtual machines for this?
For applications that exclusively run above the operating system layer, VMs should be sufficient test environments.
If you are doing testing for stuff like full disk encryption (exceptions acknowledged), you should consider limitations such as not being able to test workflows like pre-boot authentication (which would happen below the operating system layer).
Yes, virtual machines are a good way to test for compatibility across operating systems.
There are indeed repositories of pre-built virtual machines. You can find them using a Google search. In your search string include something about the flavors of OSes you desire.
For example "repository of linux virtual machine images".
Depending on the needs of you application and your test processes, however, it may be more efficient to build your own library configured to your specific needs, rather than relying on pre-built systems.
Using Virtual Machines will be a good idea, But for Some issues its better for you to install os in a separate machine.See this one why virtual machine is not always better
Any repository : yes there were many repository sites for it,Sites like oldapps.com would provide whatever the source you prefer and linux repositories were mostly open source.
This is a primary means of testing at my company. We have a couple of dedicated servers that have 'clean' installations of all major versions we support. For us it was easier to just install the OS ourselves then snapshot the VM. That way someone can get on, screw around with whatever they need to, and then just destroy the VM and refresh it from the snapshot.
Personally my preferred hypervisor is KVM. It's free, fairly lean, and really easy to use. Virtualbox seems to have a lot more overhead and I have more compatibility issues at the hardware layer. Additionally, KVM is really easy to script using the 'virsh' commands so we've created custom scripts that will automatically spin up a box, give it correct IP information, etc.
That's a great solution for Linux testing. (And now KVM is even available on Power hardware.) As far as AIX and Solaris, our other two platforms, those are trickier. Ldoms and Lpars are kind of a pain in the butt.