Software Installation/Uninstallation Testing

Have you performed software installation testing? How was the experience? Well, Installation testing (Implementation Testing) is quite interesting part of software testing life cycle.

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

If your installation is successful on the new system then customer will be definitely happy but what if things are completely opposite. If installation fails then our program will not work on that system not only this but can leave user’s system badly damaged. User might require to reinstall the full operating system.

In above case will you make any impression on user? Definitely not! Your first impression to make a loyal customer is ruined due to incomplete installation testing. What you need to do for a good first impression? Test the installer appropriately with combination of both manual and automated processes on different machines with different configuration. Major concerned of installation testing is Time! It requires lot of time to even execute a single test case. If you are going to test a big application installer then think about time required to perform such a many test cases on different configurations.

We will see different methods to perform manual installer testing and some basic guideline 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 most common or default file system, install most common operating system (Windows) on this HDD. Install some basic required components on this HDD. Each time create images of this base HDD and 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 we can 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 operating system quickly) of base configuration. This will save your tremendous time in each test case. For example if time to install one OS with basic configuration is say 1 hour then for each test case on fresh OS you will require 1+ hour. But creating image of 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 installer. Each time uninstalling the application and preparing the base state for next test case. Be careful 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 basic installation testing test case. Installation testing

Add some more test cases on this basic flow chart Such as if our application is not the first release then try to add different logical installation paths.

2) If you have previously installed compact basic version of application then in next test case install the full application version on the same path as used for 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 for checking the required disk space. If installer is prompting required disk space 1MB, then make sure exactly 1MB is used or whether more disk space utilized during installation. If yes flag this as error.

6) Test disk space requirement on different file system format. Like FAT16 will require more space than efficient NTFS or FAT32 file systems.

7) If possible set a dedicated system for only creating disk images. As said above this will save your testing time.

------------

8 ) Use distributed testing environment in order to carry out installation testing. Distributed environment simply save your time and you can effectively manage all the different test cases from a single machine. The good approach for this is to create a master machine, which will drive different slave machines on network. You can start installation simultaneously on different machine from the master system.

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

10) Use software’s available freely in 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 system and whether 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 the crucial checking in the installation-testing scenario. You can choose different manual and automated methods to do this checking. In manual methods you can check free disk space available on drive before installation and disk space reported by installer script to check whether 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 combination of disk space availability by using some tools to automatically making disk space full while installation. Check system behavior on low disk space conditions while 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 uninstallation. Some times uninstallation routine removes files from only last upgraded installation keeping the old version files untouched. Also check for rebooting option after uninstallation manually and forcefully not to reboot.

I have addressed many areas of manual as well as automated installation testing procedure. Still there are many areas you need to focus on depending on the complexity of your software under installation. These not addressed important tasks includes installation over the network, online installation, patch installation, Database checking on Installation, Shared DLL installation and uninstallation etc.

Hope this article will be a basic guideline to those having trouble to start with software installation testing both manually or in automation.

If you like this article you would also like to subscribe to our email newsletter.



The Best Software Testing Training You'll Ever Get!

software testing QA training

83 comments ↓

#1 Sameer S. Mandve on 08.31.07 at 3:21 am

Hello all,
Please do something like above Article on topic of TEST CASES also……

#2 Ajay on 08.31.07 at 4:50 am

This is one of the best articles I have ever read. Well documented, to the point, explained in simple terms.

Good work.

I would like to ask one question here:
What do you mean by “distributed testing environment” ?
Could you please explain the above term?

Thanks in advance. Nice article.

#3 Vijay on 09.03.07 at 8:20 am

@Sameer – You can refer article on test cases, How to write effective test cases here –
http://www.softwaretestinghelp.com/how-to-write-effective-test-cases-test-cases-procedures-and-definitions/

@ Ajay – Distributed testing environment generally includes more than one machine for testing. These different machines communicate with each other to perform specific task. Here we can take example of Installation testing, In installation testing you can use one master machine which can simultaneously trigger multiple installations on different slave machines on network and can collect the installation test result in single file.

#4 zhao on 09.17.07 at 5:55 am

Hello, I want to know more about installation testing.
Will you please tell me where to get more details about it?
Thank you in advance.

#5 Shrweta on 09.24.07 at 9:03 am

Very good information about installation/uninstallation of software testing. Defintley if increases my knowledge about this kind of testing. I will be using flowdiagram for testing in future . Thanks

