One of the most important things to do after you have a new installer ready for customers is to test, Test, TEST! Virtual Machine technology can make this task significantly easier, as we describe in this post.
Points to Consider When Testing Your Software Before Release
First impressions go a long way, so you want to make sure that your customers have a good experience when installing and using your software. Here are some ideas to consider when testing your software before release:
- It is important to test on a computer which has never had your software or development tools installed. This way, you can make sure that the installer copies all necessary dependencies and the software actually launches after installation.
- Be sure to test the installer on all operating systems that you claim to support, especially since different operating systems have different dependencies installed by default. Don’t forget to test on both 32-bit and 64-bit versions of each operating system!
- Be sure to test the uninstall process. When using License File Aliases to track previous trial installations, be sure that the uninstaller leaves these files scattered throughout the computer. Since an installer can be scripted to perform an in-place upgrade versus an uninstall/reinstall, it is a good idea to test installing multiple builds to verify desired functionality.
- If this version is an upgrade to a previous version, be sure to install the upgrade on all previously-supported versions to make sure the upgrade fully completes.
- Is all application data preserved after the upgrade?
- Does the licensing behave as you expect? Sometimes you want an upgrade to use the previous software license and just continue to run and sometimes you want the user to have to re-activate after installing the upgrade.
Testing with a Physical Machine versus Virtual Machine
Testing your software on physical computers can be less than ideal for many reasons. Using virtualization software is a reliable and easy way to avoid the challenges faced with testing on physical computers. If you haven’t experienced the incredible power of virtual machine technology, we strongly recommend that you consider it for your testing purposes.
Physical Machine Challenges
Virtual Machine Advantages
Once your software has been installed one time, you can no longer treat this machine as a “fresh” computer for item #1 above. It is neither easy nor convenient to “reset” or restore the physical computer back to a clean state.
Most virtualization programs support saving “snapshots“ of each operating system running in a virtual machine (often called a virtual machine guest), which allow you to restore the virtual machine guest to the exact state it was in when the snapshot was taken.
For example, you can take a snapshot of a fresh/clean operating system, then test installing your application. When finished testing, you can revert to the snapshot, returning you back to the fresh/clean environment ready to run the next test.
View YouTube Video showing snapshot manager.
The number of operating systems and environments that you have to support means you need many physical computers.
Using a single physical computer, it is possible for you to establish different virtual machines for testing different operating systems and versions thereof.
For example, you could have separate virtual machines configured for testing Windows 7, Windows 8.1, Windows 10, etc…
Even amongst these, you could have separate virtual machines for the 32 bit and 64 bit builds of each applicable version of Windows.
Testing your time-limited licenses often means you need to set your system clock forward to simulate expiration, causing several possible problems such as:
Virtual Machines allow you to isolate the system clock of the host operating system from the guest operating system. This allows you to adjust the system clock as needed without adversely effecting other software or licenses on the host operating system.
What Virtualization Software Should I Use?
What’s best or ideal will vary from person to person. We generally recommend VMware Workstation Pro (when your physical computer is running Windows or Linux operating systems) or VMware Fusion (when your physical computer is running Mac OS X), based upon our personal experiences.
Whether you use physical computers or virtual machines, no shortcuts should be taken when testing your final application under all of the environments that your customers could possibly throw at it.
We hope that you see the value of using virtual machine technology in your next testing initiative.
See also: Virtualization 101