Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
sequencers [2020/07/16 16:11]
admin created
sequencers [2021/02/17 18:05]
admin [Sequencer - Random]
Line 1: Line 1:
 ====== Model Sequencers ====== ====== Model Sequencers ======
  
-//Model Sequencer// is algorithm-based the test sequence (test cases) generation from the model. +//Model Sequencer// is algorithm-based test case (test sequence) generation from the model. 
  
-The test sequence (test casegeneration is referred to as //Generate// action.+The test case generation is referred to as //Generate// action.
  
 The generated test cases can be automated to drive Application Under Test (AUT) through //Groovy-based Scripting// and [[Plugins]].  This step is referred to as //Execute// model action. The generated test cases can be automated to drive Application Under Test (AUT) through //Groovy-based Scripting// and [[Plugins]].  This step is referred to as //Execute// model action.
Line 18: Line 18:
  
 For //Combinatorial Data// models, //Model Sequencer// generates the permutations for the variable value (domain) sets to achieve the specific combination coverage. For //Combinatorial Data// models, //Model Sequencer// generates the permutations for the variable value (domain) sets to achieve the specific combination coverage.
 +
 +Constraints (rules) can be added to //Combinatorial Data// models to remove unwanted combinations.
  
  
Line 26: Line 28:
 The weight of the outgoing transitions determines the probability a transition will be traversed from its source state.  The higher the weight, the more often the transition will be traversed, with a caveat: non-traversed transitions are preferred over already-traversed transitions. The weight of the outgoing transitions determines the probability a transition will be traversed from its source state.  The higher the weight, the more often the transition will be traversed, with a caveat: non-traversed transitions are preferred over already-traversed transitions.
  
-//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" paths.+//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 explore "all possible" paths.
  
-//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.+//Random// sequencer is also often used for load and stress testing by running model with many //virtual users (VUs)// 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. 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.
Line 52: Line 54:
  
 //Priority// sequencer might be a good choice if you have certain transitions in the model that you wish to cover earlier and/or prefers shorter test cases. //Priority// sequencer might be a good choice if you have certain transitions in the model that you wish to cover earlier and/or prefers shorter test cases.
 +
 +This sequencer supports following parameters to adjust the sensitivity on choosing higher priority transitions and over traversed transitions:
 +  * TraversedTransCost: integer, default 500
 +  * scale: float >= 0.1, default 1.0 = neutral, < 1.0 for less sensitive (less penalty on choosing lower weight transitions), > 1.0 for more sensitive
 +
 +You may also set above parameters in config.properties for all models:
 +    Sequencer.TraversedTransCost=integer
 +    Sequencer.scale=float
 +