Sei sulla pagina 1di 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

General Criteria
1

Functional Design requirements

Technical Design requirements

REQUIREMENTS
OK-0
OK-0
CODE INSPECTIONS

##
##

Program Attributes
3

Yes

Title
The title is a concise description

OK-0

##

Yes

Type
The type of program is specified correctly

OK-0

##

No

Application
The ABAP application has been set following the project standards

OK-0

##

Yes

Authorization Group
The appropriate authorization group has been used following the project
standards

N/A

##

No

Package
The appropriate package has been used following the project standards

OK-0

##

Yes

Function Module
Function module assigned to appropriate function group

OK-0

##

Yes

Online Program Documentation


The Online Program Documentation provides functional leads and end
users with necessary information to determine report functionality. It also
contains information on file inputs and outputs

16

No

Program header:
- Standard program header (as per the pre-defined skeleton) for all new
programs (including Function Modules and all Include programs)

OK-0

##

17

Yes

Code Comments
Internal commenting has been made enough to ease program maintenance
and reliability of the code.

OK-0

##

18

No

Change History. Header


A chronological history of modifications has been set following the project
standards.

OK-0

##

19

No

Change History. Detail


All changes to existing code, function modules and user-exits have
appropriate notation on changes. Inserted code is blocked out with the
corresponding marks.

N/A

##

20

Yes

CUSTOM TRANSACTION
Transaction Name begins with Y or Z; same as custom ABAP
program.Description follows Report short text.
Calls Custom ABAP program which must have an Auth. Group associated to
it.
Object type: Program and selection screen (report transac

OK-0

##

21

No

CUSTOM TABLES:
Name begins with Z.Package.Delivery
Class.Environment/Tab.maint.generator. Function group Authorization

OK-0

##

Documentation
##

Naming Standards

298928427.xlsx

Page 1 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

22

No

The Naming Standards of the project have been followed (some may not
apply)
Program Name
Global Variables
Structures or PL/SQL tables
Internal Tables
Local Variables
Input Parameters in a FORM/PERFORM
Output Parameters in a FORM/PERFORM
Input/Output Param

OK-0

Comments**
##

23

No

Constants
Value of constants are not used as part of either its name or its comment.
Example: C_VA01 = 'VA01'.
All constants has a functional sense

OK-0

##

24

No

The Programming Standards of the project have been followed

OK-0

##

25

Yes

Hardcoding
Constants should be used instead of hardcoding. If the project has a table
to maintain hardcoding then this table should be used

OK-0

##

26

No

Messages
Messages use long text for extended help

27

No

Currency
Currency calculations are performed between currency fields only

28

No

Units of measure
Calculations performed on fields with the same unit of measure

29

No

Uppercase
Keywords in uppercase

OK-0

##

30

Yes

All unused variables and program parts are removed from the program

OK-0

##

31

No

Variables
TYPE preferred to LIKE

OK-0

##

32

No

Event Structure
The standard structure for ABAP report coding has been followed as
outlined in the Programming Standards documentation

OK-0

##

33

Yes

SY-SUBRC
Checked to ensure proper inputs when dealing with tables (for example:
READ TABLE, SELECT, INSERT)

OK-0

##

34

Yes

WHEN OTHERS with CASE


All CASE statements must have WHEN OTHERS to capture unexpected
errors

OK-0

##

35

Yes

CHECK / EXIT Commands


These are dangerous commands and should be avoided, especially within
USER-EXITs. These commands act much like a 'goto' statement and are
considered overloaded commands (ie, their meaning is dependent on the
context of their use)

36

No

Message Class
The message class to be used is defined either in the report line or in the
MESSAGE statement depending on the project standards

Programming Standards

298928427.xlsx

##
OK-0

##

##

##

OK-0

##

Page 2 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

37

No

Message Class and Messages


Message Class and Messages used in accordance with project or HCLAxon standards. (i.e. Messages are not created of just &&&&)

Description

Status
OK-0

Comments**
##

38

No

Text Elements
Each ABAP should have associated text elements and selection texts from
the source code placed within the Text Elements section

OK-0

##

39

Yes

Range Tables
For defining internal tables with the same structure as selection tables,
the RANGES statement should be used

40

No

Break code into logical segments for modularization into


subroutines/functions/packages whenever possible

OK-0

##

41

Yes

To pass formal parameters between modular units such as performs or


functions

OK-0

##

42

No
Yes

Local variables are used as possible.


PERFORM
Cost/Run-time: Factor 1 (Note: this is the base factor for the techniques
to follow)

##

43

44

Yes

CALL FUNCTION
Cost/Run-time: Factor 12

##

45

Yes

SELECT INTO preferred to SELECT APPEND ENDSELECT


When an internal table needs to be created directly from one database
table, the SELECT INTO is used to fill the internal table. It is faster to use
the INTO TABLE version of a SELECT statement than to u

OK-0

##

46

Yes

INTO CORRESPONDING FIELDS


This clause should be avoided, and ensure the movement of fields by the
position in the SELECT clause

OK-0

##

47

Yes

N/A

##

48

Yes

For Cluster tables, only the fields that are part of the key are qualified in
the WHERE option. The CHECK command is used to eliminate other
records

N/A

##

49

Yes

The ordering of the WHERE statements match the arrangement of the


keys in the table records

OK-0

##

50

No

Fields compared in the WHERE clause of SELECT statements have similar


types

OK-0

##

51

Yes

EQ has been specified whenever possible

OK-0

##

52

Yes

The use of negative logic in SELECTs is avoided whenever possible

OK-0

##

53

No

When using the AND or OR operator the most likely elimination criteria is
specified first. (Expressions are evaluated left to right and the evaluation
ends when the final result has been established)

54

Yes

Primary Key Used


Whenever possible, the full table key is specified and SELECT SINGLE is
specified

##

Modularization

SQL Interfaces

298928427.xlsx

WHERE CLAUSE
For Transparent or POOL tables, the SELECT statement is as fully qualified
as possible with the WHERE option, including data fields that are not part
of the key

##

APPL

<- Change value if required

##

OK-0

##

Page 3 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

55

Yes

Secondary Index Usage


When possible, in the WHERE clause the fields of the INDEX are in the
specified order and linked by the logical AND with comparisons for
equality.
A secondary index has been considered if:
1. Non-key fields or fields for which inde

Description

N/A

##

56

Yes

Nested Selects or Loops


Nested selects and loops are avoided through the use of dictionary VIEW
or by using FOR ALL ENTRIES appendage to the SELECT statement

OK-0

##

57

Yes

DB Statement within Loops


There is not any DB statement (SELECT, INSERT, UPDATE, ...) in the scope
of a loop

N/A

##

58

Yes

FOR ALL ENTRIES


When using this command, make sure that the table is not empty first

OK-0

##

59

Yes

Column Selection
SELECT statements only query the necessary columns from a table.
SELECT * is only used when more than one-third of the columns are being
used

OK-0

##

60

No

UP TO N ROWS:
When a full key is unknown and only one record is needed, the UP TO 1
ROWS appendage is added to the SELECT statement
Preferred:
SELECT FIELD1 FROM TABLE UP TO 1 ROWS.
ENDSELECT.
Avoid:
SELECT FIELD1 FROM TABLE.
EXIT.

N/A

##

61

No

Aggregates
When finding aggregates such as maximum, minimum sum, average, and
count, a SELECT list with the aggregate function is used instead of
programming the code

62

Yes

Nested Loops
Nested loops are avoided. If unavoidable, take advantage of parallel
cursor technique

OK-0

##

63
64

Yes
Yes

Unnecessary moves are avoided by using explicit Work Areas


LOOPWHERE is used instead of LOOP/CHECK

OK-0

##
##

65

Yes

For READ operations, the key fields are specified for READ access explicitly

OK-0

##

66

Yes

When performing BINARY search, the internal table must be first sorted by
the key

N/A

##

67

No

When performing direct reads, the BINARY SEARCH is used only when the
table contains more than 500 rows

72

Yes

CLEAR
Clear the header line of the internal table After DELETE
Clear the header line before ENDLOOP
CLEAR the internal table header line after APPEND

Internal Tables

298928427.xlsx

Status

Comments**

##

APPL

<- Change value if required

##
OK-0

##

Page 4 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

73

Yes

REFRESH
Internal tables are refreshed before using, not only at the beginning of the
program. It is preferred to refresh just before they are used within a
modular unit

OK-0

Comments**
##

74

Yes

FREE
The FREE command is used to release the memory allocated to internal
tables when the program is finished processing the data in the table and
when the following conditions exist:
1. The internal table is large
2. The internal table is sorted and repr

N/A

##

75
76

No
No

Preferably LOOP AT itab ASSIGNING <field symbol> is used


Use Modify Internal table TRANSPORTING f1.fn as far as possible

N/A
N/A

##
##

77
78

No
No

Append to be used instead of Collect


OCCURS
A number other than zero is only specified for the OCCURS parameter if
the required storage is less than 8 kilobytes

OK-0
OK-0

##
##

SORT
79

Yes

All SORT statements are qualified with the BY option and limited to the
fields that must be used to satisfy processing requirement

OK-0

##

80

No

Sap Code Inspector


With extended syntax check (SLIN)

OK-0

##

81
82

Yes
Yes

Perform SE30 on program


Perform ST05 to analyze SQL statements

83
84

Yes
No

Run transaction SCI.


Avoid large tables such as CDHDR, CDPOS, BSEG, MSEG, MKPF, BKPF, VBFA

85

Yes

86

General Optimization

##
##
OK-0

##
##

Does the ABAP run with appropriate no rows selected criteria and
returns immediately?

OK-0

##

Yes

Does the ABAP run quickly with an appropriate single row expected result?

OK-0

##

86
87

Yes
Yes

N/A
OK-0

##
##

88

No

Authority-checks available where needed / requested


Validate selection screen entries right away when applicable
Selection-screen for the program
- Transaction input fields such as the sales order number, purchase order
number should not be validated
- Appropriate error, warning or information messages should be displayed
- Variants should be created and included in

OK-0

##

89
90

Use IS/IS NOT INITIAL instead of hard coded comparisons


Global data declared in one place

OK-0
OK-0

##
##

91
92

Variables and constants declarations should be documented


Top Include used
Call transaction identified and described and
Call subroutine described

OK-0
OK-0

##
##

94

Data declarations as far as possible are declared using like from a DDIC.

OK-0

##

95

Parameter documented as input/output in Perform Statements and Form


Statements

OK-0

##

96

DATA statements defined locally for local variables

OK-0

##

97
98

Use TYPEs for defining duplicate structures


Set up an internal field with the VALUE option

OK-0

##
##

99

Use TYPE I for counter or loop index

OK-0

##

93

298928427.xlsx

##

Page 5 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Avoid type conversions


Consider the table type when constructing your SELECT statement

102

Within the WHERE clause, AND and OR statements exist that could be
replaced by > and < statements

103
104

Avoid unnecessary accesses into the database select


SELECT statements use as much of the primary key as possible (TRANSP
and POOL tables)

OK-0
OK-0

##
##

105

Use commit work judiciously


Read through a large table processing records in Blocks (Array processing
with OCCURS and UP TO nn ROWS)

N/A

##

N/A

##

107

Selection criteria hit on primary keys of large tables (minimizing the


search)

N/A

##

108

Large selects exist that do not match any index. Always ensure an index is
being used

N/A

##

109

Do large selects exist that do not match an index due to skipping index
fields?

N/A

##

110
111

Can these unnecessary select statements be removed?


Optimized SELECT Statements: array fetches into an internal table

N/A
OK-0

##
##

112

Where possible, avoid accessing the same data more than once

OK-0

##

113
114

Avoid selecting useless data that are filtered out later


Long SELECTs within the AT SELECTION-SCREEN event are avoided

N/A
N/A

##
##

115

MOVE
When possible, the destination operands are kept as the same data type as
the source operands

OK-0

##

116

All LOOPs, IFs, CASEs, and similar statements are broken down to their
simplest form and nesting is not complicated unless absolutely necessary

OK-0

##

117

AT preferred to ON CHANGE OF

N/A

##

118
119

CASE Preferred to IF
IF/CASE
When using the AND or OR operator the most likely elimination criterion is
specified first

OK-0
N/A

##
##

120
121

WHILE Preferred to DO
CLEAR Field for Initialization
CLEAR field is used to initialize rather than explicit moves
Table headers and work areas are CLEAR at the end of loop process

OK-0

##
##

MOVE CORRESPONDING
It's only used for small tables or tables where most, but not all, fields need
to be moved

N/A

##

106

122

OK-0
OK-0

Comments**

100
101

##
##
##

123

When all fields need to be moved and the attributes for every field and
position are identical, the table is MOVEd as a group

N/A

##

114

If there is any division in the program, then the denominator is checked


for zero before division

N/A

##

298928427.xlsx

Page 6 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

115

COLLECT
When COLLECT semantics are needed, the COLLECT command is used.
Preferred:
SELECT matnr werks lgort umlme
FROM mard
INTO (v_mard3-matnr, v_mard3-werks
v_mard3-lgort, v_mard3-umlme).
COLLECT

116

Forms declared in the order in which they are being used

##

117

Table Name
Follows standard and naming convention (ABxxxxxxxx).
Short Text
The title is a concise description

##

118

Development Class
The appropriate development class has been used.

##

119

120

Change Request
The appropriate project standard for creating and associating tasks to
change requests has been used.

120

Tables created should have:


- Delivery class A
- Client as the first key (unless client-independent)
- Maintenance view created (if to be maintained manually)
- Foreign keys should be defined
- SAP data elements used where possible
- Technical attribute

N/A

##

N/A
TABLE INSPECTION

Object Attributes

N/A

##
<- Change value if required

##

##

##

121

Technical settings (F7)


- Data class (USER or USER1 is to be used when creating new customer
tables)
- Size Category
- Buffering
Maintainability of code

120
121

Every code paragraph is preceded with proper comment


Every form has the format of SAP standard form documentation and proper
comments explaining the purpose and the parameters

OK-0
N/A

##
##

122
123

Redundant code should be removed


Translations to be done in the customer language for the error messages
provided

N/A

##
##

124

All comments are in English

OK-0

##

298928427.xlsx

Page 7 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

125
126

Text-elements should be used along with hard-coded literal


Pretty printer used for fresh developments. No pretty printer used for old
enhancements

OK-0

##
##

127
128

Ensure documentation exists


Documentation for newly created ABAP objects have been done (Eg. User
defined tables, structures, etc.).

OK-0
OK-0

##
##

129

Field name
- Standard abbreviations used
- Standard prefixes and suffixes used
- Data is grouped logically
- Adequate documentation for German fields
- Short text exists for each filed name

OK-0

##

130

Data Element
- Follows standard and naming convention (ABxxxxxxxx).xxxxxxxx SAP
field name if possible

OK-0

##

131

Domain
- Follows standard and naming convention (ABxxxxxxxx).xxxxxxxx
- Use existing domain names if possible

OK-0

##

132

Y2K-Dates
Dates are in type DATE

OK-0

##

133

Numbers
Numbers are in type NUM or QUAN

OK-0

##

134

Money
Monetary values are in type CURR

OK-0

##

Documentation

Data Naming standards

APPL

<- Change value if required

Quality

Print Programs

N/A

<- Change value if required


##

135

Print Program and Layout set Customized for a given output


Type(SPRO maintenance)

145

Header and footer texts comply with the Standard texts.(if any)

136

Code review done for all languages (if any)

146

Different language layout-set programs are triggered according to


customer-language or functional specifications.
Screen Developments

147

Screen texts should always be referred to a data element

148
149

Validations on input screen elements done using chain/endchain


PF Status created as per the spec

150

Screen numbers created as per ABAP programming standards


Plant activation

N/A

<- Change value if required

Plant activation logic has been incorporated


BDC

N/A

<- Change value if required

##

151

##
##
N/A

<- Change value if required


##
##
##
##
##
##

152
158

Input file validation done and error message displayed accordingly


F4 help given in case user is not entering any filename

153

Call transaction/BDC_SESSION method used as per the


specification

159
154

Call transaction error messages are captured in an internal table


Is sy-subrc eq. 0 checked after a transaction?

##

160

Refresh Clear bdcdata done after a call transaction

##

##
##
##

298928427.xlsx

Page 8 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

155

If BDC_SESSION method is used and if unable to open session


using BDC_OPEN appropriate message is given

161

If BDC_SESSION method is used and if unable to insert using


BDC_INSERT appropriate message is given.

156

If BDC_SESSION method is used and if unable to close session


using BDC_CLOSE appropriate message is given

Status

Comments**
##
##
##
##

Audit report displaying the records, which have been posted or not
is shown. (If required)
UNIT TEST PLAN INSPECTION

162
163
164

Complete Unit Test Plan with proper Cycles


Check that all test conditions included in functional design are included in
Unit Test Plans

##
##

165

All information is transported to the required clients/systems. In


particular, ensure client-dependient data (table contents, forms, etc) is
transported to the necessary clients/systems so that tests are propertly
carried out.

##

166

Test were conducted with HTML GUI in case the end user will use that GUI
(not PC GUI).

##

Report Criteria

APPL

<- Change value if required

167

Yes

Test all report and column headings are formatted exactly to report
specifications

N/A

##

168

Yes

Test that page headers correspond to data printed for a particular page

N/A

##

169

Yes

All fields need to be verified against transactions and database tables

OK-0

##

170

Yes

Test all logical variation in data to be reported

OK-0

##

171
172

Yes
Yes

Test every calculation


Verify that the formatting and spacing is identical to the functional design

OK-0
OK-0

##
##

173

Yes

Verify that all sorts and totals operate as specified in the functional design

OK-0

##

174

Yes

Check that every selection criteria is processed correctly

OK-0

##

175
176

Yes
Yes

Test logical combinations of selection criteria as appropriate


Report/Screen standard features:
- Line-size, line-count, heading or no-heading, defined according to list
output.
- Use standard line-sizes of 80,120 or 255 wherever necessary.
- Features like navigation, format, color, using Unit/Currency option while

OK-0
OK-0

##
##

177

Yes

If the program has selection screen, the selection fields must have value
help (F4) wherever applicable. Use standard match code objects wherever
possible.

OK-0

##

178

Yes

Top-of-page event handled for all cases. Report displayed in accordance to


it.
Ex: - If the report has to display two kinds of headers for two different
types of displays.

N/A

##

179

Yes

Correct event flow. The correct order is: Initialization->At-selection screen->Start-of-selection->end-of-selection>top-of-page

OK-0

##

298928427.xlsx

Page 9 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

180

Yes

Start of selection and end of selection events:


- Data selection done in start-of-selection
- Selected data processed after end-of-selection
- Proper error handling done providing adequate
error/warning/information messages.
- If the error or warning mess

Description

OK-0

##

181

Yes

Do not perform database validation at the at-selection screen as far as


possible.

OK-0

##

182

Yes

List processing:
- All Similar Fields are written below correct heading and in columnar
format. E.g. WRITE UNDER variant of WRITE statement to be used
- Amount fields displayed with currency key, unless specified not
- Alignment of fields Amount, qu

OK-0

##

183

Yes

If required, data is initialized in initialization event.


Interface & Conversion Criteria

184

Yes

185

Yes

186

Status

Comments**

OK-0
APPL

##
<- Change value if required

Test that data being processed are in the proper format


Test every data field through (and SAP display transaction, if applicable)
to ensure that it was properly mapped

OK-0

##

OK-1

##

Yes

Test that the data is processed in background versus transactions or BDCs


as specified in the functional design

OK-1

##

187

Yes

If applicable, test every logical variation in the data to ensure that the
screen flow continues as expected

OK-0

##

188
189

Yes
Yes

Check that data was committed to database tables properly


Test that invalid data is recognized and properly reported per the
functional specifications

OK-0
OK-0

##
##

190

Yes

Test that disaster recovery is properly handled per the functional


specifications

OK-0

##

191

Yes

If applicable, test that the object attributes are the same that in the
specified in the technical design

OK-0

##

192

Yes

Test that the number of records read are the same that in the input file

OK-0

##

193

Yes

Test that the number of records converted are the same that the read one

OK-0

##

194

Yes

Verify that the correct data entered is passed to the external system

OK-0

##

195

Yes

Test that data are exported in the correct format and sequence

OK-0

##

196

Yes

Verify that the interface handles properly all logical variation in the data

OK-0

##

197

Yes

Verify that export fields are of the correct length to handle maximum data
lengths

OK-0

##

198

Yes

Automatic generation after import option is provided in the interface


definition.

199

Yes

Data sets are written into the file with proper length specification (Using
the describe table command), in order to avoid hard coding of length.

OK-0

##

200

Yes

For files names


a) Table used to read the relevant file name
b) If no entry found in the table, default file name should be used

