Installation Testing

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.

There are cases, in which problem in installation may cause severe damage to human life even. There are examples of installation, like the operating system used in Aircraft, etc.

Below are the major points on why installation testing is required :

  • To make sure that the software would perform well as desired after the installation is done.
  • To assure that none of the modules or functionalities malfunction after the installation of the software.
  • To make sure that other software already installed in the system should not be hampered by the installation of the new software of the system.
  • To make sure the security properties of the software are not lost after the installation.
  • To make sure that there is the availability of version upgradation is there after the software is installed.
  • To make sure that the software does not consume the hardware resources abnormally high making the system slower, after the installation.
  • To check whether the software provides options for optional plug-ins during the install time.
  • To check whether there is any leakage of a process which consumes data or resources such as CPU cycle or memory in the background.
  • To assure that the software can be run without the administrator privileges also.
  • To check whether the software can be used as a flash file without being installed in the system.
  • To make sure that when installing in a virtual operating system, it performs exactly the same as if it was installed in the original operating system.
  • To check whether the software is able to create its own directory in the primary drive of the system, if not customized by the user.
  • To check whether the user is allowed to see the progress of the installation is visible through the GUI.
  • To check whether the cancellation of the installation at some point puts the operating system into a halt or deadlock. As we know, that process should roll back and the files written into the memory due to the installation should be automatically removed once the installation is canceled.
  • To assure that the software can be installed from different types of storage media such as the CD, DVD, USB, etc. The installation time should not differ that much with the difference in the accessing speeds.
  • The installer should have a specified option which should uninstall the software the same way it was installed.
  • After the multiple copies of the software installed, the software should not show any installation error in the system.
  • To make sure that after an application error or a load on the software should not bring the entire system to halt instead, there should be an escape button or any alter option integrated inside the software integrated.
  • To make sure that not only the software but the packages and libraries should also work after the installation.

Load Testing

Performing Installation Testing

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.

Some examples of Test Scenarios and Test Cases:

Test Case for installing the software:
  • Connect the storage device to the system and browse it.
  • View the properties of the system and check the word length(bit size) and also check the word length of the software by clicking into its properties.
  • Copy the software and its related folder into the system's primary drive e.g C-Drive in Windows)
  • Go to the software and check the number of installation option available. Generally, there should be two options- Run and Run with administrator's privileges.
  • Click into the software and the installation page should pop up.
  • Click into the install.
  • Now we may be asked to customize our installation path, browsing our system or in default, it should install and create its operating folder in the primary drive in 95 % of the cases.
  • The next page should display the right and privileges we make to give.
  • Then the installation should start after confirming the Terms and Policies of the software vendor.
  • Now the installation should start immediately without taking much time and the progress bar should be displayed in case the GUI is standardized.
  • As the installation is complete, it must now ask unnecessary credentials or command and should silently end the process creating an easy access way to open the software. (e.g desktop icon in windows)
Now during the test case, the system was maintained in a good performance state and the power was consistent and the memory and the disk space was available more than required.

The test case in real may look like :

installating-testing-TC01

The test case we have seen above is an example of a simple test case. Let us see a different type of test case.
Test case for uninstalling the software:
testcase-uninstall

There can be different test cases as per different requirements and test scenarios.

Challenges in installation Testing

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:

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.

The problem is that the data are transferred through a LAN and therefore the installation data may be corrupted due to interference also the delay of packets in the network layer may be increased so much due to traffic that the installation is barred and may bring the system in the non-booted state.
Software:

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.

Distributed Systems:

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.

Device's/OS's Word Size:

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.

Overwriting the same software:

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.

Pirated Operating System:

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.

Different port number:

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.

Operating system package:

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.

Server 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:

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.

Device Accessing Speed:

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.

All Pairs Testing

Summary

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.

Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions