(DV-1811) Listcube Execution & Backend Testing

LISTCUBE TEST CASE EXECUTION

When a ListCube Test Case is added to the Test Plan, a new backend Test Run is automatically created, and a Run ID is generated. The description holds the technical name for the Test Plan and the Test Case. All ListCube Variants that were selected during the ListCube Test Case creation are automatically added into the ListCube Variant selection for the generated Test Run. 
To execute the ListCube Test Case from the Test Management click on  'Execute' and a screen for the ListCube Testing scenario is displayed. Please refer to 'Test Scenario EQS_LIST ' section for a more detailed description about each scenario step.

ListCube based testing

Currently there are two Test Scenarios using the ListCube functionality outputs. The ListCube testing uses the same functionality as found in the standard RSA1 'Display Data' to collect the data from the InfoProviders that is to be tested. 
Recommendations:

  • For one ListCube testing run a maximum of 5000 ListCube variants should be used.
  • Highly recommended is to use the 'Use DB Aggregation' parameter when creating the ListCube Variants. When there are multiple lines with the same key in the image, then the performance is decreased during the comparison phase of this test scenario.

Test Scenario EQS_LIST (ListCube testing)



ListCube Testing Scenario


Basic ListCube testing contains following steps:

  1. Selecting ListCube Variants
  2. Generation of before image tasks
  3. Creation of before images
  4. Performing specific tasks in system outside Validate (like conversion, migration, etc.)
  5. Generation of after image tasks
  6. Creation of after images
  7. Generation of comparison tasks
  8. Execution of comparison tasks
  9. Display of results


Select ListCube Variants

By double clicking on the first Test Step 'Select ListCube Variants' you can define which ListCube variants are to be used in the specified run for testing, or you can create new ListCube Variants, these consist of all the selected ListCube Variants for this Test Run. 
Once you have the variants selected for the Test Run you need to save the selection by clicking on the 'Save' button (Ctrl + s) in main screen of the ListCube variants selection.
You can add ListCube Variants in the following ways:
Create New ListCube Variant- You can create new ListCube Variant by clicking on 'Create New ListCube Variant' button (Shift + F1). For more information please refer to Create new ListCube Variant chapter
Add Existing ListCube Variant – You can display all of the existing ListCube variants in system and by clicking on the 'Add Existing ListCube Variant' button (SHIFT + F4), select one or more variants to be added into the Test Run. 
Add ListCube Variants of Run - By clicking on the 'Add ListCube Variants of Run' button (SHIFT + F5) you can select another (distinct from current) run, and add all of the ListCube Variants used also into the current Test Run. 
Copy ListCube Variants of Run - By clicking on the 'Copy ListCube Variants of Run' button (SHIFT + F8) you can choose another (distinct from current) run and copy the ListCube Variants into the current Test Run. 
Generate ListCube Variants - By clicking on the 'Generate ListCube Variants' button (SHIFT + F2) a dialog for the ListCube variants generation is displayed. Please refer to 'Generate ListCube Variants' chapter. 
Generate RFC ListCube Variants - By clicking on the generation ListCube variants with RFC destination is displayed. Please refer to 'Generate RFC ListCube Variants'.
Add Variants of Test Case - By clicking on the 'Add Variants of Test Case' button (SHIFT + F11) you can select from existing ListCube Test Cases and add the ListCube Variants in it also into the current Test Run. 
Copy Variants of Test Case - By clicking on the 'Copy Variants of Test Case' button (SHIFT + F12) you can select from existing ListCube Test Cases, and add all of the ListCube Variants in it also into the current Test Run as copies. 
Copy Variants - Please refer to 'Copy ListCube Variants' section for function details.

Generate tasks for before image

To generate the tasks, you can double click to execute, this will prepares the tasks for the following step 'Create before image'.

Create before images

By double clicking on this step, you first define number of background jobs to be used to create the before image for each of the specified ListCube variants. The Image creation of some ListCube variants can fail due to too many rows read. This is safety limit can be adjusted by changing the setting 'Max. ListCube image row size'. See Settings section for more details on how to change this setting. 
If Validate setting 'ListCube additional aggreg.' is set to 'X' the image that is returned from an InfoProvider during the task execution is aggregated again. This functionality can be used for cases when a ListCube returns multiple rows with same key because of unsupported functions. 
Validate is capable of handling numeric aggregation overflows. Automatic overflow handling is executed when 'ListCube additional aggreg.' is set to 'X' and aggregation of results fails because of numeric overflow. In cases of a problematic overflowing the key figure is set to 0 for all returned rows. And in cases of multiple overflowing key figures these will be set to 0. Overflow handling is always logged as if it was used. This feature enables you to create images for InfoProviders that normally would not be possible because of an overflow error on DB level. By turning off "DB Aggregation" in ListCube variants all aggregations will be performed in Validate and all non-overflowing key figures will be correctly saved in the image. "DB Aggregation" is always preferred for performance reasons and additional aggregation should be used for handling special situations. 

