Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorial:sequencers [2020/07/15 03:46] admin [Sequencer - Mark Optimal] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tutorial: Model Sequencers - pros and cons ====== | ||
- | |||
- | Learning Objectives: | ||
- | * [[# | ||
- | * [[#Types of Sequencers]] | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | * [[#Dynamic MCase]] | ||
- | * [[# | ||
- | * [[# | ||
- | |||
- | ===== What's Model Sequencer? ===== | ||
- | //Model Sequencer// is algorithm-based the test sequence (test cases) generation from the model. | ||
- | |||
- | The test sequence (test case) generation is referred to as // | ||
- | |||
- | The generated test cases can be automated to drive Application Under Test (AUT) through // | ||
- | |||
- | |||
- | |||
- | |||
- | =====Types of Sequencers===== | ||
- | The algorithms used by the sequencers differ depend on the type of models: // | ||
- | |||
- | For // | ||
- | |||
- | Different algorithms achieve different coverage on the model. In combination with //stop conditions//, | ||
- | |||
- | For // | ||
- | |||
- | |||
- | |||
- | =====Sequencer - Random===== | ||
- | //Random// sequencer traverses // | ||
- | |||
- | The weight of the outgoing transitions determines the probability a transition will be traversed from its source state. | ||
- | |||
- | //Random// sequencer is useful for exploratory type of testing by allowing the model to run for an extended period of time to let the algorithm traverse "all possible" | ||
- | |||
- | //Random// sequencer is also often used for load and stress testing by running model with may //virtual users (VU)// to simulate realistic load of a production systems. | ||
- | |||
- | Another good use of //Random// sequencer is to find memory leak, locking contention, etc. that are caused by running //AUT// over a long period of time. You can just leave the model running with the elapse time stop condition set to desired duration of time. | ||
- | |||
- | The disadvantage of //Random// sequencer is that the model coverage is typically time-dependent - it may take longer time for it to achieve the desired model coverage. | ||
- | |||
- | |||
- | |||
- | |||
- | =====Sequencer - Optimal===== | ||
- | //Optimal// sequencer uses uses algorithms for [[https:// | ||
- | |||
- | The obvious advantage of //Optimal// sequencer is that it generates the least number of steps to cover every transitions in the model. | ||
- | |||
- | The side effect is that the test cases generated by //Optimal// sequencer tends to be longer and fewer test cases with the minimal total number of test steps. | ||
- | |||
- | |||
- | |||
- | =====Sequencer - Priority Path===== | ||
- | // | ||
- | |||
- | The test cases generated by // | ||
- | |||
- | // | ||
- | |||
- | |||
- | =====Sequencer - Pairwise===== | ||
- | // | ||
- | |||
- | // | ||
- | =====Sequencer - Mark Optimal===== | ||
- | Often times you may want to only test certain part of the model. | ||
- | |||
- | //Mark Optimal// sequencer generates the test cases using the same [https:// | ||
- | |||
- | |||
- | =====Sequencer - Mark Serial===== | ||
- | |||
- | =====Sequencer - MCase===== | ||
- | |||
- | =====Dynamic MCase===== | ||
- | |||
- | =====Sequencer - Concurrent===== | ||
- | |||