N/A

##

298928427.xlsx

##

Page 10 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

201

Yes

Error handling:
- Proper error handling is done as per the standards.
- Errors can either be displayed on the screen or recorded in the protocol,
as required. Errors occurring should be re-processable
- Inbound interfaces should check for blank records

OK-0

Enhancement Criteria

N/A

Comments**
##

<- Change value if required


##

202

Yes

Test every conceivable scenario in which the enhancement can be


executed. Use screen prints with detailed test scripts to clearly
document each step in the testing process.

Yes

Test cycles with multiple combinations of transactions such as


Create, Change, Print, Delete, for a particular data entity

##

203
204

Yes

Test every logical data variation

205

Yes

Test logical point at which the enhancement might be called, yet


should not be called

##
##

Yes

Verify that any information entered into the system via the
enhancement is properly committed to the database using a
combination of standard SAP forms, reports, and display
transaction

##

206

##
207

Yes

208

Validate that when an enhancement framework is ued that there


are not BADI's, function exits, etc. available that can be employed.
Form Criteria

N/A

<- Change value if required


##

Yes

A condition should be written to verify each field that is brought


into the form comes from the appropriate field

Yes

Test any calculations that are made

##
##

210

Yes

Verify that the format and spacing match that of the functional
design

211

Yes

Test the maximum length of every field to ensure that proper


