Testing your licensed application: Advantages of Virtual Machine technology

By Mike Wozniak | General Licensing Tips

Mar 07
testing your software

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:

  1. 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.
  2. 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!
  3. 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.
  4. 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.
    1. Is all application data preserved after the upgrade?
    2. 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:

  • Anti-virus and security tools may begin showing errors about being out-of-date.
  • Automatic appointment/task reminders could be shown prematurely (in applications such as Outlook). If, for example, these are dismissed during testing, the reminders will not be shown again when originally intended because they were already dismissed.
  • It is easy to forget to reset your clock back to the correct date after testing.  When committing/checking-in source code changes into a repository, the dates on the commits could potentially be wrong. Similar issues could occur with any software that uses the system date.
  • Your other desktop software and development tools (even Visual Studio) can have license disruptions from seeing clock changes since they are designed to validate with licensing servers periodically.
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.

If, however, you are reluctant to commit to additional software license costs, Oracle’s VirtualBox is a good, free alternative.  Additionally, certain versions of Windows include support for Hyper-V.

Summary

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.

For specific testing tips related to the SoftwareKey System, view our testing manual topics for Instant Protection PLUS 3 or Protection PLUS 5 SDK.

See also:   Virtualization 101

Follow

About the Author

Mike Wozniak is one of the co-founders of SoftwareKey.com and responsible for marketing, content and product strategy. When he isn't plotting new ways to help customers solve licensing and business automation challenges, he likes to travel and entertain guests who come to visit the Orlando area. He also writes most of the licensing tips here.