Software Installation and Uninstallation Testing Guide

Have you performed Software Installation Testing? How was the experience? Well, Installation Testing (Implementation Testing) is quite an interesting part of the Software Testing Life Cycle.

Installation Testing is like introducing a guest to your home. The new guest should be properly introduced to all the family members in order to feel comfortable. Installation of new software is also quite like the above example.

If your installation is successful on the new system then a customer will definitely be happy but what if things are completely the opposite?

If an installation fails then our program will not work on that system not only this but can leave a user’s system badly damaged. The user might require reinstalling the full operating system.

Software Installation and Uninstallation Testing Guide (1)

In the above case will you make an impression on a user? Definitely not! Your first impression of making a loyal customer is ruined due to incomplete installation testing.

What do you need to do to make a good first impression? Test the installer appropriately with a combination of both manual and automated processes on different machines with a different configuration. The major concern with installation testing is Time! It requires a lot of time to even execute a single test case.

If you are going to test a big application installer then think about the time required to perform so many test cases on different configurations.

We will see different methods to perform manual installer testing along with some basic guidelines for automating the installation process.

To start Installation Testing, first decide on how many different system configurations you want to test the installation.

Prepare one basic hard disk drive. Format this HDD with the most common or default file system and install the most common operating system (Windows) on this HDD. Install some basic required components on this HDD.

Each time you create images of this base HDD you can create other configurations on this base drive. Make one set of each configuration like Operating system and file format to be used for further testing.

How can we use Automation in this process? Well, make some systems dedicated for creating basic images (use software’s like Norton Ghost for creating exact images of the operating system quickly) of the base configuration. This will save you tremendous time in each test case.

For example, if the time to install one OS with a basic configuration is said to be 1 hour, then for each test case on the fresh OS you will require 1+ hour. But creating an image of the OS will hardly require 5 to 10 minutes and you will save approximately 40 to 50 minutes!

You can use one operating system with multiple attempts of installation of the installer. Each time uninstall the application and prepare the base state for the next test case. Make sure here that your uninstallation program should be tested before and should be working fine.

Installation Testing Tips with some broad Test Cases:

#1) Use flow diagrams to perform installation testing. Flow diagrams simplify our task.

See example flow diagram for the basic installation testing test case.

Installation Testing Flow chart

Add a few more test cases to this basic flowchart such as if our application is not the first release then try to add different logical installation paths.

#2) If you have previously installed a compact basic version of application then in the next test case Install the full application version on the same path as used for the compact version.

#3) If you are using flow diagram to test different files to be written on disk while installation then use the same flow diagram in reverse order to test uninstallation of all the installed files on disk.

#4) Use flow diagrams to automate the testing efforts. It will be very easy to convert diagrams into automated scripts.

#5) Test the installer scripts used to check the required disk space. If the installer is prompting the required disk space to be 1MB, then make sure that exactly 1MB is used or whether more disk space is utilized during installation. If yes, flag this as an error.

#6) Test disk space requirements in different file system formats. For example, FAT16 will require more space than efficient NTFS or FAT32 file systems.

#7) If possible set up a dedicated system for creating disk images only. As mentioned above, this will save you time in testing.

#8 ) Use a distributed testing environment in order to carry out installation testing. The distributed environment simply saves you time and you can effectively manage all the different test cases from a single machine.

A good approach for this is to create a master machine, which will drive different slave machines on the network. You can start installation simultaneously on a different machine from the master system.

#9) Try to automate the routine to test the number of files to be written to the disk. You can maintain this file list to be written on the disk in an excel sheet and can give this list as an input to an automated script that will check each and every path to verify the correct installation.

#10) Use software’s available freely in the market to verify registry changes on successful installation. Verify the registry changes with your expected change list after installation.

#11) Forcefully break the installation process in between. See the behavior of the system and whether the system recovers to its original state without any issues. You can test this “break of installation” on every installation step.

#12) Disk space checking: This is a crucial check in the installation-testing scenario. You can choose between different manual and automated methods to do this checking.

Using manual methods, you can check the free disk space available on the drive before installation and disk space reported by installer script to check whether the installer is calculating and reporting disk space accurately. Check the disk space after the installation to verify accurate usage of installation disk space.

Run various combinations of disk space availability using tools to automatically make disk space full during installation. Check system behavior in low disk space conditions during installation.

#13) As you check installation you can test for uninstallation also. Before each new iteration of installation, make sure that all the files written to disk are removed after the uninstallation.

Sometimes the uninstallation routine removes files from only the last upgraded installation, keeping the old version files untouched. Also, check for the rebooting option after uninstalling manually and forcefully do not reboot.

I have addressed many areas of the Manual as well as the Automated Installation Testing procedure.

Still, there are many areas where you need to focus on depending on the complexity of your software under installation. These unaddressed important tasks include installation over the network, online installation, patch installation, Database checking on Installation, Shared DLL installation and uninstallation, etc.

Hopefully this tutorial will be a basic guideline for those having trouble starting with Software Installation Testing both manually or in automation.

Recommended Reading

