Managing the Validation and Testing of Large and Complex Decisions - Gnorion/BizVR GitHub Wiki
Imagine you have a decision like this:
It would be impossible to test the entire set of 31 tables in one go. The values tested for each variable declared as an input are
I1: = 1, in [10..50], in [50..100], in (100..500), in [500..1000], > 1000
I10: < 0, in [0..50], in [50..100], in (100..10000], in (1000..10000], > 10000
I11: = 'i11', = 'i11a', = 'i11b'
I2: = 'i2', = 'i2a', = '12b'
I3: = 'i3', = 'i3a', = 'i3b
I12: = 'i12', = 'i12a', = 'i12b
So in order to test every combination you would need 6x6x3x3x3x3 = 2916 tests (and the model is nowhere near finished)
A more effective way to proceed is to test each table separately.
A simple table such as this only requires 2 tests
But a more complex table like this one requires 75 test cases
In order to keep track of where I am during testing (since we don't yet have a built in mechanism) I am modifying the table name to show status information
For this table this means the table is Complete and Consistent and has 75 possible test cases
At some point we should provide this annotation automatically. And maybe its even possible to use an annotation like T=38/75 to mean that 38 out of 75 tests have been run successfully (matched the expected results)
For the decision as a whole, the number of test cases will now be the SUM of the test cases for each table