format is maintained

209

OK-0
OK-n
FAIL-n
N/A
APPL

##

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required
Not Applicable
Applicable

* Critical checks constitute grounds for code rejection if criteria are not met.
** Comments are required when a criterion has not been met.

298928427.xlsx

Page 11 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors


OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

Criterion

Comment on Criterion

Status

Others

##

2
3

##
##

4
5

##
##

6
7

##
##

8
9

##
##

10
11

##
##

12
13

##
##

14
15
16

##
##
##

17
18

##
##

19
20

##
##

21
22

##
##

23
24

##
##

25
26

##
##

27
28

##
##

29
30

##
##

31
32
33

##
##
##

34
35

##
##

36
37

##
##

38
39

##
##

40
41

##
##

42
43

##
##

44
45

##
##

298928427.xlsx

Page 12 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

General Criteria
REQUIREMENTS
1

Functional Design requirements

Technical Design requirements

##
##
CODE INSPECTIONS

Program Attributes
3

Yes

Title
The title is a concise description

##

Yes

Type
The type of program is specified correctly

##

No

Application
The ABAP application has been set following the project standards

##

Yes

Authorization Group
The appropriate authorization group has been used following the project
standards

##

No

Package
The appropriate package has been used following the project standards

##

Yes

Function Module
Function module assigned to appropriate function group

