ScenarioTestPlan - JUCMNAV/projetseg-update GitHub Wiki
Scenario Test Plan
Parser Tests
- The syntax tests are performed by the jUCMNavParserTests and were defined & implemented during the course of the winter 2006.
Scenario UI Tests
- UI tests are left as future work.
Scenario Traversal Tests
- Definitions:
- SPEP (start point, end point)
- SPREP (start point, respref, end point)
- SPOFEP (start point, or fork, end point)
- you get the idea.
Tests for any traversal engine
- Given SPEP, launch SP, reach EP. Pre/post conditions true.
- Given SPEP with a few empty points in middle, launch SP, reach EP. Pre/post conditions true.
- Given SPREP, launch SP, reach EP. R sets boolean condition to false, verified in post condition.
- Given SPREP, launch SP, reach EP. R sets integer condition to a certain non-zero value, verified in post condition.
- Given SPREP, launch SP, reach EP. R increments integer. R has repetition count. Total count verified in post condition.
- Given SPREP, launch SP, reach EP. R sets enum condition to a certain value, verified in post condition.
- Given SPOFEP, launch SP, reach appropriate EP given varying boolean condition. (two tests).
- Given SPOFEP, launch SP, reach appropriate EP given varying integer condition. (two tests).
- Given SPOFEP, launch SP, reach appropriate EP given varying enumeration condition. (two tests).
- Given SPAF(EP|EP), launch SP, reach both EP.
- Given (SP|SP)AJEP, launch both SP, reach EP.
- Given (SP|SP)OJEP, launch both sp, reach EP twice.
- Given SPEPCSPEP, launch first sp, reach both EP.
- Given SPWPEP, where WP is released on arrival by condition, EP is reached.
- Given SPTEP, where T is released on arrival by condition, EP is reached.
- Given SPTEP, where T timeout path is released on arrival by condition, EP is reached.
- Given SPREP and SPWPEP, where R sets a condition that unblocks waiting place, verify both EP fired regardless of start order.
- Given SPREP and SPTEP, where R sets a condition that unblocks timer (no timeout path), verify both EP fired regardless of start order.
- Given SPREP and SPTEP, where R sets a condition that unblocks timeout path, verify 2/3 EP fired regardless of start order.
- Given (SPEPC|SP)WPEP where WP is blocked, verify both EP are reached if SPEP is fired after SP.
- Given (SPEPC|SP)TEP where T is blocked, verify both EP are reached if SPEP is fired after SP.
- Given (SPC|SP)EMPTY EP (asynch connect), verify that EP is fired even if you launch only SPC. Verify that if you launch both, the EP is reached twice.
- Given SPSTEP where ST bound to SPEP, fire top SP, verify both EP reached.
- Given SPSTEP where ST bound to SPEP, fire bottom SP, verify only bottom EP reached.
- Given (SP|SP)STEP, where ST bound to (SP|SP)AJEP, verify that both EP reached. (don't verify if top level is fired only once, see specific implementation)
- Given SPSTEP where ST bound to two different maps with SPEP, given varying boolean condition, verify the appropriate two EP are reached.
Scenario Inclusion tests.
- Pick any test and define all pre/post conditions, initializations, start point / end point in the included scenario. Run the parent scenario and verify same output as child.
- Could write tests to verify works recursively, move up/down behaviour, initialization overridding, start/end point merging, pre/post condition merging, but we don't like our included/inherited tests so we won't do these tests for now (as we may be changing the implementation soon).
Tests for our specific implementation
- Given (SPST|SPST)EP, where two stubs are bound to same plugin with (SP|SP)AJEP, verify that both EP reached.
- Given (SPEPC|SP)WPEP where WP is blocked, verify second EP is not reached if SPEP is fired before SP.
- Given (SPEPC|SP)TEP where T is blocked, verify second EP is not reached if SPEP is fired before SP.
- Given (SPEPC|SP)T(EP|EP) where T is blocked, verify timeout EP is reached if SPEP is fired before SP.
- Given (SP|SP)AJEP, fire each SP twice in succession. Verify EP fired twice. (and join memory)
- Given (SP|SP)STEP, where ST bound to (SP|SP)AJEP, verify that both EP reached. Verify top level EP only fired once (our implementation)
- Given SPEPCSPEP, where middle EP has false postcondition, verify reach both EP anyways.
- Given SPEPCSPEP, where middle SP has false precondition, verify only reach first EP.
- Given SPOF(EP,EP) with multiple true branches, only one will be active.
- Given SPSTEP where ST bound to two different maps with SPEP, both having true condition, verify that only one stub is traversed.
- Given SPSTEP, with no plug-in, verify EP reached.
- Given SPTEP with both true conditions, verify continuation path EP is reached.
- Given SPWPEP, fired twice, then SPC to this WP, verify EP is only reached once.
Notes
- Could test patient / impatient
- Could test deterministic / non-deterministic
- Could test component bindings
- Could test MSC generation
-- Main.JasonKealey - 25 Jan 2007