During additional aggregation the whole data image of returned rows from the InfoProvider needs to be loaded into memory at once. Memory restrictions of work processes can cause a fail of the task execution if these thresholds are reached during additional aggregation.

Generate tasks for after image

To generate the tasks, you can double click to execute, this will prepares the tasks for the following step 'Create after image'.

Create after images

You define the number of background jobs to be used in the creation of the after image of the specified ListCube variants. The Image creation of some ListCube variants can fail due to too many rows read. This is safety limit can be adjusted by changing the setting 'Max. ListCube image row size'. See Settings section for more details on how to change this setting. 
If Validate setting 'ListCube additional aggreg.' is set to 'X' the image that is returned from an InfoProvider during the task execution is aggregated again. This functionality can be used for cases when a ListCube returns multiple rows with same key because of unsupported functions. 
Validate is capable of handling numeric aggregation overflows. Automatic overflow handling is executed when 'ListCube additional aggreg.' is set to 'X' and aggregation of results fails because of numeric overflow. In this case problematic overflowing key figure is set to 0 for all returned rows. In case of multiple overflowing key figures all of them will be set to 0. Overflow handling is always logged if it was used. This feature enables you to create images of InfoProviders that would be not possible because overflow error on DB level. By turning off "DB Aggregation" in ListCube variants all aggregation will be done in Validate and all not overflowing key figures will be correctly saved in image. "DB Aggregation" is always preferred for performance reasons and additional aggregation should be used for handling special situations. 

During additional aggregation the whole data image of returned rows from the InfoProvider needs to be loaded into memory at once. Memory restrictions of work processes can cause a fail of the task execution if these thresholds are reached during additional aggregation. 


Generate tasks for comparison
You can specify key figures InfoObjects that are ignored during the comparison. These ignored key figure columns and are not visible in the 'Display Results' step. Generation of tasks is executed by clicking on 'Create Tasks' (F8) button. 
You can enable Automated Root Cause Analysis for comparison tasks. Refer to Automated Root Cause Analysis section for details. 



Selection of ignored key figure columns

It is not possible to ignore characteristic columns as those are used as unique keys for record matching during comparison.

Compare before and after images

You define the number of jobs/ background jobs to be used for tasks execution each of the tasks compares the before image data with the after image data for one ListCube Variant, please refer to the (Comparison logic) chapter.

Display results

You can view the outputs and their comparison results for the ListCube Variants executions, please refer to ('Results overview') chapter.

ListCube with mapping

Test Scenario EQS_SLO_L (ListCube with mapping testing)

The ListCube with mapping scenario shares many of the same steps as with the standard ListCube scenario, the difference is with the additional functions to create converted images based on the defined mappings.



ListCube with mapping - Testing Scenario


ListCube with mapping testing contains following steps:

  1. Selecting ListCube Variants
  2. Generation of before image tasks
  3. Creation of before images
  4. Defining mapping
  5. Generation of convert tasks
  6. Creation of converted images
  7. Performing specific tasks in system outside Validate (conversion, etc.)
  8. Generation of after image tasks
  9. Creation of after images
  10. Generation of comparison tasks
  11. Execution of comparisons tasks
  12. Display of results

Select ListCube Variants

By double clicking on the first Test Step 'Select ListCube Variants' you can define which ListCube variants are to be used in the specified run for testing, or you can create new ListCube Variants, these consist of all the selected ListCube Variants for this Test Run. 
Once you have the variants selected for the Test Run you need to save the selection by clicking on the 'Save' button (Ctrl + s) in main screen of the ListCube variants selection.
You can add ListCube Variants in the following ways:
Create New ListCube Variant- you can create new ListCube Variant by clicking on 'Create New ListCube Variant' button (Shift + F1). For more information please refer to 7.2.1 Create new ListCube Variant chapter. 
Add Existing ListCube Variant – You can display all of the existing ListCube variants in system and by clicking on the 'Add Existing ListCube Variant' button (SHIFT + F4), select one or more variants to be added into the Test Run. 
Add ListCube Variants of Run - By clicking on the 'Add ListCube Variants of Run' button (SHIFT + F5) you can select another (distinct from current) run, and add all of the ListCube Variants used also into the current Test Run. 
Copy ListCube Variants of Run - By clicking on the 'Copy ListCube Variants of Run' button (SHIFT + F8) you can select another (distinct from current) run, and add all of the ListCube Variants used also into the current Test Run as copies. 
Generate ListCube Variants - By clicking on the 'Generate ListCube Variants' button (SHIFT + F2) a dialog for the ListCube variants generation is displayed. Please refer to 7.2.2 ('Generate ListCube Variants') chapter. 
Generate RFC ListCube Variants - By clicking on the generation ListCube variants with RFC destination is displayed. Please refer to 7.2.3 ('Generate RFC ListCube Variants') 
Add Variants of Test Case - By clicking on the 'Add Variants of Test Case' button (SHIFT + F11) you can select from existing ListCube Test Cases and add the ListCube Variants into the current Test Run. 
Copy Variants of Test Case - By clicking on the 'Copy Variants of Test Case' button (SHIFT + F12) you can select from existing ListCube Test Cases, and the ListCube Variants into the current Test Run as copies. 
Copy Variants - Please refer to 7.2.11 ("Copy ListCube Variants") section for function details.

