What does the term combinatorial stand for? Well in the world of computer science combinatorial method refers to testing all possible combinations of a pair of input parameters. Such a technique facilitates a much exhaustive type of testing as the idea is to test a specific functionality or so by initiating an interaction among the input parameters.
Combinatorial is a term derived from mathematics. In mathematics there’s a branch of study called ‘Combinatorics’ which states counting structures of a certain type and size to find out whether a criteria is met and analysing the objects meeting the criteria. The idea is to figure out the total number of outcomes within a given sample space. The very essence of combinatorics is to determine selection, arrangement and operation within a finite system. That is, in simple terms combinatorics provides a certain number of ways to find a solution to a given problem.
In the context of software, however, behaviour of a software application could be affected by quite a few factors like input parameters, configurations, variables etc.
The idea is to combine parameters to check whether it leads to some fault or not because sometimes a fault may occur as a result of interaction between two or more components. When we talk about parameters, we mean a combination of program variables, functions, external files/applications, operating system, browser etc.
Combinatorial testing is also referred to as ‘Pairwise Testing’. Pairwise testing offers 100% coverage in the application’s code by combining set of input conditions. Combinatorial style of testing is based on an intuitive technique that enable testers to systematically consider all possible scenarios.
The inputs include parameters (variables) and environmental factors (OS, database etc.). For each category we further need to decide its class of values – normal, boundary, special and error values
This branch of software testing facilitates us to figure out the various causes of failures. It is a kind of software failure analysis to uncover facts like –
In an endeavour to deal with some common types of problems prevalent in software testing, combinatorial testing came as a rescue. As we know an application involves a vast number of input conditions that could be tested but it leads to a lot of time and cost consumption. The solution to the problem was to figure out an alternative that would maximise the value of each test case while reducing the total volume of test cases. Hence combinatorial testing emphasises a smart combination of input values based on aforementioned approaches to testing. Some of the testing tools meant for pairwise testing are – IBM Focus, Hexawise, Jenny etc.