We often hear the word 'Configuration' when customers plan to buy a new laptop or mobile device. Before making the purchase, the end-user researches some comparable devices based on the configurations of memory, processor, camera, and Bluetooth that they favor.
The user expects all these different parts to work together seamlessly and without issue. But what is Configuration Testing? It’s a process that helps determine whether a system with these different combinations of hardware and software will work flawlessly. A configuration is a combination of different components that make a system work. The way Software or Hardware systems behave depends a lot on their configuration.
How does Configuration Testing work?
Let’s understand how devices like laptops and mobiles are made market-ready by looking at the following example:
- Devices undergo thorough testing in labs with all possible combinations before releasing to a larger crowd.
- Devices are tested by being connected to various external hardware.
- The performance is checked against different OS, browsers, network conditions, and memory usage.
The scope of this form of testing is not limited to new systems. It can also assess the feasibility of any existing migration and help with understanding all supported combinations to determine the most suitable.
At a higher level, configuration testing also aims to:
- Ensure systems works with their default configuration without any issues
- Assure the system continues to work without problems following a configuration change
- Identify and isolate issues caused by misconfigurations
- Analyze performance when a component selection changes
- Determine the best possible combination of software and hardware components for minimal impact on the final output
- Conducting feasibility studies for migration and enhancements that assist in deciding on the scope of supported configurations
Configuration Testing for all projects?
Whether to include configuration testing depends on the following categorizations:
Software/Product Configuration: Software applications or products might sometimes have features that apply to a specific market but are not needed everywhere. Some examples include the tax component for any e-commerce website or configuring different labor rates to comply with a government’s minimum wage policy. These components are usually configurable (instead of being hardcoded) to allow ease of updating. Software configuration testing involves validating by changing the configuration inputs to ensure the output matches the expected. It also involves checking behavior and compatibility by configuring different plugins and addons.
Hardware Configuration: Every built software comes with specific hardware requirements. Testing can help determine the most efficient and best possible combination of software and hardware. It can also include viable configurations for external devices like routers, modems, printers, and webcams.
Mobile Configuration: Looking at the array of portable devices available today, such as iOS, Android, and tablets, the objective remains to ensure the application works irrespective of the device’s size. Some standard checks include testing the performance by changing orientation or observing crashes due to certain failures. These come with inbuilt features where the settings option allows end-users to configure the system to their preference.
Server Configuration: In software development, no producer can afford to compromise on an application’s security. A lapse in the security protocol can incur a considerable loss in terms of cost and trust. The system’s security depends a lot on server configuration. The web or application server configuration plays a vital role in preventing any malicious attacks. This means the server needs to be configured to handle overloads, thus preventing DoS (Denial of Service) attacks.
Get Ready for Configuration Testing
Configuration testing doesn’t always require separate training and effort. For example, testing teams can include it as part of their Functional QA when testing a particular function. However, this might sometimes require the configuration to be updated, thus becoming a subset of functional testing in some cases.
Occasionally, when an application is heavily configurable and requires extensive testing, preparing oneself by being aware of few factors always helps.
- Understand the scope of the combination under test because assessing every combination is not possible. Create a configuration matrix to help with prioritizing, then test which scenario is most likely to be the recommended approach.
- Sometimes regression is the best course of action. Therefore, determine whether the test session’s purpose will be to explore altering the current configuration.
Configuration Testing; Easy or Difficult?
Finally, how complicated is it to perform configuration testing? The various categorizations set out above describe the different types needed at different levels, so the complication level will vary according to what is required to test a particular section. Sometimes, it may just be toggling a feature on and off to provide a straightforward validation, such as enabling and disabling a Captcha on a website’s input form. However, it might be necessary to understand the complex structure of multiple systems before testing. For instance, this might mean configuring a third-party payment gateway system and testing every possible error scenario to eliminate issues caused due to failures or incorrect setup.