Download as xlsx, pdf, or txt
Download as xlsx, pdf, or txt
You are on page 1of 2

Page 1 code review checklist.

xls

QA sections Check Developer Review Developer Comments Reviewer Check Reviewer Comments
General ABAP
1 Production version of object is compared and adjusted(If required) before modifying any object. N/A 1-Followed 1-Followed
2 Object's source system is checked. Object should be modified in source system only. N/A 1-Followed 1-Followed
3 MOLGA conditions are used for country specific developement N/A 2-Not applicable 2-Not applicable
3 Naming standards, appropriate message class/Development class/Transport naming convention/Program header/Modification N/A 1-Followed 1-Followed
history/ has
Program to be checked.
documentation are mantained for any object modification. All the changes are mantained with search term so that it is
4 possible to track the change with ticket no N/A 1-Followed 1-Followed
Obsolete statements are not used: RANGE, INCLUDE STRUCTURE, TABLES (except for module pool), BEGIN .. OCCURS..
5 N/A 2-Not applicable 2-Not applicable
6 Global variables are minimized by declaring local variables or by passing variables through parameters and arguments while N/A 1-Followed 1-Followed
7 creating
Remove
Run Timeinternal
Dead subroutine.
Codes, Perform
analysis(SE30) Extended
and SQL Checks/Code
Trace(ST05) have toinspector
be done and do prettyreports
for complex Print. to check N/A 1-Followed 1-Followed
8 the not
Do performance
use nested ofIF..ELSEIF…
the program and database
instead time taken
use CASE..ENDCASE wherever applicable. When coding, IF or CASE, testing N/A 2-Not applicable 2-Not applicable
9 conditions are nested so that the most frequently true conditions are processed first. N/A 1-Followed 1-Followed
10 Sort fields on the SORT statement should not be left as default (i.e. SORT ITAB BY FLD1 instead of SORT ITAB). Ensure to N/A 2-Not applicable 2-Not applicable
sort the standard internal table prior to use “Binary search feature”
11 Use FIELD Symbol when modifying data into the internal table instead of work area. Do not declare field symbol with type any. N/A 2-Not applicable 2-Not applicable

12 Has the internal table used in the "FOR ALL ENTRIES IN " been checked for emptiness ? N/A 2-Not applicable 2-Not applicable
Are all SELECTs coded outside LOOP - ENDLOOP?
13 Do not forget to issue DEQUEUE on the ENQUEUED records/tables, if you are in the middle of transaction and it does not end N/A 1-Followed 1-Followed
LUW. Locks are automatically released when the statements like LEAVE PROGRAM, LEAVE TO TRANSACTION, A or X
14 message types are issued N/A 2-Not applicable 2-Not applicable

15 Avoid Hard Coding N/A 2-Not applicable 2-Not applicable


