An Easier Way to Test Your Applications
Whether or not you have added licensing controls to your software, testing your application under all of the environments and conditions typical of your customer base is critical. First impressions go a long way, so you want to make sure your customers have a good experience when installing and using your software.
This article outlines the points to consider when testing your software and explains how Virtual Machine (VM) technology can greatly simplify the process compared to using physical machines alone.
Points to consider when testing your software before release
Keep the following in mind as you build a test plan for each release:
- Test on a computer that has never had your software or development tools installed. This confirms that the installer copies all necessary dependencies and that the software actually launches after installation.
- Test the installer on all operating systems that you claim to support. Different operating systems ship with different dependencies installed by default, so do not forget to test on both 32-bit and 64-bit versions of each operating system.
- Test the uninstall process. When you use License File Aliases to track previous trial installations, confirm whether the uninstaller leaves those files in place or removes them as you intend. Because an installer can be scripted to perform an in-place upgrade rather than an uninstall/reinstall, it is also a good idea to test installing multiple builds in sequence to verify the behavior you expect.
- If this version is an upgrade to a previous version, install the upgrade on every previously supported version to make sure the upgrade fully completes. As part of this, verify:
- Is all application data preserved after the upgrade?
- Does licensing behave as you expect? Sometimes you want an upgrade to keep using the previous license and continue to run, and sometimes you want the user to re-activate after installing the upgrade.
Testing on a physical machine versus a virtual machine
Testing your software only on physical computers can be less than ideal for several reasons. Virtualization software is a reliable and convenient way to avoid those challenges. If you have not yet used virtual machine technology, we strongly recommend considering it for your testing.
The table below compares the common challenges of physical machines with the advantages of virtual machines.
| Physical machine challenges | Virtual machine advantages |
|---|---|
| Once your software has been installed even once, the machine can no longer be treated as a "fresh" computer (see item 1 above). Resetting or restoring a physical computer to a clean state is neither easy nor convenient. | Most virtualization programs support saving "snapshots" of each operating system running in a virtual machine (often called a guest), which let you restore the guest to the exact state it was in when the snapshot was taken. For example, you can snapshot a fresh, clean operating system, install and test your application, then revert to the snapshot to return to the clean environment, ready for the next test. |
| The number of operating systems and environments you support can mean you need many physical computers. | On a single physical computer, you can set up different virtual machines for testing different operating systems and versions. For example, you could have separate virtual machines for Windows 7, Windows 8.1, Windows 10, and so on, and even separate 32-bit and 64-bit guests for each applicable version of Windows. |
| Testing time-limited licenses often means setting the system clock forward to simulate expiration, which can cause problems on your real machine. Anti-virus and security tools may begin showing out-of-date errors. Automatic appointment or task reminders (for example, in Outlook) could appear prematurely, and if dismissed during testing they will not appear again at their original time. It is easy to forget to reset the clock afterward, which can cause wrong dates on source-control commits or affect any software that relies on the system date. Other desktop software and development tools (even Visual Studio) can have license disruptions from seeing clock changes, because they validate with licensing servers periodically. | Virtual machines let you isolate the system clock of the host operating system from the guest. You can adjust the guest clock as needed to test expiration without affecting other software or licenses on the host. |
What virtualization software should I use?
The best choice varies from person to person. Based on our own experience, we generally recommend VMware Workstation Pro when your physical computer runs Windows or Linux, or VMware Fusion when your physical computer runs macOS.
If you would rather not commit to additional software license costs, Oracle's VirtualBox is a good, free alternative. In addition, certain versions of Windows include built-in support for Hyper-V, which you can enable as a Windows feature to create and run virtual machines without installing separate virtualization software.
Whichever tool you choose, the key benefits for license testing are the same: snapshots that return a guest to a clean state, multiple guests for different operating systems and versions on a single host, and an isolated system clock for testing time-limited licenses safely.