##

Yes

Online Program Documentation


The Online Program Documentation provides functional leads and end
users with necessary information to determine report functionality. It also
contains information on file inputs and outputs

##

16

No

Program header:
- Standard program header (as per the pre-defined skeleton) for all new
programs (including Function Modules and all Include programs)

##

17

Yes

Code Comments
Internal commenting has been made enough to ease program maintenance
and reliability of the code.

##

18

No

Change History. Header


A chronological history of modifications has been set following the project
standards.

##

19

No

Change History. Detail


All changes to existing code, function modules and user-exits have
appropriate notation on changes. Inserted code is blocked out with the
corresponding marks.

##

20

Yes

CUSTOM TRANSACTION
Transaction Name begins with Y or Z; same as custom ABAP
program.Description follows Report short text.
Calls Custom ABAP program which must have an Auth. Group associated to
it.
Object type: Program and selection screen (report transaction)

##

21

No

CUSTOM TABLES:
Name begins with Z.Package.Delivery
Class.Environment/Tab.maint.generator. Function group Authorization

##

Documentation

Naming Standards

298928427.xlsx

Page 13 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

22

No

The Naming Standards of the project have been followed (some may not
apply)
Program Name
Global Variables
Structures or PL/SQL tables
Internal Tables
Local Variables
Input Parameters in a FORM/PERFORM
Output Parameters in a FORM/PERFORM
Input/Output Parameters in a FORM/PERFORM
Table Parameters in a FORM/PERFORM
Statics used in Subroutines (FORM/PERFORM and FUNCTION)
Parameters
Select-Options
Radio Buttons
Checkboxes
Pushbuttons
Subscreens
Combo Boxes
Frames
Field Symbols
Field Groups
Ranges
Local Internal Tables
Table Controls
Tab Strips

Status

Comments**
##

23

No

Constants
Value of constants are not used as part of either its name or its comment.
Example: C_VA01 = 'VA01'.
All constants has a functional sense

##

24

No

The Programming Standards of the project have been followed

##

25

Yes

Hardcoding
Constants should be used instead of hardcoding. If the project has a table
to maintain hardcoding then this table should be used

##

26

No

Messages
Messages use long text for extended help

##

27

No

Currency
Currency calculations are performed between currency fields only

##

28

No

Units of measure
Calculations performed on fields with the same unit of measure

##

29

No

Uppercase
Keywords in uppercase

##

30

Yes

All unused variables and program parts are removed from the program

##

31

No

Variables
TYPE preferred to LIKE

##

Programming Standards

298928427.xlsx

Page 14 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

32

No

Event Structure
The standard structure for ABAP report coding has been followed as
outlined in the Programming Standards documentation

Description

Status

Comments**
##

33

Yes

SY-SUBRC
Checked to ensure proper inputs when dealing with tables (for example:
READ TABLE, SELECT, INSERT)

##

34

Yes

WHEN OTHERS with CASE


All CASE statements must have WHEN OTHERS to capture unexpected
errors

##

35

Yes

CHECK / EXIT Commands


These are dangerous commands and should be avoided, especially within
USER-EXITs. These commands act much like a 'goto' statement and are
considered overloaded commands (ie, their meaning is dependent on the
context of their use)

##

36

No

Message Class
The message class to be used is defined either in the report line or in the
MESSAGE statement depending on the project standards

##

37

No

Message Class and Messages


Message Class and Messages used in accordance with project or HCLAxon standards. (i.e. Messages are not created of just &&&&)

##

38

No

Text Elements
Each ABAP should have associated text elements and selection texts from
the source code placed within the Text Elements section

##

39

Yes

Range Tables
For defining internal tables with the same structure as selection tables,
the RANGES statement should be used

##

40

No

Break code into logical segments for modularization into


subroutines/functions/packages whenever possible

##

41

Yes

To pass formal parameters between modular units such as performs or


functions

##

42

No
Yes

Local variables are used as possible.


PERFORM
Cost/Run-time: Factor 1 (Note: this is the base factor for the techniques
to follow)

##

43

44

Yes

CALL FUNCTION
Cost/Run-time: Factor 12

##

Modularization

SQL Interfaces

##

N/A

<- Change value if required


##

45

46

47

Yes

Yes

Yes

298928427.xlsx

SELECT INTO preferred to SELECT APPEND ENDSELECT


When an internal table needs to be created directly from one database
table, the SELECT INTO is used to fill the internal table. It is faster to use
the INTO TABLE version of a SELECT statement than to use APPEND
statements
INTO CORRESPONDING FIELDS
This clause should be avoided, and ensure the movement of fields by the
position in the SELECT clause
WHERE CLAUSE
For Transparent or POOL tables, the SELECT statement is as fully
qualified as possible with the WHERE option, including data fields
that are not part of the key

##

##

Page 15 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**
##

48

Yes

For Cluster tables, only the fields that are part of the key are
qualified in the WHERE option. The CHECK command is used to
eliminate other records

Yes

The ordering of the WHERE statements match the arrangement of


the keys in the table records

##

49

No

Fields compared in the WHERE clause of SELECT statements have


similar types

##

50
51

Yes

EQ has been specified whenever possible

##
##

52

Yes

The use of negative logic in SELECTs is avoided whenever possible

No

When using the AND or OR operator the most likely elimination


criteria is specified first. (Expressions are evaluated left to right
and the evaluation ends when the final result has been
established)

Yes

Primary Key Used


Whenever possible, the full table key is specified and SELECT SINGLE is
specified

53

54

##

##

##

55

Yes

Secondary Index Usage


