What is Configuration Testing? Example Test Cases


Configuration Testing

Configuration testing is a software testing approach in which a software application is tested with a variety of software and hardware combinations in order to analyze functional requirements and determine the best configurations in which the software application operates without errors or flaws.

Configuration testing, as previously stated, is a type of software testing in which the application under test must be evaluated using different combinations of software and hardware.

Example of Configuration Testing

Let's look at an example of a desktop application to see how this works −

In general, desktop apps are either two-tier or three-tier. Here, we'll look at a three-tier desktop application that was built using Asp.Net and consists of a Client, Business Logic Server, and Database Server, each of which supports the platforms listed below.

Windows XP, Windows 7, Windows 8, and other client platforms

Windows Server 2008 R2, Windows Server 2008 R2, and Windows Server 2012R2 are the server platforms.

SQL Server 2008, SQL Server 2008R2, SQL Server 2012, and other databases

To verify that the application is operating properly and does not fail, a tester must test the Combination of Client, Server, and Database using combinations of the above-mentioned platforms and database versions.

Configuration testing is not limited to software but also applies to hardware, which is why it is also known as Hardware configuration testing, in which we test various hardware devices such as printers, scanners, webcams, and other devices that enable the application under test.

What is the purpose of this Testing?

As previously said, this testing is a technique for evaluating the performance of a program, system, or application while taking into account various system settings.

This testing is done to discover the best configurations for a system or program to run smoothly without any bugs, problems, or performance faults. With the aid of this testing, the most effective configuration that will offer the needed performance characteristics is identified.

The system's compatibility with other software or equipment included in the SRS is the second primary reason for this testing (software requirement specification).

A Case in Point

Consider the case where your company has created a desktop application in C# that is based on the.NET framework.

And this app is built on a three-tier architecture, with the front end (client), application layer (server), and database layer. Accordingly, each layer will support certain platforms.

Assume that each layer supports the platforms listed below −

Client - Microsoft Windows 10, Windows 7, Windows XP, and Linux.

Ubuntu Server, Windows Server 2016, and Novell Open Enterprise Server are examples of servers.

Microsoft SQL Server, IBM DB2, and MySQL are examples of databases.

Now, as a software tester, you'll have to test the program on each of the numerous combinations of the aforesaid client, server, and database platforms to guarantee that it functions properly in all of them.

For example, you will test how the application works with Windows 10 OS, Windows Server 2016 database, and MySQL database, and then you will test how the program works with Windows 10 OS, Windows Server 2016 database, and IBM DB2 database.

And so on until you've tried every imaginable combination. Our testing will not be limited to software; it will also include hardware, in which we will have to examine each of the numerous hardware device combinations. As a result, this testing is also referred to as Hardware Configuration Testing.

Preparation for the Configuration Test

There are several prerequisites to this testing that must be met before the configuration tests can be run.

The following are the requirements −

#1) Creating the Matrix of Coverage

Due to a large number of alternative hardware and software combinations, testing each of them effectively becomes highly time intensive and practically impossible.

For example, in the above case, there will be a total of 3*3*3 or 27 software configurations. Let's say we have five distinct hard drives and six different memory capacities. The count will then increase to 27*5*9, or 810 configurations. If we add more elements to the picture, this will continue to rise. As a result, it's critical to plan ahead for the software testing effort and determine which platforms will be supported.

Then we'll need to create a coverage matrix to store all of the different hardware and software setups. BCM is another name for this coverage matrix (Basic Configuration Matrix).

#2) Setting Priorities for Configurations

The next step is to prioritize the configurations using the configuration matrix.

This phase is necessary since testing the entire vast variety of combinations is impossible. As a result, the most essential settings have been identified based on customer input, and these will be fully tested first.

After we've completed the first two stages, we can begin testing the various configurations in order of importance.

Microsoft VSTS (Visual Studio Team Services) is a configuration testing tool.

VSTS (Microsoft Visual Studio Team Services) is a solution that substantially aids in the testing of your program in multiple configurations according to your test strategy.

You should have a test plan in place to help you select which tests to run and on which settings. You must verify that the environment is set up correctly for the settings you want. You must test the matrix of combinations once you get it.

