Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:comb_data_modeling [2020/06/11 03:39]
admin [Build Model]
tutorial:comb_data_modeling [2021/01/05 03:00] (current)
Line 1: Line 1:
 ====== Tutorial: Combinatorial Modeling and Test Generation ====== ====== Tutorial: Combinatorial Modeling and Test Generation ======
  
-Learning Objectives:+====Learning Objectives ====
   * [[#What is Combinatorial Model?]]   * [[#What is Combinatorial Model?]]
-  * [[#Build Model]]+  * [[#Create Model]]
   * [[#Generate Test Cases]]   * [[#Generate Test Cases]]
   * [[#Make Changes]]   * [[#Make Changes]]
Line 24: Line 24:
    
  
-===== Build Model =====+===== Create Model =====
 To create a combinatorial model, clicki on {{wiki:overview:ide_btn_open.png?16}} on the toolbar or clicking on menu //File / Open/New Model//: To create a combinatorial model, clicki on {{wiki:overview:ide_btn_open.png?16}} on the toolbar or clicking on menu //File / Open/New Model//:
  
Line 39: Line 39:
 {{wiki:overview:ide_newmodel_prompt.png?300}} {{wiki:overview:ide_newmodel_prompt.png?300}}
  
-The new model is open in //IDE// like this:+The new model is open in //DEFINE// tab like this:
  
 {{wiki:overview:tut_comb_new_model.png?600}} {{wiki:overview:tut_comb_new_model.png?600}}
 +
 +
 +The first step is to define all of the variables and set the domain values for each variable. This is done in //DEFINE// tab:
 +  - click on {{wiki:overview:tut_comb_btn_plus.png?20}}
 +  - select the appropriate data type: int, float, txt or bool
 +  - enter domain values one value on each line
 +
 +You should have something like this:
 +
 +{{wiki:overview:tut_comb_new_model_var1.png?150}}
 +
 +Go ahead and create two more variables and we have the model built:
 +
 +{{wiki:overview:tut_comb_new_model_var3.png?500}}
 +
 +You can also add constraints to remove certain permutations that are illegal, invalid or unwanted for any reason.  This is not covered in this tutorial, please refer to the [[../data_design_ide#define | Data Design IDE / DEFINE]] for details.
 +
 +Save the changes and we are ready to generates the test cases from this model.
 +
  
  
  
 ===== Generate Test Cases ===== ===== Generate Test Cases =====
 +Test generation from combinatorial model is done in [[../data_design_ide#generate | GENERATE]] tab.  Go ahead and select //GENERATE// tab.
 +
 +{{wiki:overview:tut_comb_new_model_gen.png?600}}
 +
 +To generate the test cases,
 +  * select an algorithm {{wiki:overview:tut_comb_algorithms.png?150}}
 +
 +  * click on ▶ next to the algorithm dropdown
 +
 +Generated test cases are listed in //DataTable// as below for //pairwise//:
 +
 +{{wiki:overview:tut_comb_new_model_pairwise_gen.png?600}}
 +
 +You may remove or add additional rows to the //DataTable// as you see fit, even to update values for any rows. However this must be done with caution as any changes to //DataTable// will be lost on next time //DataTable// is re-generated.
 +
 +Feel free to experiment with different generation algorithms.  You must save the changes before you run another generation.
 +
 +When selecting //Mixed// algorithm, you will see an additional section displayed below the header (variable names):
 +
 +{{wiki:overview:tut_comb_new_model_gen_mixed.png?600}}
 +
 +//Mixed// algorithm allows you to selectively apply different interaction strength (pairwise vs three-wise, etc.) for specific subset of variables.
 +
 +We will not cover //Mixed// algorithm here, but you can find more details about //Mixed// algorithm in [[../data_design_ide#generate | Data Design IDE / GENERATE]].
 + 
 +
 +
  
  
 ===== Make Changes ===== ===== Make Changes =====
 +
 +As you must have figured out that you can easily add additional variables and remove any variables from the model.
 +
 +Other changes are adding, removing and changing the domain values of each variable.
 +
 +Upon any changes to the model, you should always re-generate //DataTable//.
  
  
  
-===== =====