When possible, in the WHERE clause the fields of the INDEX are in the
specified order and linked by the logical AND with comparisons for
equality.
A secondary index has been considered if:
1. Non-key fields or fields for which index support does not exist are
repeatedly used to make selections.
2. Only a small part of a large table is selected (<5%).
3. The WHERE condition of the SELECT is simple.
4. Fields that make up the index significantly reduce the selection set of
the records by matching the unique qualifiers in the WHERE clause.
Note: prior to creating secondary indexes, consultation with the database
administrator is required
##

56

57

Yes

Nested Selects or Loops


Nested selects and loops are avoided through the use of dictionary VIEW
or by using FOR ALL ENTRIES appendage to the SELECT statement

Yes

DB Statement within Loops


There is not any DB statement (SELECT, INSERT, UPDATE, ...) in the scope
of a loop

Yes

FOR ALL ENTRIES


When using this command, make sure that the table is not empty first

Yes

Column Selection
SELECT statements only query the necessary columns from a table.
SELECT * is only used when more than one-third of the columns are being
used

##

##
58

59

298928427.xlsx

##

Page 16 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**
##

60

No

UP TO N ROWS:
When a full key is unknown and only one record is needed, the UP TO 1
ROWS appendage is added to the SELECT statement
Preferred:
SELECT FIELD1 FROM TABLE UP TO 1 ROWS.
ENDSELECT.
Avoid:
SELECT FIELD1 FROM TABLE.
EXIT.
ENDSELECT
##
Aggregates
When finding aggregates such as maximum, minimum sum, average, and
count, a SELECT list with the aggregate function is used instead of
programming the code
Internal Tables

61

No

62

Yes

Nested Loops
Nested loops are avoided. If unavoidable, take advantage of parallel
cursor technique

##

63

Yes

Unnecessary moves are avoided by using explicit Work Areas

##

64
65

Yes
Yes

LOOPWHERE is used instead of LOOP/CHECK


For READ operations, the key fields are specified for READ access explicitly

##
##

66

Yes

When performing BINARY search, the internal table must be first sorted by
the key

##

67

No

When performing direct reads, the BINARY SEARCH is used only when the
table contains more than 500 rows

##

72

Yes

CLEAR
Clear the header line of the internal table After DELETE
Clear the header line before ENDLOOP
CLEAR the internal table header line after APPEND

##

73

Yes

REFRESH
Internal tables are refreshed before using, not only at the beginning of the
program. It is preferred to refresh just before they are used within a
modular unit

##

74

Yes

FREE
The FREE command is used to release the memory allocated to internal
tables when the program is finished processing the data in the table and
when the following conditions exist:
1. The internal table is large
2. The internal table is sorted and reprocessed several times
3. Program is processing several internal tables

##

75
76

No
No

Preferably LOOP AT itab ASSIGNING <field symbol> is used


Use Modify Internal table TRANSPORTING f1.fn as far as possible

##
##

77

No
No

Append to be used instead of Collect


OCCURS
A number other than zero is only specified for the OCCURS parameter if
the required storage is less than 8 kilobytes

##

78

SORT
79

Yes

All SORT statements are qualified with the BY option and limited to the
fields that must be used to satisfy processing requirement

##

APPL

<- Change value if required

##

General Optimization

298928427.xlsx

Page 17 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

80

No

Sap Code Inspector


With extended syntax check (SLIN)

##

81
82

Yes
Yes

Perform SE30 on program


Perform ST05 to analyze SQL statements

##
##

83
84

Yes
No

Run transaction SCI.


Avoid large tables such as CDHDR, CDPOS, BSEG, MSEG, MKPF, BKPF, VBFA

##
##

85

Yes

Does the ABAP run with appropriate no rows selected criteria and
returns immediately?

##

86

Yes

Does the ABAP run quickly with an appropriate single row expected result?

##

86
87

Yes
Yes

##
##

88

No

Authority-checks available where needed / requested


Validate selection screen entries right away when applicable
Selection-screen for the program
- Transaction input fields such as the sales order number, purchase order
number should not be validated
- Appropriate error, warning or information messages should be displayed
- Variants should be created and included in the request number
(wherever applicable)

89

Use IS/IS NOT INITIAL instead of hard coded comparisons

##

90
91

Global data declared in one place


Variables and constants declarations should be documented

##
##

92
93

Top Include used


Call transaction identified and described and
Call subroutine described

##
##

94

Data declarations as far as possible are declared using like from a DDIC.

##

95

Parameter documented as input/output in Perform Statements and Form


Statements

##

96
97

DATA statements defined locally for local variables


Use TYPEs for defining duplicate structures

##
##

98
99

Set up an internal field with the VALUE option


Use TYPE I for counter or loop index

##
##

100
101

Avoid type conversions


Consider the table type when constructing your SELECT statement

##
##

102

Within the WHERE clause, AND and OR statements exist that could be
replaced by > and < statements

##

103

Avoid unnecessary accesses into the database select


SELECT statements use as much of the primary key as possible (TRANSP
and POOL tables)

##

105
106

Use commit work judiciously


Read through a large table processing records in Blocks (Array processing
with OCCURS and UP TO nn ROWS)

##
##

107

Selection criteria hit on primary keys of large tables (minimizing the


search)

##

108

Large selects exist that do not match any index. Always ensure an index is
being used

##

109

Do large selects exist that do not match an index due to skipping index
fields?

##

110
111

Can these unnecessary select statements be removed?


Optimized SELECT Statements: array fetches into an internal table

##
##

104

298928427.xlsx

Description

Status

Comments**

##

##

Page 18 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

112

Where possible, avoid accessing the same data more than once

##

113
114

Avoid selecting useless data that are filtered out later


Long SELECTs within the AT SELECTION-SCREEN event are avoided

##
##

115

MOVE
When possible, the destination operands are kept as the same data type as
the source operands

##

116

All LOOPs, IFs, CASEs, and similar statements are broken down to their
simplest form and nesting is not complicated unless absolutely necessary