16 if new tables/reports are created as part of development,assign the auth group in that. N/A 2-Not applicable 2-Not applicable
17 When calling the class method object reference has to be checked(IF l_obj_ref_to class is not initial….) N/A 2-Not applicable 2-Not applicable
18 Try and Endtry block has to be used if in case particular calling method has exceptions N/A 2-Not applicable 2-Not applicable
19 CATCH block has to be defined for each and every exception defined for that method N/A 2-Not applicable 2-Not applicable
20 Make sure that you have called the method get_text() to capture the error message of the exception raised and is reported N/A 2-Not applicable 2-Not applicable
21 properly
Avoid calling method with out handling the Exceptions N/A 2-Not applicable 2-Not applicable
Data Access and HR related Checks N/A
Use SAP standard Function module wherever applicable.
Ex : use FM “HR_READ_INFOTYPE”, HR_INFORTYPE_OPERATION
1 N/A 2-Not applicable 2-Not applicable
2 Use Standard HR Logical databases like PNP, PCH wherever applicable. N/A 2-Not applicable 2-Not applicable
3 Do Check for authorization when reading the infotype data N/A 2-Not applicable 2-Not applicable
4 Do not use select statement within a GET event. N/A 2-Not applicable 2-Not applicable
Use SELECT SINGLE only when all the primary Key fields are checked in WHERE clause else use
5 SELECT UP to 1 ROWS N/A 2-Not applicable 2-Not applicable
Do not use Nested SELECT. Use INNER JOIN and/or .. FOR ALL ENTRIES wherever applicable but have to
6 check for existence of data in internal table that is used, retrieve all the key fields and remove duplicates. N/A 2-Not applicable 2-Not applicable
7 Use SELECT.. INTO TABLE instead of INTO CORRESPONDING FIELDS of . N/A 2-Not applicable 2-Not applicable
When processing internal tables make sure to clear the work area before you fill it e.g. in a loop statement (LOOP AT ...,
8 SELECT ... ENDSELECT), in particular when using MOVE-CORRESPONDING or INTO CORRESPONDING FIELDS OF. N/A 2-Not applicable 2-Not applicable
9 Use FIELD Symbol when modifying data into the internal table instead of work area. N/A 2-Not applicable 2-Not applicable
10 When reading Text descriptions pass the Language Key. When displaying Amount field, align the currency field N/A 2-Not applicable 2-Not applicable
Do not retrieve data using non primary key fields.. either use primary key or secondary index.
11 Follow the order of PK fields or secondary index fields in WHERE clause N/A 2-Not applicable 2-Not applicable
Report Standard
Make sure the error handling is properly done, instead of error message may be information message and “leave list
1 processing” can be used to return to selection screen N/A 2-Not applicable 2-Not applicable
In case of ALV report try to build field catalog from dictionary properties than hard coding field names, If hard coding is required
2 for Text the never use constant always text message so that it can be translated N/A 2-Not applicable 2-Not applicable
3 Try to use ALV class approach then function module approach N/A 2-Not applicable 2-Not applicable
If the report can be executed in background mode also then Error/Abend message should be replaced by
information/warning/success messages so that BASIS team don’t see the job has been cancelled. Ground rule is: No hard error
4 message in background processing N/A 2-Not applicable 2-Not applicable
Online Standard
1 The field with a “OK” format should be defined as OK_CODE. N/A 2-Not applicable 2-Not applicable
2 When handling a lock entry failure, invoke an error message (type E) to prevent the user from leaving the screen. N/A 2-Not applicable 2-Not applicable
3 AT USER-COMMAND with a dialog status is used instead of AT Pfnn in the program. N/A 2-Not applicable 2-Not applicable
In case flag variables are used to set the screen property/ program logic, don’t change them locally, rather pass them by value
4 in subroutine and document N/A 2-Not applicable 2-Not applicable
5 No error message in PBO N/A 2-Not applicable 2-Not applicable
6 Basic buttons like ‘CANCEL’, ‘BACK’, “EXIT’ etc should always work by default. N/A 2-Not applicable 2-Not applicable
Batch Program / Interface Standard
Function Module AUTHORITY_CHECK_DATASET allows to check the user's authorization to access files (with the key words
OPEN DATASET, READ DATASET, TRANSFER and DELETE DATASET). A check should be performed by calling this
1 Function module before opening a file. N/A 2-Not applicable 2-Not applicable
2 OPEN the dataset before the read/write operation, and always explicitly CLOSE the file when file processing finished. N/A 2-Not applicable 2-Not applicable
Use COMMIT WORK while database updates are done.Also wherever applicable use ROLLBACK
3 N/A 2-Not applicable 2-Not applicable
4 While doing database updates, make sure to lock the table , once updating the database, unlock the table N/A 2-Not applicable 2-Not applicable

# Internal to Wipro
Page 2 code review checklist.xls

QA sections Check Developer Review Developer Comments Reviewer Check Reviewer Comments
“Success” messages (type ‘S’, which will be output to “Job Log” when the batch programming is being processed) should be
5 used generously to provide an audit trail of the program’s execution. N/A 2-Not applicable 2-Not applicable
6 In case of outbound IDOC if any non-character values need to pass to Idoc then condense the target field. N/A 2-Not applicable 2-Not applicable
7 Don’t check Sy-subrc value after “Call Transaction”, rather check the BDC message return table. N/A 2-Not applicable 2-Not applicable
When Using BAPIs to CREATE/CHANGE any database entries, please check for the return value instead of SY-SUBRC. Also
8 use BAPI_TRANSACTION_COMMIT to commit work. N/A 2-Not applicable 2-Not applicable
Do not declare the mode in Call transaction as constant. Declare it as variable so that it can be
9 changed while debugging N/A 2-Not applicable 2-Not applicable
In case of BDC, Use ”WRITE TO” to get present logon’s default settings specially for date/currency/decimal fields. Also
conversion exit alpha output must be used prior to put data in some BDC screens where internal/external format are different
10 N/A 2-Not applicable 2-Not applicable
SAPSCRIPT/SMARTFORMS
Nice to have: Program header flower box at any of the window of sapscript and for smartforms in the initialization section. If
1 external subroutine pool is used the program header flower box must be filled N/A 2-Not applicable 2-Not applicable
2 Smartforms: Text module should be used instead of hard coding N/A 2-Not applicable 2-Not applicable
3 Standard texts should be used where the text is required to change from time to time (greetings message, footer etc) N/A 2-Not applicable 2-Not applicable
4 No spacing must be used for alignment, always use paragraph format and tabs N/A 2-Not applicable 2-Not applicable
5 Format Currency field when displaying amount field in the layout N/A 2-Not applicable 2-Not applicable
6 Language shouldn’t be sy-langu for most of the cases rather it would be nast-langu / recipient’s language N/A 2-Not applicable 2-Not applicable
7 Take a printout for the layout in the papersize specified in form header to check the accuracy. N/A 2-Not applicable 2-Not applicable
8 Relevant Standard Texts for SAPscript transferred to a Correction No. (Using standad program “RSTXTRAN”) N/A 2-Not applicable 2-Not applicable

# Internal to Wipro

You might also like