## 3 The Proposed Approach
### Pairwise Testing  
Before conducting the test, the input space needs to be modeled in order to obtain the factors and optional values affecting the System Under Test (SUT), which are defined as follows:  
**Definition 1** (Factors and Optional Values). : _Each individual input for a software system is a factor of the system. Each possible value for a given factor is an optional value for the factor. A software system with \(k\) factors can be represented by \(F=\left\{f_{1},f_{2},\ldots,f_{k}\right\}\), where the \(l_{i}\) optional values for the \(i\)-th factor \(f_{i}\) can be represented as \(D_{i}=\left\{v_{i,1},v_{i,2},\ldots,v_{i,l_{i}}\right\}\);_  
**Definition 2** (Test Case). : _For a software system containing \(n\) factors to be tested, a test case can be represented by \(test=\left\{x_{1},x_{2},\ldots,x_{n}\right\}(x_{1}\in D_{1},x_{2}\in D_{2}, \ldots,x_{n}\in D_{n})\);_  
**Definition 3** (Test Case Set). : _The matrix \(T=\left(x_{i,j}\right)_{m\times\
u}\), which contains \(m\) test cases, is said to be the set of test cases of size \(m\) of the test system, where \(T\) is an \(m\times k\) matrix and each row in \(T\) is a test case._  
The traditional combination design approach is based on a coverage matrix. Specifically, the set of combination test cases is represented by a matrix in which each row represents a test case, each column represents a factor of the SUT, and each item (entry) represents the value of the corresponding factor. [PERSON] et al. [26] provides the definition of a coverage array (CA) to describe the set of test cases;  
Figure 5: The simplification process of the OBDD for the Boolean function \(f(x_{1},x_{2},x_{3})=(x_{1}+x_{2})\cdot x_{3}\). **Definition 4** (Coverage Matrix). : _The coverage matrix \(CA(N,k,s,t)\) is an \(N\times k\) matrix with \(s\) optional values for each column, and an arbitrary \(N\times t\) submatrix that contains all \(t\)-tuples over the \(s\)-value domain. \(N\) denotes the number of rows, \(k\) denotes the number of factors, \(s\) denotes the number of values for each factor, and \(t\) denotes the interaction strength. The interaction strength (\(t\)) means that any valid combination of any \(t\) parameters in the range of values is covered by at least one test case. A coverage matrix with \(t=2\) is called a pairwise covering array;_  
**Definition 5** (Optimal Test Case Set). : \(TS\) is said to be the optimal test case set if \(T\) satisfies all possible combinations that have occurred at least once and the number of rows (\(m\)) in the matrix (\(T\)) is the minimum value. Pairwise testing is a test case generation technique that can effectively reduce the number of test cases by considering all the dimensions and values of the test variables while avoiding the exhaustive testing of all combinations of variable values. The pairwise testing approach solves the problem of test case explosion to a certain extent. The idea of the pairwise algorithm is to streamline the use cases by deleting a group of use cases if their two-by-two combinations occur in all other combinations. A pairwise algorithm is based on the following two assumptions: (i) each dimension is orthogonal, (i.e., there is no intersection of any dimension with any other dimension); (ii) the majority of defects arise from a single factor or the interaction of two different factors. In fact, according to mathematical statistical analysis, 73% of the defects are caused by single-factor or two-factor interactions, and 19% of the defects are caused by three-factor interactions. An N-wise testing set comprises test cases that contain all possible combinations of the values of each set of N factors. In How We Test Software at Microsoft [27], it is recommended to start testing with two-pair (pairwise) testing sets and gradually increase the dimensionality of the combinations up to six-wise combination testing. Recent research has shown that six-pair testing sets, in terms of the defect removal efficiency and structural code coverage strategies, are comparable to exhaustive coverage.