A method for generating pairwise combination test cases applied to configurable software
By generating a coverage array through a method that includes obtaining constraint formulas, simplifying operations, adaptive sampling, and incremental solution mechanisms, the problems of low generation efficiency, high redundancy, and uncontrollable costs in existing technologies are solved, enabling more efficient and lower-cost configurable software testing.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SOUTH CHINA UNIV OF TECH
- Filing Date
- 2026-03-20
- Publication Date
- 2026-06-02
AI Technical Summary
Existing pairwise coverage array generation methods are difficult to model efficiently in strongly constrained, large-scale configurable software testing scenarios. They have low generation efficiency, high configuration redundancy, and are difficult to control testing costs. Furthermore, they lack a global perspective and redundancy filtering mechanism, resulting in wasted testing resources and low coverage efficiency.
The generation method employs techniques extracted from the patent specification: extraction techniques ...
It enables the rapid generation of smaller-scale paired coverage arrays, improves the efficiency of highly configurable software testing, reduces testing costs, enhances coverage efficiency and configuration simplicity, and reduces redundant test items.
Smart Images

Figure CN121880220B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of software testing technology, and in particular to a method for generating pairwise combined test cases for configurable software. Background Technology
[0002] Configurable software systems refer to flexible software architectures that allow users to dynamically adjust system functions, interfaces, or processes without modifying the core code, through preset parameters, options, or visualization tools, thereby adapting to different business scenarios, user needs, or operating environments. With the continuous enhancement of software system configurability, highly configurable software has been widely used across various industries. However, its configuration space often grows exponentially, making traditional exhaustive testing methods completely infeasible. To address this issue, combinatorial interaction testing techniques have emerged. These techniques construct coverage arrays to select the most representative configuration combinations for testing, effectively detecting defects caused by interactions between configuration options. Among these, pairwise testing methods have become the mainstream solution for configurable software testing due to their ability to achieve a good balance between testing effectiveness and execution efficiency.
[0003] The core of pairwise testing is the problem of generating pairwise coverage arrays, that is, generating a minimum-sized pairwise coverage array that ensures that all valid option values are covered in pairs.
[0004] However, existing methods for generating paired overlay arrays have some shortcomings.
[0005] On the one hand, in strongly constrained, large-scale configurable software testing scenarios, existing methods struggle to efficiently model complex constraints; on the other hand, as the dimension and range of parameters expand, the computational load of generating paired coverage arrays increases dramatically, leading to a significant extension of the build time.
[0006] On the other hand, existing methods struggle to balance the scale of generating paired coverage arrays with testing costs, resulting in a generally high number of generated configurations. Furthermore, they cannot effectively streamline the configuration set while ensuring test integrity, making them unsuitable for real-world application scenarios with limited testing resources.
[0007] Furthermore, existing methods lack a global perspective when configuring sampling, resulting in insufficient diversity of the generated configuration sets and low coverage efficiency of target tuples. At the same time, due to the lack of an effective redundancy filtering mechanism, the resulting paired coverage arrays contain a large number of redundant test items, further leading to a waste of test resources.
[0008] Therefore, there is an urgent need to provide a method for generating paired combination test cases for configurable software to solve the aforementioned termination problem. Summary of the Invention
[0009] To address the problems existing in the prior art, this invention provides a method for generating pairwise combined test cases for configurable software. It aims to solve the technical problems faced by pairwise testing in strongly constrained, large-scale configurable software, such as difficulty in configuration space modeling, low generation efficiency, high configuration redundancy, and difficulty in controlling testing costs. The goal is to achieve rapid generation of smaller-scale pairwise coverage arrays, improve the efficiency of testing highly configurable software, and reduce testing costs.
[0010] The technical solution of this invention is implemented as follows:
[0011] A method for generating pairwise combination test cases for configurable software includes the following steps:
[0012] T1. Obtain the constraint formula of the configurable software, and denote it as the original constraint; extract the backbone text and equivalent variables of the original constraint to simplify the original constraint and obtain the simplified constraint.
[0013] The core text refers to the text whose value remains constant across all assignments that satisfy the constraint formula. Equivalent variables are pairs of variables in the constraint formula that satisfy logical equivalence relations; that is, the truth values of the two variables are always consistent or completely opposite, and the formula can be simplified through equivalent substitution.
[0014] A literal is the smallest unit that constitutes a logical constraint; it can be a Boolean variable or the negation of a variable. A variable is an abstraction of a literal. For example, regarding variables... There is text and negative text .
[0015] The unit propagation mechanism refers to deleting all clauses in a formula that contain a specified text, and removing the corresponding text from all clauses that contain the negation of that text, in order to eliminate redundant variables and clauses.
[0016] A constraint formula is a conjunctive normal form consisting of one or more clauses connected by a logical AND statement. A clause is a disjunctive expression consisting of a finite number of literals connected by a logical OR statement, and is the basic building block of conjunctive normal form (CNF).
[0017] T2. Initialize the configuration set; use tuples to represent combinations of different values of different variables in a binary clause; a binary clause is a clause that includes two literals;
[0018] The SAT solver is invoked to obtain the satisfiable assignments of the simplified constraints, which are then added to the configuration set as the initial configuration. Each variable of the simplified constraint includes several assignments. The weight and sampling probability of each assignment are dynamically calculated, and a reference assignment is generated for each variable based on the sampling probability.
[0019] Based on the reference assignment, search for candidate configurations that meet the simplified constraints; calculate the coverage gain of the candidate configurations; the coverage gain is the number of newly covered tuples; select the candidate configuration with the largest coverage gain and add it to the configuration set;
[0020] Perform multiple samplings to add multiple candidate configurations to the configuration set;
[0021] SAT stands for "Boolean Satisfiability Problem." A SAT solver is a computational tool used to determine the satisfiability of a Boolean equation. Its task is to automatically determine whether there exists a set of variable assignments that make the entire equation true, given a logical formula consisting of Boolean variables (true / false). SAT solvers are widely used in chip verification, software testing, automated planning, and other fields, and are an important fundamental tool in computer science.
[0022] The satisfiability assignment of a constraint formula means that, for a given constraint formula, a specific value is assigned to each of the variables that appear in it, so that the logical value of the formula is true.
[0023] In the constraint formula, each variable can have one, two, or more possible values.
[0024] Coverage refers to the fact that a combination of values for a variable is satisfied or has appeared in at least one complete assignment. Tuple coverage checks whether a combination of values for a variable has already appeared.
[0025] New coverage refers to newly covered tuples that are satisfied after the assignments in the current round are determined; that is, tuples that were not previously covered but are included in the current assignment. Uncovered tuples are combinations of variable values that have not yet been satisfied among all the determined assignments.
[0026] For ease of understanding, assume there are three variables. , , The existing tuples include , ... There are a total of 12 tuples, ... . When a candidate configuration is obtained... The newly covered tuples are: , and The remaining 9 tuples are uncovered tuples.
[0027] This invention employs a tuple-oriented adaptive sampling strategy. It calculates the weight of each variable based on its distribution in uncovered tuples, and then assigns sampling probabilities based on the weights. Variables that can cover more scarce uncovered tuples are assigned higher sampling priority. Subsequently, reference assignments are generated based on these sampling probabilities, and candidate configurations that meet the constraints are selected by combining them with the constraint solver.
[0028] T3. Traverse all uncovered tuples and construct partial assignments; verify the scalability of the partial assignments through a satisfiability incremental solution mechanism, and generate new configurations that can simultaneously cover multiple uncovered tuples; add the new configurations to the configuration set.
[0029] Repeat generating the new configuration until the uncovered tuples are eliminated;
[0030] Partial assignment means that when generating a new configuration, only some variables are assigned values, while the remaining variables are left to be determined.
[0031] The incremental solution mechanism for satisfiability is a technique that retains conflict clauses, variable assignment information and search states generated during the solution of previous problems when solving a series of satisfiability problems with a common subset of constraints. This eliminates the need to solve each new problem from scratch, thereby significantly reducing the overhead of repeated computation.
[0032] T4. For each configuration in the configuration set, use the equivalent variable mapping operation and the backbone text completion operation to restore it to the complete configuration corresponding to the original constraint; output the complete configuration. The generated multiple complete configurations constitute a paired coverage array of the original constraint formula, and each complete configuration corresponds to a software test case for combinatorial testing of the configurable software system.
[0033] As a further optimization of the above solution, the simplified operation includes:
[0034] T11. Call the backbone extraction algorithm to obtain the backbone text in the original constraints, and distinguish between positive backbone text and negative backbone text; the positive backbone text corresponds to the core option, and the negative backbone text corresponds to the invalid option;
[0035] T12. Through the unit propagation mechanism, remove the clauses containing the backbone text in the original constraints, and eliminate the negation form of the backbone text in other clauses;
[0036] T13. Identify the binary clauses with bidirectional implications in the original constraints, parse them into equivalent variables and merge them to reduce the number of variables and clauses in the formula, thus obtaining the simplified constraints.
[0037] If both binary clauses exist and Then there exists an equivalence relation. ,but and These are equivalent variables that can be combined into a single variable, such as retaining... That is, the two preceding clauses are "bivariate clauses with two-way implications".
[0038] As a further optimization of the above scheme, the positive backbone text is the text that always takes the value of 1 among all the possible values that can be satisfied by the original constraint; the negative backbone text is the text that always takes the value of 0 among all the possible values that can be satisfied by the original constraint.
[0039] As a further optimization of the above scheme, in T2, state data based on bit vectors is used to represent the tracking of uncovered tuples; when the configuration set is updated, the state data is updated synchronously, thereby maintaining the tracking of the coverage state of tuples in real time.
[0040] As a further optimization of the above scheme, in T2, a weight is calculated for each assignment of each variable; the weight is the sum of the proportions of the uncovered tuples corresponding to the assignment in all variables.
[0041] Specifically, for variables , including assignment sets Then assign a value. The weight is ,Right now .in, Let be the set of variables in the constraint formula; for A subset of, representing Including, except All variables outside of; Indicates by variable and variables The number of uncovered tuples that are formed.
[0042] As a further optimization of the above scheme, in T2, a sampling probability is calculated for each assignment of each variable; the sampling probability is the proportion of the weight of the assignment to the sum of the weights of all assignments of its corresponding variable.
[0043] Specifically, assignment The sampling probability is ,Right now Such as variables The values of include 0 and 1, then .
[0044] As a further optimization of the above scheme, in T2, the condition for terminating the sampling is: in the current iteration round, the largest coverage gain is lower than a preset gain threshold.
[0045] As a further optimization of the above scheme, the search is as follows: in the candidate configurations, at least half of the variables are assigned the reference assignment.
[0046] The satisfiability sampler retrieves candidate configurations that maintain the same values for most variables as the reference assignment and satisfy the constraint formulas. The number of candidate configurations is specified by a preset hyperparameter. The satisfiability sampler is a configuration generation method based on the SAT solver, which generates multiple valid configurations by searching the variable assignment space while satisfying the constraint formulas.
[0047] As a further optimization of the above scheme, the specific process of T3 is as follows:
[0048] T31. Disrupt the order of the uncovered tuples to avoid coverage deviation caused by a fixed order;
[0049] T32. Initialize the partial assignment to empty, and sequentially add the uncovered tuples to the partial assignment. Call the incremental satisfiability solution mechanism to verify the scalability of the partial assignment. Specifically, call the satisfiability solution process based on Conflict-Driven Clause Learning (CDCL) to verify the current partial assignment. The CDCL process is a commonly used Boolean satisfiability solution algorithm, which uses conflict analysis and clause learning mechanisms to determine whether a given partial assignment can be expanded into a complete assignment that satisfies the constraint formula.
[0050] T33. If the partial assignment is expandable, the partial assignment is recorded as a valid assignment; if it is not expandable, continue traversing the next uncovered tuple until a valid assignment is obtained; successfully expanded tuples are removed from the set of uncovered tuples and are considered covered; tuples that fail to expand are put back into the set of uncovered tuples and wait for subsequent traversal attempts.
[0051] T34. Extend the valid assignment to the new configuration using the SAT solver;
[0052] T35. Repeat T32 to T34 until the uncovered tuples are eliminated.
[0053] As a further optimization of the above scheme, in T4, the configuration in the configuration set is denoted as simplified configuration;
[0054] The equivalent variable mapping operation is to map the variables in the simplified constraints back to the corresponding variables in the original constraints, thereby completing the generation from the simplified configuration to the complete configuration;
[0055] The skeleton text completion operation involves assigning values to the skeleton text in the original constraints.
[0056] Specifically, positive backbone characters are uniformly assigned a value of 1, and negative backbone characters are uniformly assigned a value of 0.
[0057] In addition, T4 checks each configuration after mapping and completion to ensure that it meets all constraints in the original constraint formula, and verifies that all valid paired tuples have been covered. The set of configurations that have passed the verification is organized into a paired coverage array in the original variable space, and the final generated result is output, including the paired coverage array and related statistics. The related statistics include array size, generation time, and paired tuple coverage rate.
[0058] Compared with the prior art, the present invention achieves the following beneficial effects:
[0059] (1) The sampling is more targeted and the coverage efficiency is higher. The present invention adopts an adaptive sampling strategy oriented towards tuples, which directly adjusts the sampling probability dynamically based on the distribution of uncovered paired tuples. This avoids the limitations of existing methods that measure diversity based on text distribution. It can prioritize sampling configurations that cover scarce tuples, significantly improve the coverage efficiency of a unit configuration, and reduce the total amount of configurations in the sampling stage.
[0060] (2) More streamlined configuration in the full coverage stage: This invention uses a tuple integration strategy and a satisfiability incremental solution mechanism to identify coexisting uncovered tuples. A single configuration can cover multiple uncovered tuples. Compared with the existing methods of covering a single tuple individually or large-scale repeated sampling, this invention significantly reduces the configuration redundancy in the full coverage stage, and the final generated paired coverage array is smaller in size.
[0061] In summary, the method for generating paired test cases for configurable software provided by this invention can achieve rapid generation of smaller-scale paired coverage arrays, improve the efficiency of testing highly configurable software, and reduce testing costs. Attached Figure Description
[0062] Figure 1 This is a schematic diagram of the overall process of a method for generating pairwise combined test cases for configurable software, provided by an embodiment of the present invention.
[0063] Figure 2 This is a flowchart of a simplified operation provided in an embodiment of the present invention;
[0064] Figure 3 This is a flowchart of the sampling diversity configuration set provided in the embodiments of the present invention;
[0065] Figure 4 This is a flowchart of eliminating uncovered tuples provided in an embodiment of the present invention;
[0066] Figure 5 This is a flowchart of configuration completion provided in an embodiment of the present invention. Detailed Implementation
[0067] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions in the embodiments of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this invention, and not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.
[0068] like Figures 1 to 5 As shown, this embodiment provides a method for generating pairwise combination test cases for configurable software, including the following steps:
[0069] T1. Obtain the conjunctive normal form formula of the configurable software, which is also the constraint formula, denoted as the original constraint; extract the backbone text and equivalent variables of the original constraint to simplify the original constraint and obtain the simplified constraint.
[0070] Specifically, simplified operations include:
[0071] T11. Call the backbone extraction algorithm to obtain the backbone text in the original constraints, and distinguish between positive backbone text and negative backbone text; positive backbone text corresponds to core options, and negative backbone text corresponds to invalid options; in this embodiment, positive backbone text is the text that always takes the value 1 among all the satisfiable assignments of the original constraints; negative backbone text is the text that always takes the value 0 among all the satisfiable assignments of the original constraints.
[0072] T12. Through the unit propagation mechanism, remove clauses containing backbone text from the original constraints and eliminate the negation form of backbone text in other clauses;
[0073] T13. Identify the binary clauses with bidirectional implications in the original constraints, parse them into equivalent variables and merge them to reduce the number of variables and clauses in the formula, thus obtaining simplified constraints.
[0074] It is understandable that if two clauses exist simultaneously... and Then there exists an equivalence relation. ,but and These are equivalent variables that can be combined into a single variable, such as retaining... That is, the two preceding clauses are "bivariate clauses with two-way implications".
[0075] In this embodiment, the selected example original constraint formula is: After simplification, the simplified constraints are: ,Right now" " is a basic character, therefore the variable The value assigned to it is always 1.
[0076] T2. Initialize the configuration set; use tuples to represent combinations of different values of variables in a binary clause; a binary clause is a clause containing two literals; call the SAT solver to obtain the satisfiable values of simplified constraints, which are then added to the configuration set as the initial configuration; in this embodiment, the initial configuration is obtained as follows: .
[0077] Each variable in the simplified constraint includes several assignments, and the weight and sampling probability of each assignment are dynamically calculated.
[0078] Specifically, the weight is the sum of the proportions of uncovered tuples corresponding to the assigned values across all variables.
[0079] The sampling probability is the proportion of the weight assigned to a variable to the sum of all assigned weights of that variable.
[0080] For variables , including assignment sets Then assign a value. The weight is ,Right now .in, The set of variables constraining the formula; for A subset of, representing Including, except All variables outside of; Indicates by variable and variables The number of uncovered tuples that are formed.
[0081] Assignment The sampling probability is ,Right now Such as variables The values of include 0 and 1, then .
[0082] A reference value is generated for each variable based on the sampling probability; in this embodiment, the reference value obtained based on the sampling probability is... .
[0083] Based on reference assignments, candidate configurations that meet simplified constraints are searched. In this embodiment, the search is as follows: in the candidate configurations, at least half of the variables are assigned reference assignments; the coverage gain of the candidate configurations is calculated; the coverage gain is the number of newly covered tuples; the candidate configuration with the largest coverage gain is selected and added to the configuration set; coverage means that a combination of assignment values for a variable has been satisfied or appeared in at least one complete assignment. Tuple coverage is checking whether a combination of variable values has already appeared.
[0084] New coverage refers to newly covered tuples that are satisfied after the assignments in the current round are determined; that is, tuples that were not previously covered but are included in the current assignment. Uncovered tuples are combinations of variable values that have not yet been satisfied among all the determined assignments.
[0085] For ease of understanding, assume there are three variables. , , The existing tuples include , ... There are a total of 12 tuples, ... . When a candidate configuration is obtained... The newly covered tuples are: , and The remaining 9 tuples are uncovered tuples.
[0086] Based on the reference assignment, the candidate configurations obtainable in this embodiment can be: , .
[0087] Perform multiple samplings to add multiple candidate configurations to the configuration set; the condition for terminating sampling is: in the current iteration round, the largest coverage benefit is lower than the preset benefit threshold.
[0088] In this embodiment, bit vector-based state data is used to represent the tracking of uncovered tuples; when the configuration set is updated, the state data is updated synchronously, thereby maintaining the tracking of the tuple coverage status in real time.
[0089] This invention employs a tuple-oriented adaptive sampling strategy. It calculates the weight of each variable based on its distribution in uncovered tuples, and then assigns sampling probabilities based on the weights. Variables that can cover more scarce uncovered tuples are assigned higher sampling priority. Subsequently, reference assignments are generated based on these sampling probabilities, and candidate configurations that meet the constraints are selected by combining them with the constraint solver.
[0090] T3. Traverse all uncovered tuples and construct partial assignments; verify the scalability of partial assignments through the satisfiability incremental solution mechanism, and generate new configurations that can cover multiple uncovered tuples at the same time; add the new configurations to the configuration set; repeat the generation of new configurations until the uncovered tuples are eliminated.
[0091] More specifically, the T3 process is as follows:
[0092] T31. Shuffle the order of uncovered tuples to avoid coverage deviations caused by a fixed order;
[0093] T32. Initialize the partial assignment to empty, add the uncovered tuples to the partial assignment in turn, and call the satisfiability incremental solution mechanism to verify the scalability of the partial assignment; T33. If the partial assignment is scalable, the partial assignment is recorded as a valid assignment; if it is not scalable, continue to traverse the next uncovered tuple until a valid assignment is obtained; successfully expanded tuples are removed from the set of uncovered tuples and are regarded as covered; tuples that fail to expand are put back into the set of uncovered tuples and wait for subsequent traversal attempts.
[0094] T34. Expand the valid assignments to new configurations using the SAT solver;
[0095] In this embodiment, uncovered tuples include Adding partial assignments will yield the following results. After the SAT solver is extended, new configurations can be obtained. .
[0096] T35. Repeat T32 to T34 until all uncovered tuples are eliminated, that is, all uncovered tuples are covered.
[0097] T4. For each configuration in the configuration set, denoted as a simplified configuration, use the equivalent variable mapping operation and the backbone text completion operation to restore it to the complete configuration corresponding to the original constraints; output the complete configuration.
[0098] The equivalent variable mapping operation maps variables in simplified constraints back to their corresponding variables in the original constraints, thus generating a complete configuration from a simplified one.
[0099] The skeleton text completion operation involves assigning values to the skeleton text in the original constraints. Specifically, positive skeleton text is uniformly assigned a value of 1, and negative skeleton text is uniformly assigned a value of 0.
[0100] In addition, each configuration after mapping and completion is checked to ensure that it meets all the constraints in the original constraint formula, and all valid paired tuples are verified to be covered. The set of configurations that pass the verification is organized into a paired coverage array in the original variable space. That is, the multiple complete configurations generated constitute a paired coverage array of the original constraint formula. Each complete configuration corresponds to a software test case for combinatorial testing of the configurable software system.
[0101] The final output includes paired coverage arrays and related statistical information; the related statistical information includes array size, generation time, and paired tuple coverage rate. In this embodiment, the output paired coverage array is... .
[0102] Based on the disclosure and teachings of the foregoing specification, those skilled in the art can make changes and modifications to the above embodiments. Therefore, the present invention is not limited to the specific embodiments disclosed and described above, and some modifications and changes to the present invention should also fall within the protection scope of the claims of the present invention. Furthermore, although some specific terms are used in this specification, these terms are only for convenience of explanation and do not constitute any limitation on the present invention.
Claims
1. A method for generating pairwise combination test cases for configurable software, characterized in that, Includes the following steps: T1. Obtain the constraint formula of the configurable software, and denote it as the original constraint; extract the backbone text and equivalent variables of the original constraint to simplify the original constraint and obtain the simplified constraint. The simplified operation includes: T11. Call the backbone extraction algorithm to obtain the backbone text in the original constraints, and distinguish between positive backbone text and negative backbone text; the positive backbone text corresponds to the core option, and the negative backbone text corresponds to the invalid option; T12. Through the unit propagation mechanism, remove the clauses containing the backbone text in the original constraints, and eliminate the negation form of the backbone text in other clauses; T13. Identify the binary clauses with bidirectional implications in the original constraints, parse them into the equivalent variables, and merge them to obtain the simplified constraints; T2. Initialize the configuration set; use tuples to represent combinations of different values of different variables in a binary clause; The SAT solver is invoked to obtain the satisfiable assignments of the simplified constraints, which are then added to the configuration set as the initial configuration. Each variable of the simplified constraint includes several assignments. The weight and sampling probability of each assignment are dynamically calculated, and a reference assignment is generated for each variable based on the sampling probability. Based on the reference assignment, search for candidate configurations that meet the simplified constraints; calculate the coverage gain of the candidate configurations; the coverage gain is the number of newly covered tuples; select the candidate configuration with the largest coverage gain and add it to the configuration set; Perform multiple samplings to add multiple candidate configurations to the configuration set; T3. Traverse all uncovered tuples and construct partial assignments; verify the scalability of the partial assignments through a satisfiability incremental solution mechanism, and generate new configurations that can simultaneously cover multiple uncovered tuples; add the new configurations to the configuration set; the specific process includes: T31. Disorder the uncovered tuples; T32. Initialize the partial assignment to be empty, add the uncovered tuples to the partial assignment in sequence, and call the satisfiability incremental solution mechanism to verify the scalability of the partial assignment. T33. If the partial assignment is expandable, then the partial assignment is recorded as a valid assignment; if it is not expandable, then continue traversing the next uncovered tuple until the valid assignment is obtained. T34. Extend the valid assignment to the new configuration using the SAT solver; T35. Repeat T32 to T34 to generate the new configuration until the uncovered tuples are eliminated. T4. For each configuration in the configuration set, use the equivalent variable mapping operation and the backbone text completion operation to restore it to the complete configuration corresponding to the original constraint; output the complete configuration.
2. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, The positive backbone text is the text that always takes a value of 1 among all the possible values that can be satisfied by the original constraint; the negative backbone text is the text that always takes a value of 0 among all the possible values that can be satisfied by the original constraint.
3. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, In T2, state data based on bit vectors is used to represent the tracking of uncovered tuples; when the configuration set is updated, the state data is updated synchronously.
4. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, In T2, a weight is calculated for each assignment of each variable; the weight is the sum of the proportions of uncovered tuples corresponding to the assignment in all variables.
5. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, In T2, a sampling probability is calculated for each assignment of each variable; the sampling probability is the proportion of the weight of the assignment to the sum of the weights of all assignments of its corresponding variable.
6. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, In T2, the condition for terminating the sampling is: in the current iteration round, the largest coverage gain is lower than a preset gain threshold.
7. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, The search is defined as follows: in the candidate configurations, at least half of the variables are assigned the reference assignment.
8. The method for generating pairwise combination test cases for configurable software according to claim 1, characterized in that, In T4, the configuration in the configuration set is referred to as the simplified configuration; The equivalent variable mapping operation is to map the variables in the simplified constraints back to the corresponding variables in the original constraints, thereby completing the generation from the simplified configuration to the complete configuration; The skeleton text completion operation involves assigning values to the skeleton text in the original constraints.