Generate tasks for before image

To generate the tasks, you can double click to execute, this will prepares the tasks for the following step 'Create before image'.

Create before images

By double clicking on this step, you first define number of background jobs to be used to create the before image for each of the specified ListCube variants. Image creation of some ListCube with mapping variants can fail due to too many rows read. This is safety check while this behavior can be adjusted by changing setting 'Max. ListCube image row size'. See Settings section for more details how to change this setting.

Define mapping

By clicking on this step you can define mapping that should be used to convert before images and create converted images. Currently there are two types of mapping that user can use/create.

 

Selecting mapping for image conversion


Custom mapping
By clicking on  button screen is displayed where you can specify which program and which form should be called for each row of before image that should be converted. 



Creation of custom mapping is confirmed by pressing 'Enter' button. Validate ListCube with mapping scenario expects that the called form have this parameter:

  • cs_line – changing parameter; type ANY

The cs_line parameter holds actual line that should be changed based on your custom mapping logic. 

Validate always tries to call the supplied Form once before the actual conversion of data, providing an empty line to check the correct specification of custom mapping. This first call should be ignored in your implementation of conversion Form.

It is possible to also define the following form in a program you inserted when creating custom mapping. 
Name: KATE_MAPPING_INITIALIZATION
Parameters:

  • iv_infoprov – using parameter; type RSINFOPROV
  • it_components – using parameter; type ABAP_COMPONENT_TAB

If this form exists in a custom mapping program, Validate calls it once before actual conversion of data. This way you can make decisions based on the InfoProvider name that is converted and/or components of line to be converted. 
Validate standard mapping
By clicking on  button screen is displayed (Figure 203) where you can define standard Validate mapping without need of creation of custom mapping reports. 



Validate Standard mapping creation


In each row you can define characteristic and its old value that should be changed to the new value. For each mapping rule you can define conditions that need to be satisfied for mapping to be applied (by clicking on  button). When multiple mappings can be applied on a field value based on conditions (during actual conversion) the first applicable mapping rule in the list is used.
For each row conditions can be specified. 



Setting conversion-mapping conditions


For each mapping rule row you can specify multiple conditions. Specified conditions are then combine to create one rule in following way: If there are multiple condition values for one type of characteristic these are evaluated together while using OR condition. Multiple types of characteristics are evaluated together while using AND condition. So in case of same conditions as are defined on Figure 204 the resulting condition would look like following:
IF ((0COMP_CODE = 1000 OR 0COMP_CODE = 1100) AND 0SALES_ORG = AA125) => use mapping 
If no mapping rules are specified the resulting converted image should be same as before image. 
It is possible to upload mapping rules with conditions from a CSV file. By clicking on  'Upload mapping from CSV file' button, select a CSV file from the system that contains the defined mapping.



Upload mapping from CSV


You can define the separator character that is used in the CSV file and the number of lines that should be ignored in the file from the top. The Data structure in the CSV file has to adhere to rules that are described in help text available under  'Information' button.

Generate tasks for conversion

To generate the tasks, you can double click to execute, this will prepares the tasks for the following step 'Convert Before Images'.

Converted before images

By double clicking on this step, you first define number of background jobs to be used to create the converted image for each of the specified ListCube variant before images.

Generate tasks for after image

To generate the tasks, you can double click to execute, this will prepares the tasks for the following step 'Create after image'.

Create after images

You define the number of background jobs to be used in the creation of the after image of the specified ListCube variants. Image creation of some ListCube with mapping variants can fail due to too many rows read. This is safety check while this behavior can be adjusted by changing setting 'Max. ListCube image row size'. See Settings section for more details how to change this setting.

Generate tasks for comparison

By clicking on this task you can define which already created image you would like to compare with the after image. You can either select standard before image or converted image created by use of specified mapping. 



Selection of image to be compared


After clicking on  button comparison tasks are generated in next scenario step 'Compare Images'.

Display results

You can view the outputs and their comparison results for the ListCube Variants executions, please refer to ('Results overview') chapter.