84 thoughts on “Software Installation and Uninstallation Testing Guide”

  1. hi i dont have much computer knowledge, i did not do
    any computer course, but i want to do qa testing computer course , can you give me a advice or suggestions. please give me your valuable advice through my mail id. thanking you.

    Reply
  2. HI
    #22 sravanthi

    Recovery testing is the activity of testing how well an application is able to recover from crashes, hardware failures and other similar problems.

    Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed.
    Examples of recovery testing:

    1. While an application is running, suddenly restart the computer, and afterwards check the validness of the application’s data integrity.
    2. While an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the application’s ability to continue receiving data from the point at which the network connection disappeared.

    Thanks and Regards
    Santosh Patil
    Ph-91-9845057043
    mail-ispatil@gmail.com

    Reply
  3. hi friends in this type of websites are useful. i am currently working Software Tester. Lots people sharing their knowledge.

    Reply
  4. Hi Vijay,
    Good article about Installation testing.

    In software installation test, we are performing;

    # Compact installation test
    # Complete installation test
    # Re-installation test
    # Installation environment test
    # Installation hardware test
    # Un-installation test
    # Test for version upgrade with existing product
    # Registry and cookies on installation
    # Temp and back-up on installation

    I think it’ll be useful for u.

    Reply
  5. Hey my dear blind bug,

    Lot of information and useful articles are there in this site, but I’m so sad about your blindness. :(

    I think your comment be the crap of this site.

    Reply
  6. This site has altogether the information in 1place which otherwise had to be searched from many places. this is really useful…

    Reply
  7. Need common Test cases (list of testcases) for Installation and Uninstallation.

    Verifying/testing security ?
    Distributed control systems ?

    Thanks in advance.

    Reply
  8. Hi..I have tried written Some testcases by reading the above information (which used for me to write even more TC’s)…
    Here comes below…also please share if you think there are more TC’s can be written…

    please send to arjunmarati@gmail.com

    Sl.No Test Case Description
    1 “Log on as an Operator.
    Pre-req: Installation should be successful and this is tested when logged into OP. WS straightaway)”
    2 Logging out of the maxSTATION
    3 This test case shall test the capability of the Windows7 Operators workstation application to install and execute on Windows 7 64 bit OS Professional and higher.
    4 This test case shall test the re-installation capability; If you have previously installed basic version of application then in next test case install the full application version (choosing different installation options for ex: typical, custom settings etc..) on the same path.
    This also verifies that configuration and .ini files are updated only after confirmation during re-installation, otherwise those are continued with old saved values.
    5 This test case shall test the un-installation capability.This also verifies that the configuration and .ini files are not deleted.
    6 Make sure that all the files written to disk are removed after un-installation. Sometimes un-installation routine removes files from only last upgraded installation keeping the old version files untouched.
    7 Attempting the installation without having pre-requisites on the system (you try to install the application without pre-requisites installed and see the behavior).
    8 Try to install the application in different paths on your machine (with the choice of customer)
    9 Try installations with Administrator rights and without Administrator rights as well (Some of the installations may need administrator (user) permissions).
    10 After completion of the installation check all the components like, services, event log entries, registry entries etc have been installed properly (Covered in TC_03, but explicitly we can have TC for this)
    11 Recovery Testing during Installation.
    Forced failure of the software installation in different ways (like suddenly restart the Target PC, unplug the network cable etc., ) to verify that recovery is properly performed.
    12 Test the installer appropriately on different machines with different configuration.
    13 Test/Verify the Operator Station Installation behavior when multiple attempts of installation of installer CD/DVD is triggered.
    14 Test the installer scripts used for checking the required disk space. If installer is prompting required disk space 200MB, then make sure exactly 200MB is used or whether more disk space utilized during installation. If yes flag this as error.
    15 Run various combination of disk space availability by using some tools to automatically making disk space full while installation.
    16 Check system behavior on low disk space conditions while installation.
    17 Verify the registry changes with expected change list after installation.
    18 Database checking on or after Installation ??
    19 Provision to collect the installation test result in single file ? (especially in case of installation failure)
    20 Distributed Installation Testing (in VMware)
    Use one master machine which can simultaneously trigger multiple installations (taking installer CD or single setup.exe as source for both the slaves/target PC’s) on different slave machines on network.
    21 Run/Install in VM machine (on multiple operating systems) at once on a single physical computer and switch between them.
    22 This test case shall verify that Windows 7 64bit operator’s workstation performance will meet or exceed the speed of the existing operator functions running under Windows XP.
    (Primarily it should support English Language).
    23 Able to start Operator’s Workstation services/applications when switched from Engineer Workstation to Operator Workstation.
    24 Any operator workstation with maxSTATION V 3.x, 4.X or 6.x can interoperate / Co exists with each other configured per our system specs on the same network. Provide features such as Network Printing.
    25 Support for New feature in current installed test PC.
    26 The application shall maintain a log to maintain a list of tasks run and their status.

    /Arjun

    Reply
  9. Hi All,
    Could somebody please help me like,, I want to know which Automation Tool aptly used to automate the Build Installation..

    Reply
  10. i want to know installation testing perform before system testing or after system testing

    module testing->integration testing->installation->system

    Reply
  11. I need testcases for mobile application behavior.The Modules are SD card and Dual sim. can any one help me pls?. its urgent requirement

    Reply
  12. Very nice article.

    Can someone explain roles and responsibilities of a tester who engaged in doing installation testing ?

    thanks,

    Reply
  13. Thanks Vijay for this article.. When i try to do installation testing i found something like, the uninstallation files are getting saved in C drive even after selecting another folder during installation… Can it be a bug ?

    Reply

Leave a Comment