A software tester’s work life includes making sure that systems that have been designed to achieve specific results behave exactly as they should. These systems are a combination of different hardware and software which have been configured to perform the desired task. Configuration testing is performed to discover the optimum combinations of software and hardware specifications that allow the system to work without flaws.
In this article, we discuss the basics of configuration testing, while aiming to provide a complete overview for those new to this concept, as well as readers with some experience who can refresh their knowledge.
What is Configuration Testing?
Configuration testing is performed on a system that is consecutively set up using various combinations of configured hardware and software designed to deliver a specific functionality. The aim is to discover the best combination of software and hardware that suits the specifications under which the system can work without issue. The result should mean that the whole system works flawlessly across different configurations of hardware and software, including multiple operating system versions, different browsers, and various CPUs. However, configuration testing is a time-consuming technique, so the team must create a workable plan.
An Example
Suppose that your organization has developed an enterprise-level desktop application using C# language, which has a three-tier architecture based on .NET framework. The three-tier application should have client, server, and database layer, and each part of it needs to work well across the various platforms.
Assume that the client (front-end) will be able to support Windows 7, Windows 10, and Linux. The server layer will be able to work with Windows Server and Ubuntu Server. For the database layer, the system should work across various databases such as MS SQL, DB2, and MySQL.
Being a tester, you have to run multiple test cycles to verify the performance of the application by combining different platforms on each layer and knowing under which combinations the application works well. Configuration testing should not be limited to software, because to get a precise result, a combination of hardware devices need to be tested as well.
Types of Configuration Testing
Software Configuration Testing:
Testing software configurations is a time-consuming process which requires testing the application on various operating systems and browsers. It requires effort to install and uninstall the application package, again and again, to test on numerous platforms with different combinations. Once the build has been released, it is recommended that virtual machines are utilized for testing. Doing this will save time and effort because each virtual machine will simulate the actions against the specified sets of configurations to achieve our goal ultimately.
Hardware Configuration Testing:
Testing configurations of hardware has a relatively high associated cost, due to the practicalities involved with working with the various required hardware that needs to be connected to available machines. It is not an easy task to deploy each software build on a machine and connect them with a device enabling testers to execute the test cases manually. It is recommended with this kind of testing that testers utilize the types of hardware and machines that their clients or customers mainly use. Other than that, hardware configuration testing can be outsourced to those companies who have dedicated resources and provide effective results.
Configuration Testing Objectives
The main objective, as with other types of testing, is to verify that an application works as specified in the requirements. Configuration testing also determines the performance of the application under various configurations of hardware and software and is also used to identify any vulnerabilities present in the equipment. Configuration testing helps us analyze actual performance under various software and hardware resources by modifying them, which is crucial knowledge for enterprise-level applications. If the application is geographically remote with the client situated in one location and the server in another, then configuration testing can be performed to find bugs.
Conclusion
Configuration testing is essential for finding out the best-suited configuration of a system (hardware and software) for the application to work to its optimum.
In this article, we have discussed the basics of configuration testing and its importance for the enterprise application. As discussed, it is a time-consuming process which requires both cost and effort, but by devising strategies, the testing team can have positive outcomes that contribute to the success of the business.