#6 Mohd.fasiuddin on 09.27.07 at 9:15 am

Hello to all,
I want Know the difference between release version and build version.

#7 Shashi on 10.18.07 at 6:34 pm

hi, all ,
its very nice article, having lot of knowledge. i get lots from it .
Thanks!
:)

#8 Raj on 10.25.07 at 7:00 am

good article

#9 vamsi on 11.27.07 at 11:09 am

i have a doubt i am starting my career as a tester so please help me by answering simple questions
Is sql server necessary to learn?
Should we have knowledge on unix?
Is it necessary to have knowledge on oracle?
we have to gain deep knowledge on these platforms or is it sufficient to have littile knowledge?
if yes please suggest me how to get knowledge on those databases?
I cannot effort money for classes so suggest me any book or weblink to learn them.

please mail me to

vamsi.kalepu@gmail.com

#10 satish N. on 12.19.07 at 4:55 am

hi,

This is one of the best articles I have ever read.
Well documented, to the point, explained in simple terms.Its very nice article, having lot of knowledge.
i get lots from it.
Currently i am working as s/w engineer for past 7yrs in IT. But i want to switch to s/w Testing as career seriously. So just tell me whether i am on right track because company may ask for exp in testing and i have theoritical knoledege and some practicle exp while doing course. I am individually developed s/w for our company and do all the required debugging/testing/releasing of s/w own.
i am currenlty in Mumbai
email id : sansoft123@rediffmail.com

#11 Suhas M on 01.02.08 at 3:08 pm

Ajay,
A more better example for “distributed testing environment” can be a mailing system. A truly distributed system. It uses multiple Routers, databases, frontend interaction application. Just think of a mail sent by you and recieved by your friend, where all it will pass through and how it will reach the destination.

Mohd.fasiuddin,
Release: Is done once you reach the milestone, release can be an interim release, internal release, release to a market, release to the client for beta testing etc.
Ex: Mysql 5.0.45
While developing a software we have some short term milestones, or say once developers develops a software you get to test it, (build1) he fixes the bugs and give it for regression (build 2), again some bugs are fixed (build3) and so on. This build might not be released, but will definately have a numbers to keep track of. For more clear understanding, google “Software Configuration Management”, as many of us might not be aware its also very important profile in S/W industry just like, dev, test, s/s admin etc..

Regards, Suhas.

#12 Ranjith on 01.04.08 at 9:20 am

hi..
i read this one its good i need more information

#13 Software Testing Help: Best software testing articles of 2007 on 01.07.08 at 12:10 pm

[…] Software Installation/Uninstallation Testing […]

#14 Mahendra on 01.16.08 at 5:08 am

Very good article. Also please give me more information on database testing and also if possible please provide me some links/books where I can get more knowledge on database testings and database concepts.

#15 Vinay on 01.23.08 at 1:26 pm

hi,

This is one of the best articles I have ever read.

#16 meenakshi on 01.29.08 at 5:26 am

one more point i want to add here is while installing the software it has to show the default path for example “c:\documents\settings………..

#17 sireesha on 01.31.08 at 6:53 am

is there a compulsion tat testing supports only some of the operating systems ,if so what are they plz help me out?

#18 sireesha on 01.31.08 at 6:55 am

an one more thing it need to be installed only were the programming files are there or can i allocate some other drive for it?if so.how i need to do?

#19 Gayathri.Palani on 02.29.08 at 10:25 am

It’s a Very good article which covers different methods of Instalaltion Testing in brief.It’s very informative.

Thanks for very nice article.
Gayathri.

#20 swati on 03.12.08 at 7:39 am

Hi friends,

i need material on Automation framework plz do send a copy of doc or link to me

regds,
swati
swty79@rediffmail.com

#21 Gayathri.Palani on 03.12.08 at 8:18 am

Hi Swati,

Automation framework is tool box for automation engineer who is creating automation suite. Anything that helps in the mission – is part of framework. It could be set of documents (guidelines) or Set of code components (vbs file or dll file etc) or a full-fledged software like an automation tool.

Some links for framework …

http://www.sqa-test.com/w_paper1.html
http://safsdev.sourceforge.net/FRAMESDataDrivenTestAutomationFrameworks.htm
http://www.qacity.com/NR/QACity/Documents/Automation_Framework.PDF
http://www.softwaredioxide.com/testing2004/papers/pankaj_cognizant.pdf
http://www.cbueche.de/FRM_DOC/webhelp_eng/Basic_Concepts.htm

Gayathri

#22 sravanthi on 03.13.08 at 5:47 am

hi
this is very good.
i will ask one question
explain the recovery testing with example

#23 aaaaa on 03.27.08 at 9:10 am

ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp

#24 lucky on 04.14.08 at 2:20 pm

nice explanation …

#25 VijayD on 04.29.08 at 5:06 am

You can use Virtual Machines (VM images) for this type of testing. Virtual PC lets you create separate virtual machines on your Windows desktop, each of which virtualizes the hardware of a complete physical computer. Use virtual machines to run operating systems such as MS-DOS, Windows, and OS/2. You can run multiple operating systems at once on a single physical computer and switch between them as easily as switching applications—instantly, with a mouse click. Virtual PC is perfect for any scenario in which you need to support multiple operating systems, whether you use it for tech support, legacy application support, training, or just for consolidating physical computers.

#26 VijayD on 04.29.08 at 5:13 am

And also here we can cover more scenarios like,
1) Attempting the installation without having pre-requisites on the system
eg, Your application needs IIS to be installed on your machine, but you try to install the application without IIS installed and see the behavior.
2) Try to install the application in diffrent paths on your machine (with the choice of customer)
Eg, Install on C:\program files would be the default one, now try with different things like d:\Test or F:\Test
3) Some of the installations may need administator (user) permissions, try with this one as well, I mean try with Administrator rights and without Administrator rights as well.
4) After completion of the installation check all the componets like, services, event log entries, registry entries etc have been installed properly.

#27 Anu on 04.29.08 at 11:42 am

I read most of the articles in my free time …really it is worth reading …. cleared lots of testing concepts,covered every area of software testing …very useful for my testing career :)
Thanks

#28 Vishal Chhaperia on 04.29.08 at 12:22 pm

Hi All,

I have made many new friends from the field of testing with the help of this site.

All the thanks to Vijay

Good Work!
Keep going

Cheers
Vishal Chhaperia
Call: +91-9830704327
Mail: bishalchaperia@gmail.com

#29 karim on 05.27.08 at 10:10 am

Excellent! Good Info about Installation Testing

#30 Pramod Bellad on 06.18.08 at 11:44 am

NICE aRTICLE

#31 Sudhu on 07.14.08 at 1:11 am

I want to learn testing and was confused how to start and from where. but this article really helped me in introducing me to the complete out scketch of testing. Really appreciatable. Thank u so much.

#32 Sneha Gupta on 07.29.08 at 7:42 am

Hi,
its realy a nice document but test cases are missing as well.

#33 George on 08.11.08 at 10:11 am

Please share some thoughts regarding the iPhone native application testing in detail, expecting a research and findings from vijay or any domin experienced hands and please include Mac application testing tips.

#34 simrat on 09.08.08 at 6:21 am

Awesome information and truly helpful

#35 harishkumar on 09.22.08 at 5:08 am

Hi,
what qualificaton is needed in testing field . its realy a nice document but test cases test reports & bug reports are missing as well.

mail me : harishkumarmbl@gmail.com

#36 Chetan H. Kadulkar on 09.25.08 at 10:08 am

good one

#37 anil on 09.25.08 at 11:36 am

hi suggest me which automation tools i should learn , right now i am working as manual tester

#38 Girija Prasad Mohanty on 10.01.08 at 6:48 am

A Very Good Info..

#39 Sudha on 11.30.08 at 7:03 am

Dear Vijay,

Could u please tellme , What is Patch Installation, how to test installation useing patch.

reg,
sudha

#40 sheetal on 12.09.08 at 2:56 am

I-PAD Technologies is a best training for Testing tools.

#41 sudha on 12.09.08 at 5:13 am

Dear anybody,

Could anybody please tellme , What is Patch Installation, how to test installation useing patch.

reg,
sudha

#42 naveen pawar on 12.16.08 at 6:37 am

nice one!!

#43 Pankaj Jadhav on 12.22.08 at 7:07 am

Thanks!!!! really usefull.

#44 Madhav on 01.07.09 at 12:38 pm

Thanks dude nice info. Keep posting !!

#45 sachin on 01.29.09 at 1:11 pm

Very nice article…as i have to prepare a document on this…so very helpful…

#46 Rahul on 01.29.09 at 2:20 pm