##

117
118

AT preferred to ON CHANGE OF
CASE Preferred to IF
IF/CASE
When using the AND or OR operator the most likely elimination criterion is
specified first

##
##

WHILE Preferred to DO
CLEAR Field for Initialization
CLEAR field is used to initialize rather than explicit moves
Table headers and work areas are CLEAR at the end of loop process

##

121

122

MOVE CORRESPONDING
It's only used for small tables or tables where most, but not all, fields need
to be moved

119

120

##

##

##

123

When all fields need to be moved and the attributes for every field and
position are identical, the table is MOVEd as a group

##

114

If there is any division in the program, then the denominator is checked


for zero before division

##

115

COLLECT
When COLLECT semantics are needed, the COLLECT command is used.
Preferred:
SELECT matnr werks lgort umlme
FROM mard
INTO (v_mard3-matnr, v_mard3-werks
v_mard3-lgort, v_mard3-umlme).
COLLECT v_mard3 into I_mard3.
ENDSELECT.

##

Avoid:
SELECT matnr werks lgort umlme
FROM mard
INTO (v_mard-matnr, v_mard-werks
v_mard-lgort, v_mard-umlme).
APPEND v_mard to i_mard.
ENDSELECT.
LOOP at I_mard3 into v_mard3
COLLECT v_mard into I_mard2.
ENDLOOP

116

Forms declared in the order in which they are being used

##
TABLE INSPECTION

Object Attributes

298928427.xlsx

N/A

<- Change value if required

Page 19 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

Table Name
Follows standard and naming convention (ABxxxxxxxx).

##

117

Short Text
The title is a concise description

##

118

Development Class
The appropriate development class has been used.

##

119

120

Change Request
The appropriate project standard for creating and associating tasks to
change requests has been used.

120

Tables created should have:


- Delivery class A
- Client as the first key (unless client-independent)
- Maintenance view created (if to be maintained manually)
- Foreign keys should be defined
- SAP data elements used where possible
- Technical attributes correct

##

##

##

121

Technical settings (F7)


- Data class (USER or USER1 is to be used when creating new customer
tables)
- Size Category
- Buffering
Maintainability of code

120
121

Every code paragraph is preceded with proper comment


Every form has the format of SAP standard form documentation and proper
comments explaining the purpose and the parameters

##
##

122
123

Redundant code should be removed


Translations to be done in the customer language for the error messages
provided

##
##

124
125

All comments are in English


Text-elements should be used along with hard-coded literal
Pretty printer used for fresh developments. No pretty printer used for old
enhancements

##
##

126

##

Documentation
127
128

Ensure documentation exists


Documentation for newly created ABAP objects have been done (Eg. User
defined tables, structures, etc.).
Data Naming standards

##
##
N/A

<- Change value if required


##

129

Field name
- Standard abbreviations used
- Standard prefixes and suffixes used
- Data is grouped logically
- Adequate documentation for German fields
- Short text exists for each filed name

130

Data Element
- Follows standard and naming convention (ABxxxxxxxx).xxxxxxxx SAP
field name if possible

##

##

131
132

298928427.xlsx

Domain
- Follows standard and naming convention (ABxxxxxxxx).xxxxxxxx
- Use existing domain names if possible
Quality
Y2K-Dates
Dates are in type DATE

##

Page 20 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

133

Numbers
Numbers are in type NUM or QUAN

##

134

Money
Monetary values are in type CURR

##

Print Programs

N/A

<- Change value if required


##

135

Print Program and Layout set Customized for a given output


Type(SPRO maintenance)

145
136

Header and footer texts comply with the Standard texts.(if any)
Code review done for all languages (if any)

146

Different language layout-set programs are triggered according to


customer-language or functional specifications.
Screen Developments

147

Screen texts should always be referred to a data element

148

Validations on input screen elements done using chain/endchain

149

PF Status created as per the spec

150

Screen numbers created as per ABAP programming standards


Plant activation

N/A

<- Change value if required

151

Plant activation logic has been incorporated


BDC

N/A

<- Change value if required

##
##
##
N/A

<- Change value if required


##
##
##
##
##
##

152

Input file validation done and error message displayed accordingly

158

F4 help given in case user is not entering any filename

153

Call transaction/BDC_SESSION method used as per the


specification

159

Call transaction error messages are captured in an internal table

154
160

Is sy-subrc eq. 0 checked after a transaction?


Refresh Clear bdcdata done after a call transaction

##
##

If BDC_SESSION method is used and if unable to open session


using BDC_OPEN appropriate message is given

##

155
161

If BDC_SESSION method is used and if unable to insert using


BDC_INSERT appropriate message is given.

156

If BDC_SESSION method is used and if unable to close session


using BDC_CLOSE appropriate message is given

##
##
##

##
##
##

Audit report displaying the records, which have been posted or not
is shown. (If required)
UNIT TEST PLAN INSPECTION

162
163

Complete Unit Test Plan with proper Cycles


Check that all test conditions included in functional design are included in
Unit Test Plans

##

165

All information is transported to the required clients/systems. In


particular, ensure client-dependient data (table contents, forms, etc) is
transported to the necessary clients/systems so that tests are propertly
carried out.

##

166

Test were conducted with HTML GUI in case the end user will use that GUI
(not PC GUI).

##

164

Report Criteria

##

APPL

<- Change value if required

167

Yes

Test all report and column headings are formatted exactly to report
specifications

##

168

Yes

Test that page headers correspond to data printed for a particular page

##

298928427.xlsx

Page 21 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

169

Yes

All fields need to be verified against transactions and database tables

Description

##

170
171

Yes
Yes

Test all logical variation in data to be reported


Test every calculation

##
##

172

Yes

Verify that the formatting and spacing is identical to the functional design

##

173

Yes

Verify that all sorts and totals operate as specified in the functional design

##

174

Yes

Check that every selection criteria is processed correctly

##

175
176

Yes
Yes

Test logical combinations of selection criteria as appropriate


Report/Screen standard features:
- Line-size, line-count, heading or no-heading, defined according to list
output.
- Use standard line-sizes of 80,120 or 255 wherever necessary.
- Features like navigation, format, color, using Unit/Currency option while
writing Quantity/Currency fields should be present

##
##

177

Yes

If the program has selection screen, the selection fields must have value
help (F4) wherever applicable. Use standard match code objects wherever
possible.

##

178

Yes

Top-of-page event handled for all cases. Report displayed in accordance to


it.
Ex: - If the report has to display two kinds of headers for two different
types of displays.

##

179

Yes

Correct event flow. The correct order is: Initialization->At-selection screen->Start-of-selection->end-of-selection>top-of-page

##

180

Yes

Start of selection and end of selection events:


- Data selection done in start-of-selection
- Selected data processed after end-of-selection
- Proper error handling done providing adequate
error/warning/information messages.
- If the error or warning message needs more explanation then Long Texts
are to be used.

##

181

Yes

Do not perform database validation at the at-selection screen as far as


possible.

##

182

Yes

List processing:
- All Similar Fields are written below correct heading and in columnar
format. E.g. WRITE UNDER variant of WRITE statement to be used
- Amount fields displayed with currency key, unless specified not
- Alignment of fields Amount, quantity fields to be aligned right, Name,
description fields to be aligned left, etc
- All the events in the pf-status used shall be handled
- Hotspots used at line-selection event
- Correct color formatting to be used
- SY-PAGNO cleared before any new print or leave to list-processing
- At-user selection event handled

##

183

Yes

If required, data is initialized in initialization event.


Interface & Conversion Criteria

184

Yes

298928427.xlsx

Test that data being processed are in the proper format

Status

Comments**

##
N/A

<- Change value if required


##

Page 22 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

Yes

Test every data field through (and SAP display transaction, if


applicable) to ensure that it was properly mapped

##

185

Yes

Test that the data is processed in background versus transactions


or BDCs as specified in the functional design

##

186

Yes
Yes

If applicable, test every logical variation in the data to ensure that


the screen flow continues as expected
Check that data was committed to database tables properly

##

187
188

##

189

Yes

Test that invalid data is recognized and properly reported per the
functional specifications

Yes

Test that disaster recovery is properly handled per the functional


specifications

##

190

Yes

If applicable, test that the object attributes are the same that in
the specified in the technical design

##

191

Yes

Test that the number of records read are the same that in the input
file

##

192

Yes

Test that the number of records converted are the same that the
read one

##

193

Yes

Verify that the correct data entered is passed to the external


system

##

194
195

Yes

Test that data are exported in the correct format and sequence

Yes

Verify that the interface handles properly all logical variation in the
data

##

196

Yes

Verify that export fields are of the correct length to handle


maximum data lengths

##

197

Yes

Automatic generation after import option is provided in the


interface definition.

##

198

Yes

Data sets are written into the file with proper length specification
(Using the describe table command), in order to avoid hard
coding of length.

Yes

For files names


a) Table used to read the relevant file name
b) If no entry found in the table, default file name should be used

##

##

199

##

##

200

##

Error handling:
- Proper error handling is done as per the standards.
- Errors can either be displayed on the screen or recorded in the
protocol, as required. Errors occurring should be re-processable
- Inbound interfaces should check for blank records in the input file.
- Outbound interfaces should not have any blank lines in the output
file.
201

Yes
Enhancement Criteria

N/A

<- Change value if required


##

202

Yes

Test every conceivable scenario in which the enhancement can be


executed. Use screen prints with detailed test scripts to clearly
document each step in the testing process.

Yes
Yes

Test cycles with multiple combinations of transactions such as


Create, Change, Print, Delete, for a particular data entity
Test every logical data variation

##

203
204

##

Yes

Test logical point at which the enhancement might be called, yet


should not be called

205

298928427.xlsx

##

Page 23 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:

Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**
##

206

Yes

Verify that any information entered into the system via the
enhancement is properly committed to the database using a
combination of standard SAP forms, reports, and display
transaction
##

207

Yes

208

Validate that when an enhancement framework is ued that there


are not BADI's, function exits, etc. available that can be employed.
Form Criteria

N/A

<- Change value if required


##

Yes
Yes

A condition should be written to verify each field that is brought


into the form comes from the appropriate field
Test any calculations that are made

##

210

Yes

Verify that the format and spacing match that of the functional
design

211

Yes

Test the maximum length of every field to ensure that proper


format is maintained

209

OK-0
OK-n
FAIL-n
N/A
APPL

##

##

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required
Not Applicable
Applicable

* Critical checks constitute grounds for code rejection if criteria are not met.
** Comments are required when a criterion has not been met.

298928427.xlsx

Page 24 of 25

SAP Code and Unit Test Review

Client:
Project:
RICEFW ID:
Description:
Programmer:
Reviewed by:
Date Reviewed:
Rejections Number:
Errors Number:

##
##

Open Critical Errors

OK-0
OK-n
FAIL-n

The criterion is met without further rework


The criterion is met after n-times rework
The criterion is not met after n-times rework. Some more rework is required

N/A
APPL

Not Applicable
Applicable

Critical*

Description

Status

Comments**

Criterion

Comment on Criterion

Status

Others

##

2
3

##
##

4
5

##
##

6
7

##
##

8
9

##
##

10
11

##
##

12
13

##
##

14
15
16

##
##
##

17
18

##
##

19
20

##
##

21
22

##
##

23
24

##
##

25
26

##
##

27
28

##
##

29
30

##
##

31
32
33

##
##
##

34
35

##
##

36
37

##
##

38
39

##
##

40
41

##
##

42
43

##
##

44
45

##
##

298928427.xlsx

Page 25 of 25

Potrebbero piacerti anche