Project Benefits
SmartTest eliminates the need for exhaustive testing.
|
Number of Parameters |
Number of Values |
Number of Exhaustive Tests |
Number of Tests w/ SmartTest |
|
3 |
2 |
8 |
4 |
|
4 |
3 |
81 |
9 |
|
5 |
4 |
1,024 |
16 |
|
6 |
5 |
15,625 |
25 |
|
8 |
7 |
5,764,801 |
49 |
|
9 |
8 |
134,217,728 |
64 |
|
10 |
9 |
3,486,784,401 |
81 |
|
12 |
11 |
3.14E+12 |
121 |
|
14 |
13 |
3.94E+15 |
169 |
|
17 |
16 |
2.95E+20 |
256 |
In the above chart a parameter could be a GUI dialog field or any
item that can have one or more values. The Exhaustive Tests column
indicates the number of test cases that would be required to test all
combinations of the given number of parameters and values. The
last column indicates how many test cases it would take SmartTest to
cover the same function. For example, if a particular function has
15,625 total exhaustive tests, SmartTest determines the 25 test cases
that can be run which will have the same result as if you had run all
15,625 test combinations.
To quantify the benefits, say that it takes 2 minutes to run each
test case. 15,625 x 2 = 31,250 minutes or 521 hours. Working
8 hours a day, it would take 2 testers over 1 month to run all the
tests. Assuming each tester earns $50,000 a year, it would cost
over $8000 to test all 15,625 test combinations. Using SmartTest,
all of this can be accomplished in less than 1 hour with one tester at a
cost of only $24!
Subjectivity
Realistically, no one would ever run all 15,625 test cases for a
particular function, but that raises an important question. Which
of the possible 15,625 test combinations do you run? Most testers
would probably randomly test several different combinations, or run the
test combinations that he/she believes the customer would most likely
use. This is subjective and inaccurate. SmartTest
scientifically determines 25 test cases that, when run, have the same
effect as running all 15,625 test combinations in this example. (For
more detailed information on pair-wise testing,
click here.) This eliminates subjectivity and increases the
quality of your software.
|