@sudha
after product is released in market and if the piece of s/w is having somr BUG/SOME minor enhancement then that could be done using PATCH..
u could think service pack 2 of windows as a patch(not 100%)

#47 Veni on 05.13.09 at 8:07 pm

Its great article. Thanks for this..

#48 jyotsna on 05.28.09 at 3:43 pm

Hi vijay,
I m new to this site and i found it full of knowledge, up 2 mark description. It helps me a lot in my testing carrier.

Thanks and Keep it up

#49 Arman on 06.18.09 at 9:52 am

Good One..!!
Excellent..!!

#50 gion on 07.02.09 at 9:36 am

great! ü

#51 Arijit Dhar on 07.08.09 at 5:59 am

Hi Vijay,

This is really a nice article. I am working in Software Install Test team for last three years. The article you have provided has also given me some ideas of exploring new test areas. Thanks a lot. Keep up the good work.

#52 RM on 09.23.09 at 12:30 pm

Very good article!! Cheers

#53 Sunil Garg on 11.25.09 at 5:14 pm

its very helpful article

#54 Sunil Garg on 11.25.09 at 5:16 pm

Hi everyone can any one tell me how we can do database testing

#55 Suresh on 01.20.10 at 6:18 am

http://sites.google.com/site/sqltestingsite/home/databasetesting

#56 satya on 01.29.10 at 7:27 pm

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.

#57 Santosh Patil on 02.22.10 at 10:41 am

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

#58 sree on 03.08.10 at 10:51 pm

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

#59 Rekha on 03.12.10 at 7:02 am

Hi

Thanks to the author as this article is very helpful.
Great work :)

#60 Ravibabu Polagani on 03.23.10 at 4:38 am

I need some testcases for JDBC wrapper driver with Junit test suite. plz help me …………….

#61 Ravibabu Polagani on 03.23.10 at 4:40 am

I wnat some sample testcases for JDBC Wrapper Driver.Please help me …It’s the urgent task for me……….please

This is my email id ravi.polagani@gmail.com

#62 Ravibabu Polagani on 03.23.10 at 4:50 am

i need some test scenarios about DDL,DML,TCL,Joins,Views……plz help me

This is my email id ravi.polagani@gmail.com

#63 Sanjit Patnaik on 04.07.10 at 3:42 am

Excellent work on “Installation Testing”. Thanks .

#64 Srikanth Sita on 04.12.10 at 9:00 am

Hi,
this article provides useful information regarding installation and un-installation testing.

Thanks

#65 Roshin on 04.23.10 at 11:44 am

Good One!!!!

#66 abhilash on 04.23.10 at 11:45 am

excellent!!

#67 ROHIT DESHPANDE on 05.22.10 at 5:17 pm

hi, all ,
its very nice article, having lot of knowledge. i get lots from it .
Thanks!

#68 Mayasen on 05.31.10 at 9:13 am

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.

#69 Internet Pro on 06.03.10 at 1:35 pm

this cRaPPy site haZ 2 many ADz and jUnK on the pAGe

#70 Mayasen on 06.04.10 at 3:36 am

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.

#71 nikhil nikhil on 10.04.10 at 6:33 am

could you please let me know how to create an image of OS.

Thanks in advane

#72 Sandeep on 10.15.10 at 9:55 pm

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

#73 Arjun on 11.15.10 at 5:41 pm

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

Verifying/testing security ?
Distributed control systems ?

Thanks in advance.

#74 Arjun on 11.15.10 at 10:55 pm

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

#75 japal singh on 12.01.10 at 1:11 pm

relay full of knowledgeable …..
thanks

#76 gurdeep on 12.01.10 at 1:16 pm

exlnt

#77 sanjay on 08.16.11 at 5:21 am

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

#78 Jalaja Rao on 09.16.11 at 4:29 pm

What is ISO disk image?

#79 sneha on 02.03.12 at 5:10 am

really this article is very useful for ………..i get cleared about the installation testing after reading it..thanks

#80 ankur on 03.11.12 at 8:53 am

i want to know installation testing perform before system testing or after system testing

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

#81 monika on 04.11.13 at 7:36 am

good one…….really it is useful

#82 Beginner’s Guide to Mobile Application Testing — Software Testing Help on 03.03.14 at 8:45 am

[…] Installation tests- Validation of the application by installing /uninstalling it on the devices. […]

#83 karthik on 03.24.14 at 10:49 am

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

Leave a Comment