Le macchine virtuali sono molto buone. Se il tuo software funziona in una macchina virtuale, dovrebbe funzionare anche su una macchina reale. Ma a volte, il software funziona su una macchina reale ma non funziona in una macchina virtuale:
- se il software ha bisogno di accedere a hardware speciale, come l'accesso diretto alle porte USB, schede grafiche, ....
- se il software richiede un accesso diretto alla rete.
- se il software è correlato alla virtualizzazione. Non è possibile creare macchine virtuali nidificate.
Quindi per la maggior parte dei software, la virtualizzazione funziona bene. Ci sono un paio di svantaggi per le macchine virtuali in generale:
- usano molta RAM mentre sono in esecuzione. Questo limita il numero di macchine virtuali che puoi eseguire contemporaneamente.
- richiedono un po 'di tempo per avviarsi e spegnersi. Non puoi testare rapidamente qualcosa.
- se la macchina virtuale funziona su un emulatore , la macchina virtuale sarà molto più lenta. Questo è necessario se il sistema operativo è eseguito su una diversa architettura della CPU. Ad esempio, stai sviluppando su una macchina x64, ma vuoi testare su ARM (telefoni cellulari) o Sparc (server Sun / Oracle).
Ho usato molte macchine virtuali per i test, ed è stato molto più semplice rispetto all'utilizzo di molte macchine fisiche.