Installation Testing is also a software testing to check whether the installation of the software is suitable in the desired hardware and all the modules are functional and are performing as expected after the installation of the software.
Installation testing is a major concern as some time, due to improper installation, the software may not work as desired or malfunction or even may not start also. Installation testing is done after the integration testing and after the installation of the software also.
For example, A video editing software may not provide all the necessary plugins and options which are required if not installed properly which will make the editor less professional or even the work may not be carried out due to lack of some major functionalities.
Below are the major points on why installation testing is required :
Installation testing can be done in several ways. The test cases are developed in different ways. And all the test cases are deployed into the software along with the system to record the success and failure.
The test case in real may look like :
There are different challenges in installation testing. It is seen that when the software is directly installed in a local machine, then there are no major precautions to be taken and the installation process can be cross-checked in realtime to troubleshoot directly.
However, this is not the case, that every time the software will be installed in a local system only. There are cases when the operating system is virtually installed, or the operating system or even the hardware is installed in a remote area.
Hardware is the backbone of any software. When we speak about installation, it means we are talking about saving the software inside the hardware as per the configurations and make it runnable.
Now when the software has to be installed into a local machine which can be checked directly by humans, it's easier to install in such cases.
Now consider a sensor node operating system installed inside CCTV Camera. When the operating system which is also a software, has to be changed, the installation must be carried out remotely as it's not possible to get all the nodes down on the ground.
Now, when the operating system has to be installed, the previous OS has to be removed and all these tasks are done remotely connected through a LAN.
Any software has to be installed in the Operating System. Even the operating system which is the software itself has to be run on kernel. Therefore, when an installation is done, the platform is checked in which it has to be installed.
Let us consider a scenario when the software has to be installed in a real-time operating system. In such cases, there can be different scenarios like the software must be installed in a way that the on-going process must not be hampered or stopped.
Let us consider another example, when other softwares are consuming memory dynamically and thus the spaces required for the software which needs to be installed cannot be calculated or estimated which can create a problem while installation.
In distributed systems where all the devices or systems are scattered in different areas, it is very hard to predict whether, which particular node should be updated and which should not be. Also, memory addressing is very tough in nodes inside the distributed system.
In a distributed system, all the computers or devices are interconnected through the internet in which there is a problem like, such as packet delays, data corruption, network failure, bandwidth overload, router error which may affect the installation severely.
The word size of the operating system is a major concern. The softwares are developed as per the OS's bit size. Let us say that the OS installed on a machine is 32 bit. Now when the software is of 64 bit. This is a major issue. Now to do that, a virtual machine may need to be installed.
There are problems when the same or similar software of different versions are to be installed on the same machine. When the same software is made to install on the existing software, the directory, and all the related files needs to be deleted, but due to the same name, the files are sometimes ignored.
Since the files are not updated, they may produce old results or corrupted results.
The software which is well reputed may not contain permission to be installed inside any operating system which is pirated. Most of the normal non-commercial users use an Operating System which is not licensed. Now when the user tries to install the original version of the software, it shows an installation error.
There can also be an update problem, like users using Pirated system software is less likely to update their system. Now when a newly launched software is fed to the system, due to update difference, the installation error may occur.
The software which needs to be installed may come with a default port number which is assumed that it is not used by the system. Now there may be a different existing process running in the background and maybe using a different port.
Now when the new software is installed, it tends to overlook the port which is already in use and may continue with addressing the same port which is busy. This, in fact, may halt the software and the user may not be able to use the software, being in a deadlock state of waiting for the port which will never be free.
There are different packages installed inside the operating system itself. These packages work as system libraries for different software which is used or installed on the operating system.
Now sometime some of the libraries may be missing from the operating system which may result in an installation error.
The installation may require a package to be installed from the server directly. In case, there is any network or if the server is down, the installation may be affected.
Dependencies are different packages or set of program which are required to be installed alongside the software to make the software run with more advanced or new functionalities.
The accessing speed also matters a lot while installing the software. A device will good accessing speed of its drive or storage will install the software quickly which is safe to some extent.
Installation Testing is a software testing which is carried out after the system testing and also after the installation of the software. Installation testing is necessary to check properties like-version up-gradation, normal functioning, security properties, rolling-back, etc after the installation of the software.
Installation testing provides a complete scenario of whether the software would function well as expected after the installation. It also ensures that the software is platform independent and adjusts well with the OS and the hardware it is installed on.
The testing also ensures that all the network protocols and the network configurations are working well after the installation. The testing can be carried out by professionals who have the experience of troubleshooting similar kinds of software or someone who can develop good test cases.
There are different challenges such as- configuration of the hardware, software, device's word size, port-numbers, etc which can affect the test report of the testing.
Lack of installation testing can be very damageable for the software developing company. Some effects in lack of installation testing are- the reputation of the company can be compromised, the customer satisfaction may be hampered, the security of the software may be lost, etc.