in my situation i have too many parameters(1000 parameter or more ...) the number of parameter may change. every parameter contains a defined number of values .the problem is that the combination of all parameter values is too long which make it impossible to cover all the testing cases , so is there a solution to generate an automatic testing that covers all the parameters ?
3 Answers
Often, the effect of a parameter value is "monotonous", in the sense that the values are ordered in some way, and whenever a test succeeds for two different values we know it will succeed for all values in between.
This can be used to limit the number of values to try. Instead of trying a 1000 different values you can get by by testing 20 or so. This is apparently known as boundary scanning or boundary value analysis in the literature.
But it is only useful for reducing the number of different values to try for a given parameter. Your problem is the number of different parameters. Even with only 2 different values for each parameter, there are 21000 combinations to try. You would need to identify and exploit higher-order "monotonicities" in the 1000-dimensional parameter value space to reduce this. Whether this is possible depends on what the parameters mean.
- 78,673
- 596
Not a test, but informal or formal proofs will cover all possible parameter values. Typically to reduce the burden of proofs or testing, we restrict both the number of parameters and the range of possible values for those parameters. This reduces the state space of the program.
- 3,952
There are several testing frameworks out there that generate test cases. This Computerphile video nicely demonstrates one in action. The idea is that a machine can generate more test cases than any person ever could, and thereby more thoroughly tests the code. Instead of just getting full branch coverage, you can get complete input coverage.
Of course, these tools tend to be geared toward functional languages, so you might have a hard time finding a good one for your particular language.
- 9,021