To do this testing, follow the procedures below −

  • Create the variables and configure the configurations. One of the components in your setup is a variable. For example, the variable ‘Browser' might have numerous values such as Chrome, Firefox, IE10, and so on.

  • Assign configurations to test plans, test suites, or specific test cases.

  • Run the tests on each setup separately.

  • Keep a record of the test findings for each setup.

Configuration Testing Prerequisites

Before we begin the configuration test for any project, there are a few prerequisites that must be met.

  • The creation of a matrix including numerous combinations of software and hardware setups.

  • Prioritizing the setups since testing all of them is tough.

  • Every configuration is tested depending on its priority.

Configuration Testing Objectives

  • The goal of configuration testing is to make sure that everything is working properly.

  • Validating the application to see whether it meets the requirements for configurability

  • Manually producing failures to aid in the detection of problems that are not readily apparent during testing (Ex: changing the regional settings of the system like Time Zone, Language, Date time formats, etc.)

  • Determine the best setup for the test application.

  • Adding or altering hardware resources such as Load Balancers, increasing or decreasing RAM size, connecting various printer types, and so on to analyze system performance.

  • Analyzing system efficiency based on prioritizing, determining how effectively tests were carried out with the resources available to obtain the best system configuration.

  • Verification of the system in a geographically dispersed environment to determine how well it functions.

  • For example, if the server is in a different location than the clients, the system should work well regardless of the system settings.

  • Checking how readily problems can be reproduced regardless of setup changes.

  • Assuring the traceability of application components by correctly documenting and keeping clearly recognizable versions.

  • Throughout the software development life cycle, determining how manageable the application components are.

Configuration Testing: A Step-by-Step Guide

In this part, we'll go through the method that should be used for different sorts of configuration testing. There are two categories of configuration testing, as shown below.

  • Software Configuration Testing

  • Hardware Configuration Testing

Software Configuration Testing

Software configuration testing is putting the application under test through its paces with different operating systems, software upgrades, and so on. Software configuration testing takes a long time because it takes time to install and uninstall the many software tools that are needed in the process.

Testing the software setup on Virtual Machines is one of the methods used to do so. A virtual machine is a software-based environment that mimics the behavior of physical hardware, giving users the same experience as they would with a physical machine. Virtual Machines are used to replicate real-world scenarios.

It's always best to install the application/software on the virtual machine and continue testing rather than installing and uninstalling the software on several real computers, which is time-consuming. Multiple virtual computers may be used to conduct this procedure, making the job of a tester easier.

When it comes to software configuration testing, it's usually best to get started as soon as possible.

  • The testable configuration criteria are provided.

  • The test environment is now available.

  • The testing team has received extensive training in configuration testing.

  • The build has been published, and both the unit and integration tests have passed.

To test the software configuration test, a typical test strategy is to run the functional test suite across different software configurations to ensure that the program under test is operating as expected with no defects or mistakes.

Another method is to manually fail test cases and check for efficiency to ensure the system is operating properly.

Example

Consider a Banking Application that must be tested for compatibility across various browsers. If the application is hosted in an environment that meets all of the criteria, the unit and integration testing in the test lab may be successful.

However, if the same program is deployed at a client location and the machines lack certain software updates or versions on which the application relies directly or indirectly, the application may fail. To avoid a situation like this, it's best to manually fail the tests by eliminating part of the reconfigurability criteria before continuing with the testing.

Hardware Configuration Testing

Hardware configuration testing is often done in labs, where actual machines with various hardware connected are present.

When a new build is made available, the software must be installed on all physical computers to which the hardware is connected, and the test suite must be run on each system to confirm that the application is functioning properly.

Installing the software on each computer, connecting the hardware, and manually performing or automating the above-mentioned procedure, and running the test suite all take a substantial amount of time.

Furthermore, while doing a hardware configuration test, we define the type of hardware to be tested, and there are so many different types of computer hardware and peripherals that running them all is nearly impossible. As a result, it is the tester's responsibility to determine what hardware is most commonly used by users and to conduct testing based on this priority.

Summary

Configuration Testing, like other forms of testing, should be given equal weight in software engineering. It is impossible to assess ideal system performance without configuration testing, and software may meet compatibility difficulties that it is meant to work on.

Updated on: 02-Dec-2021

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements