The installation testing process is primarily aimed at testing the correctness of software installation and configuration, and also further detection of the updates or software deletion.
In today’s online community reality, the most popular way to install the software is to use special installers (special software that, similar to a web product, should be properly tested and which allows users to install the programs on their local machines or mobile devices.
Sometimes it happens that you have no installers and so you have to perform the installation with the help of special documents that are included in the readme files, where all actions, needed for the installation, are thoroughly and gradually described.
For most distribution systems where software is opened on already functioning environment, a set of standard functions will be insufficient. A special deployment plan is created for such purpose,s and it contains not only all the steps to install a product but also roll-back to the previous modification if some type of a crash takes place.
Obviously, the installation plan should be properly tested to prevent future technical crashes during the official release of the software.
Only the approach which requires creating numerous tests, step-by-step testing of the installation stage and roll-back to the previous versions can be named as installation testing.
Main features of installer testing
What is an installer?
An installer is a special web product whose task is to define whether the software on a user’s local device should be updated or deleted.
Installation testing process is extremely important since it’s the first thing a user sees while he/she is interacting with the software.
Though the installer has a simple internal structure, it has numerous peculiarities and you should pay your attention to the following examples of them:
- Complete collaboration with OS of a local machine and technical dependence from it (register, file system, libraries, and other services);
- The libraries are compatible with various platforms and systems;
- Usability: a clear and user-friendly front-end, tooltips and pop-ups;
- The style and the design of an installation product;
- User settings must be compatible with different software modifications;
- Other features.
And now we can define the main risks that can arise if you don’t perform thorough installation testing:
- The risk to completely lose customer’s data;
- The risk that an operating system may technically crash;
- The risk that the software won’t function;
- The risk that the product will work improperly.
At the same time, the installers and other programs must meet certain functional requirements that should be also checked properly.
What should be primarily tested in installation programs?
To describe the most important group of tests, we should primarily check what is primarily needed for its correct work.
- The correctness of a list of files inside an installation document: while choosing different types of installation; absence of unused files (the project files that are not included in the installation package);
- The process of software registration in the operating system;
- The registration of extensions for data interaction;
- The rights of the user who installs the software;
- Correct work of the installation wizard;
- Simultaneous installation of several products (continuous installation);
- Installation of one software into one work directory inside one account (inside one local machine).
- The correctness of a file list and absence of unnecessary file components;
- Reverse compatibility of the created files;
- Possible interruption of the installation.
- Deleting the software when an application is launched;
- Deleting with the limited access due to the rights of an active user;
- Deleting the software by the user who has no required system rights.
Guideline how to properly and efficiently perform installation testing
If we analyze the process of software installation, then testing at this stage has the following compulsory tests:
- The process of receiving a file list is performed before the software has been installed and the file check – after it;
- Testing of the correctness of library and account registration. For instance, Windows operating system requires a tester to test a system register for the correct recording of new parts of information and the process of registering new web products;
- Right after the software installation has been completed, the correctness of the registration of extensions of new files of the installed web program inside the operating system should be tested;
- You should separately check that during its installation, the installation program must check a user account and rapidly inform about possible issues with the user rights;
- Testing for possible conflicts in system access to general file resources during the simultaneous installation of several programs.
As for the updating process, a tester should perform the following tests:
- Testing for reverse compatibility – during the updating, all previously installed files and folders must be opened properly and do their direct functions;
- If a product has been launched, a customer must receive a special notification that the product update is not possible since the program is already functioning.
When deleting the installer, you should perform the next tests:
- It’s very useful to delete the product during the installation process (you can delete either library in a system directory or registration records inside a system register);
- Testing the register deleting, links to the system libraries;
- Testing that the data are saved during their interaction with the product. The examples of such files can be service scripts, data saved from virtual games and other informational blocks created by a user;
- Testing the installer’s behavior, assuming that the product’s catalog has been closed for deleting with access rights;
- If a user is not authorized for the product’s uninstallation, he/she must receive a special notification and the deleting process must be canceled.
The peculiarities of testing an installation wizard
An installation wizard should be checked in the next way:
- First, find all available paths from the start of testing until its completion. Such a strategy helps to avoid time and money loss;
- You don’t need to write tests, linking them to GUI. All tests are created without testing a graphical interface;
- Testing the correctness of export functioning and testing the case when correct property files are passed through GUI;
- Testing a wizard for its correct response to incorrect responses, and blocks a user in such cases;
- The “Cancel” button is available and works correctly on all pages of the tested wizard;
- A tester creates general results for all possible paths of master installation (it’s good if you create several templates of such a type – for various input data). And then if there is such a possibility, a tester should manually or with the help of automated tools compare the received data with the ones that are written in the templates. And finally, we define the fields which don’t affect other parts (the functioning of such settings can be tested apart from other configurations).
Cross-platform installation testing
Such a type of testing is executed on all stages of working with the installer – installation, updating, and deletion.
A tester should focus on the following tests:
- The correctness of functioning of the installer with different versions of operating platforms, installed updates and service packs;
- Testing files, libraries, and drivers during the installation on various operating systems;
- Testing the extensions installed on these applications (so-called permissions).
To completely simplify the testing process, it’s highly recommended to create a special table where necessary test configurations will be located in the tabs, and test cases will be located in the lines (the functions of the installer that are currently being tested).
During the test execution, a tester fills the results on the crossing of the tabs and lines, and this will help him/her to visually show current testing progress and current compliance to the cross-platform requirements.
1. If according to the specifics, the software must function properly on several operating systems at the same time, a tester should check the installer for the presence of a complete set of functions (developers could miss a certain package of updates or connected an incorrect library);
2. Testing a list of installed files in the same way as testing the installer’s installation. This testing differs only in testing the installation of the system libraries and drivers, which should be taken into attention since not all drivers work in the same way on different operating platforms;
3. Testing for the possibility of the installer to manage system folders, files, and other registers;
4. If the installer’s functionality should be tested on various Unix systems, a tester should check the presence of the required permissions. In other words, it’s testing that if a file is oriented to be launched, it should be always launched and if we talk about the configuration package, a user should have a possibility to edit it and delete it if needed.
We described above all popular ways and possibilities of performing testing of installers and related components.
With the help of the above-mentioned methods and recommendations for testing, a responsible software QA engineer can execute all necessary installation testing services.