Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
data_design_ide [2021/02/09 19:49] admin [DEFINE] |
data_design_ide [2021/02/14 02:43] (current) admin [SCRIPT] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Data Design IDE ===== | + | ====== Data Design IDE ====== |
| //Data Design IDE// is the development and execution (automation) of combinatorial test design models. This is typically used to generate a set of minimal permutations of variables to achieve the desired coverage using [[Combinatorial Algorithms| Combinatorial Testing]]. | //Data Design IDE// is the development and execution (automation) of combinatorial test design models. This is typically used to generate a set of minimal permutations of variables to achieve the desired coverage using [[Combinatorial Algorithms| Combinatorial Testing]]. | ||
| Line 15: | Line 15: | ||
| - | ==== DEFINE ==== | + | ===== DEFINE |
| {{wiki: | {{wiki: | ||
| - | === Variables === | + | ==== Variables |
| In //DEFINE//, you define the testing variables as well as the expected result variables. | In //DEFINE//, you define the testing variables as well as the expected result variables. | ||
| * //Variable Name// - variables must have unique names and preferably legal java variable names | * //Variable Name// - variables must have unique names and preferably legal java variable names | ||
| * //Data Type// - appropriate data type must be selected especially if the variables are referenced by //Derived// variables | * //Data Type// - appropriate data type must be selected especially if the variables are referenced by //Derived// variables | ||
| - | * //Domain Values// - a list of discrete values to be used to generate (populate) [[#DataTable]] or groovy/java expression if //Derived// is checked | + | * //Domain Values// - a list of discrete values to be used to generate (populate) [[#GENERATE]] or groovy/java expression if //Derived// is checked |
| - | * //Derived// - check this box to exclude | + | * //Derived// - check this box if the value of the variable depends on values of other variables. |
| * // | * // | ||
| - | === Constraints / Rules === | + | === Domain Expression === |
| - | When designing test data using combinatorial testing techniques, we often need to remove or avoid certain combinations as they are either unfeasible or unnecessary for whatever reason. | + | Domain values for non-// |
| + | |||
| + | For //Derived// variables, //Domain// must have exactly one value, which can be static value or //groovy// expression. Below is a simple example to calculate the insurance premium credit of $100 given to good student age < 20: | ||
| + | |||
| + | (Age < 20 && GoodStudentStatus)? | ||
| + | |||
| + | You may use plugin reference in //Domain// value/ | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | For more complex scenario: | ||
| + | | ||
| + | |||
| + | where order1Obj is a groovy/java object that is defined/ | ||
| + | |||
| + | Use [blank] to encode blank string and [null] for null string/ | ||
| + | |||
| + | ==== Constraints / Rules ==== | ||
| + | When designing test data using combinatorial testing techniques, we often need to remove or avoid certain combinations as they are either unfeasible or unnecessary for whatever reason. | ||
| The solution is to create a set of constraints or rules to filter out certain permutations. | The solution is to create a set of constraints or rules to filter out certain permutations. | ||
| Line 38: | Line 58: | ||
| - | The // | + | The // |
| | | ||
| Line 70: | Line 90: | ||
| IF (WINTER=true && TEMPERATURE > 30) || (SUMMER=true && TEMPERATURE < 90) THEN GOOD_WEATHER = true | IF (WINTER=true && TEMPERATURE > 30) || (SUMMER=true && TEMPERATURE < 90) THEN GOOD_WEATHER = true | ||
| + | Static values specified in comparison must be a valid value for the variable or it will result in errors during generation. | ||
| ---- | ---- | ||
| - | ==== GENERATE ==== | + | ===== GENERATE |
| {{wiki: | {{wiki: | ||
| Line 90: | Line 111: | ||
| Be aware that any changes to // | Be aware that any changes to // | ||
| + | ==== Mixed Strengths ==== | ||
| By default, //Overall Strength// applies to all variables excluding //Derived// variables. In cases you wish to apply more rigorous testing than other variables. | By default, //Overall Strength// applies to all variables excluding //Derived// variables. In cases you wish to apply more rigorous testing than other variables. | ||
| {{wiki: | {{wiki: | ||
| + | |||
| + | After selecting //Mixed// strength, section //Variable Interaction (Mixed Overall Strength only)// appears. | ||
| + | |||
| ---- | ---- | ||
| - | ==== SCRIPT ==== | + | ===== SCRIPT |
| {{wiki: | {{wiki: | ||
| Line 104: | Line 129: | ||
| Refer to [[ide_script | Script Editor ]] for more information about this script editor. | Refer to [[ide_script | Script Editor ]] for more information about this script editor. | ||
| + | |||
| + | There are two types of scripts: //MAIN// and //DATA//. | ||
| + | |||
| + | //MAIN// script is the main program which executes the test cases. | ||
| + | |||
| + | //DATA// script is used to instantiate and create objects (groovy/ | ||
| + | For example, you may create a purchase order object to be posted to REST api: | ||
| + | | ||
| + | |||
| + | The order object " | ||
| + | | ||
| + | |||
| + | //INIT// script is for initialization of variables, e.g. environment, | ||
| ---- | ---- | ||
| - | ==== EXECUTE ==== | + | |
| + | ===== EXECUTE | ||
| {{wiki: | {{wiki: | ||
| Line 115: | Line 154: | ||
| The executions currently are not counted in Dashboard stats. | The executions currently are not counted in Dashboard stats. | ||
| + | |||
| + | Executions can be archived/ | ||
| + | |||
| + | Historical executions can be accessed by clicking on //Past// link. | ||