Option E.3 Code Coverage observation Selection file

In this option, you can specify the selection criteria that you want to use to extract only the observations that you are interested in. When you first select this option, you provide the name of the data set that contains the Selection file. The following screen shows this panel.


 ---------- z/OS Debugger - Code Coverage Observation Selection Criteria --------- 
 Command ===>                                                                   
                                                                                
                                                                                
 Specify the name of a code coverage observation selection criteria             
 data set that you want to create or edit.                                      
                                                                                
 The data set contains selection criteria and source markers used to select     
 code coverage observations and percentage calculations.                        
                                                                                
                                                                                
 Data Set Name:                                                                 
   Data Set Name . . . 'USERIBM.DBGTOOL.CCOBSSEL'                          
   Volume Serial . . .           (If not cataloged)                             
                                                                                
                                                                                
 Press Enter to edit the data set.                                              
 Press Exit or Cancel to exit.                                                  
                                                                                
                                                                                
                                                                                
                                                                                
  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap      
  F12=Cancel

After you provide the name of the data set, press Enter to create or modify your Selection file. The following screen shows the selection attributes panel.


------------- z/OS Debugger - Edit Code Coverage Selection Criteria -------------
Command ===>                                                                  
                                                                              
Specify code coverage observation selection criteria                          
                                                                              
Enter attribute value and comparison operator. Comparison operators           
are (E)qual, (G)reater, (L)ess, (GE) greater than or equal,                   
(LE) less than or equal, and (NE) not equal.                                  
                                                                              
Attribute name            Value        Operator             Rollup            
Run date (YYYY/MM/DD)                     (E,G,L,GE,LE,NE)                    
Run time (HH:MM:SS)                       (E,G,L,GE,LE,NE)                    
Group ID 1                COST         E  (E,NE)            N (Y/N)           
Group ID 2                BENEFIT      E  (E,NE)            N (Y/N)           
User ID                   USERIBM       E  (E,NE)            Y (Y/N)           
Load module name                          (E,NE)                              
Program name              COB01*       E  (E,NE)                              
Compile date (YYYY/MM/DD)                 (E,G,L,GE,LE,NE)                    
Compile time (HH:MM:SS)                   (E,G,L,GE,LE,NE)                    
Debug override                            (E,NE)              (Y/N)           
Total statements                          (E,G,L,GE,LE,NE)                    
Executed statements                       (E,G,L,GE,LE,NE)                    
                                                                              
                                                                              
Specify source markers for code coverage percentage analysis                  
                                                                              
Marker type: SINGLE/SECTIONBEGIN/SECTIONEND                                   
Selection:   INCLUDE/EXCLUDE                                                  
                                                                              
Marker type   Selection  Column Column String                                 
                         Start  End                                           
SINGLE        INCLUDE    73     75     PMR                                    
SINGLE        EXCLUDE    73     80     PMR11114                               
SECTIONBEGIN  INCLUDE    7      80     DEFECT123BEGIN                         
SECTIONEND    INCLUDE    7      80     DEFECT123END                           
                                                                              
                                                                              
 F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap     
 F12=Cancel

The marker section allows only five markers to be specified. If you need more than five, you need to add the additional entries by hand using the Selection file XML DTD syntax (See XML tags used in the Selection file).

Most of the field above are self-explanatory or have been described before in this document. The following section describes the operators and the meaning of the Roll-Up fields.

Operators

E = Equal

G = Greater than

L = Less than

GE = Greater or Equal

LE = Less or Equal

NE = Not Equal

Roll-up

The roll-up is a merge process. The selected observations are grouped into subgroups with all observations that have the same load module name, program name, compile date and compile time. The roll-up is then performed within each subgroup and is based on four other attributes of the observations. Each of the four attributes has a 'roll-up' option with value Yes or No. If Yes, it means that the observations are qualified for merge when the attributes are the same or different. If No, it means that observations with different values of the attribute cannot be merged. However, if they have the same value, they are qualified. The test is performed on each of the four attributes. All tests must be positive before the merge takes place. The attributes of a observation that has the roll-up option are GroupID1, GroupID2, User ID, and DBGOV (Debug override). The merge of qualified observations is to combine the executed statement lists together for generating the code coverage extracted observations. In the resultant observation after the merge process, the attributes that have the roll-up option = 'Y' show a value of '*' except the DBGOV attribute. This attribute shows a value of 'Y' if at least one of the merged observations has the DBGOV attribute = 'Y'. It shows a value of 'N' when all the merged observations have the DBGOV attribute = 'N'.

The qualified observations might come from different test cases; the executed statement lists might overlap; and, by combining together, the code coverage percentage might be improved.

Roll-up use case example

You can define the roll-up option of the four attributes as follows:

Attribute            Rollup option                           
----------           -------------
GroupID1               Y
GroupID2               Y
UserID                 Y
DbgOv                  Y    

Here are two selected observations based on the selection criteria:

# GrpID GrpID User Lmod CSECT Comp       Comp     DO tot  exec  %   
  ID1   ID2   ID        Name  Date       Time        stmt stmt
- ----- ----- ---- ---- ----- ---------- -------- -- ---- ---- ----
1 Pay1  Test1 USERIBM LMD1 PRG1  2013/04/08 10:10:20 Y  100  80   80% 
2 Pay1  Test2 USERIBM LMD1 PRG1  2013/04/08 10:10:20 N  100  50   50%

The roll-up process merges #1 and #2 together even when the values of GroupID2 and DbgOv are different because the roll-up option of the two attributes is Yes.

After the two observations are merged, the code coverage percentage becomes 90% because the executed statements in #1 and #2 overlap.