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 a very important activity in the life cycle of software because installation is the first interaction of the user with software and if the user experience is satisfactory, then the success of software and company go hand in hand.
The successful installation makes the 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 a 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 restart their system in safe mode to resolve the impact of unsuccessful installation of new software.
In the 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 the product gets into the market with its full features it doesn’t annoy the user and big chunk of people are able to install product successfully on their system.
Type of Installation
- Silent Installation: Installation that does not show messages during its installation on a console. All messages of installation are normally saved in a log file in case of a silent install.
- Attended Installation: This is the most common form of an installation in which involvement of user is necessary to give its input/selection of choice. Tasks that the 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 the software is asking for it example when we install MySQL, during its installation configuration it asks for the password
- The user also helps in mitigating certain error like memory is not enough then installer asks for a new place for its installation. If the installer is downloading its packages from the internet during its installation and LAN is disconnected then it also gives an error message “Check your internet connection”.
- Unattended installation: User involvement is not needed in the installation of the product and sometimes if user intervention is involved then the 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 an example of this.
- Headless installation/Network Installation: In this kind of installation, Monitor or console is not needed and installation is made on target computers that are connected with a machine on a network and in this user involvement is not needed at targeted computers for installation of the product on each system. This kind of installation takes place in big organizations where a product is to be installed on thousands of system altogether.
- Clean Installation: This is the installation where the old version of the product is not installed on a system and product is being installed for the first time. Installation of OS is an example of clean installation
- Automated Installation: In this administrator schedules the installation of the product on certain prerequisite conditions.
Few typical things that are taken into account before starting testing
- Supported Operating system for which installer is going to be launched.
- Distribution of software like through CD or directly from the Internet.
- The 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 workflows and this type of test cases come from requirements.
- Test cases should be written that check the old version of the product installed. If the old version is installed, then the 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 a 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 a system with the previous version of installer packages.
- Installation on a network, on multiple machines through Master machine.
- Test script should be written to check the changes in the registry.
- Test cases should be written for a 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 the 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 the installer should be done when the Firewall is on and security of the system is high.
- Network speed / LAN Connectivity should also be tested if the installer is using a net to download its package file for installation.
- Concurrent installation of multiple product test cases is also most important.
- Time is 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 a temp file.
- Test cases should be written for log files, that includes all the activities of installation.
- Un-installation of a 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 a system should show GUI that should ask for Repair/Remove option or uninstall and reinstallation option of the same product.
- Test cases should be written to test how un-installation behave when we uninstall after stopping un-installation in midway
- Testing should be done to show proper messages when a recent version is installed on a system and we are trying to install an old version of the same product.
- An installer should be tested without having system administrator privileges.
- A test case should also be written for the installation of product in a folder where write option is disabled.
- A test case should be written for successful un-installation and all files should be removed after un-installation of the product.