Installation testing is performed to ensure that all necessary components are installed properly and working as per the requirements of the software, post installation. Installation process may include partial, full or upgrade install. This is very important activity in the life cycle of software because installation is the first interaction of user with software and if user experience is satisfactory, then success of software and company go hand in hand.
Successful installation makes user happy and gives him an inner appeal to refer other people to install software. But failure may jeopardize both the system and the user because sometimes this may cause instability in system and inject many files that may affect the function of many other installed software. Every user would have faced this problem once, and this would have let them to restart their system in safe mode to resolve the impact of unsuccessful installation of new software.
In success of a product, installer plays a big role and due to this company invests a lot of time and money for a stable installer and they perform testing on many system configurations on multiple platforms and they also ensure in their testing that installer would successfully install on user’s system. Even after successful testing of installation, many product based companies launch Beta testing of their product and they instigate users to download their product free of cost ,enables them to run it on their systems and ask for their feedback. Many companies also announce awards for each bug user finds in the product so that when product gets in to the market with its full features it doesn’t annoys the user and big chunk of people are able to install product successfully on their system.
Type of Installation
1- Silent Installation: Installation that does not show messages during its installation on console. All messages of installation are normally saved in a log file in case of silent install.
2- Attended Installation: This is the most common form of installation in which involvement of user is necessary to give its input/selection of choice. Tasks that user performs in an attended installation:
– Accepting end-user license agreement that is in short called EULA
– Selecting directory place to install
– Entering password if software is asking for it example when we install mysql, during its installation configuration it asks for the password
– User also helps in mitigating certain error like memory is not enough then installer asks for a new place for its installation. If installer is downloading its packages from internet during its installation and LAN is disconnected then it also gives error message “Check you internet connection “.
3- Unattended installation: User involvement is not needed in the installation of product and sometimes if user intervention is involved then whole installation is done through answer file in which user mentions all the parameters that are needed for installation. Installation of xp operation system is example of this.
4- Headless installation/Network Installation: In this kind of installation, Monitor or console is not needed and installation is made on targeted computers that are connected with a machine on network and in this user involvement is not needed at targeted computers for installation of product on each system. This kind of installation takes place in big organizations where product is to be installed on thousands of system all together.
5- Clean Installation: This is the installation where old version of product is not installed on system and product is being installed for the first time. Installation of OS is example of clean installation
6- Automated Installation : In this administrator schedules the installation of product on certain prerequisite conditions.
Few typical things that is taken in to account before starting testing
– Supported Operating system for which installer is going to be launched.
– Distribution of software like through CD or directly from Internet.
– Operating system on which testing would be done.
Typical test cases should be taken in to account for Installation testing
- Test cases should be written for all work flows and this type of test cases come from requirements.
- Test cases should be written that check the old version of product installed. If old version is installed, then test case should be written to install the product on the same path.
- Test script should be written to check the required Disk Space for installation.
- Test cases should be written for proper error message during installation.
- Test cases should be written to check the disk space before installation and just after installation of disk space.
- Test cases should be written to compare all the files and packages installed on system with the previous version of installer packages.
- Installation on network, on multiple machines through Master machine.
- Test script should be written to check the changes in registry.
- Test cases should be written for forced stop of installation.
- Default installation and custom installation path should be included in test cases for testing.
- Installation testing should also be done when some other software of same kind is running and this testing should also be done with the software that is using a lot of RAM for its operation.
- Test cases should also be written for insufficient memory, here I am talking about RAM.
- Testing should be done for insufficient disk space and a proper error message should flash for insufficient disk space or some error number should flash.
- Testing of installer should be done when Firewall is on and security of system is high.
- Network speed / LAN Connectivity should also be tested if installer is using net to download its package file for installation.
- Concurrent installation of multiple product test cases is also most important.
- Time taken for installation and extraction.
- Testing should be to see the path of extraction of software and in general extraction of software takes place in temp file.
- Test cases should be written for log files, that includes all the activities of installation.
- Uninstallation of product should be tested through add/remove programs and also from the path of the installed program, where we could find a un-installation file.
- On double clicking the setup file, installation should start.
- Update installation and patch installation should also be tested.
- Running setup of product that is pre-installed on system should show GUI that should ask for Repair/Remove option or un-install and reinstallation option of same product.
- Test cases should be written to test how uninstallation behave when we uninstall after stopping uninstallation in midway
- Testing should be done to show proper messages when recent version is installed on system and we are trying to install old version of same product.
- Installer should be tested without having system administrator privileges.
- A test case should also be written for installation of product in a folder where write option is disabled.
- A test case should be written for successful uninstallation and all files should be removed after uninstallation of the product.