Mar 16, 2010

Developer's preliminary checklist before code submission for testing

To impose more responsibility to our developers, made a checklist. This is basically a quick checklist we are suggesting to follow before they push their code for testing. Undoubtedly, this has improved the application quality and reduced some load for testing guys!

Some of these are very specific to our web application, may not be applicable for others -


1. Working features: Make sure all the features, you have just developed, works correctly - one feature did not break other.

2. Field length: Be aware of Database field length for corresponding UI fields. For text fields and text boxes, length must be smaller than Database field length (about 10 characters smaller for every 100 char in db). This is needed for dealing with multi-byte character set.

3. Field validation: Required field and other business validation

4. Required field indication: Must have red asterisk

5. Labels: Labels and messages from Application Resource properties file

6. Spelling: Use correct spelling. No typo.

7. Alignment: Fields and labels should be left aligned.

8. Blank space: No space before 'colon' and 'comma' - use space after comma.

9. Default sort order: For any list, there should be a default sort order

10. URL tempering: Access checking on each page, or something similar to make sure user is allowed to see the page he is requesting.

11. HTML and JavaScript escaping

12. JavaScript error: Check for any JavaScript error in the page.

13. Buttons: Button's position. Proper use of 'Back' and 'Cancel'

14. Date: Proper formatting of date

15. Time Zone: Application of Time Zone where Date is there

16. Activity Tracking: For important actions, ensure 'Activity Tracking' to log user activities

17. Placement of Access Link: Place access links in proper places for users

18. Clear user friendly messages: All confirmation, alert and warning messages

19. Access Control/Privilege Checking: For important business information which depends on user privilege, make sure, list that user sees, are based on their access privileges

20. SQL injection: Use bind variables to avoid SQL injection

21. Double submission problems: What happens when user re-submit the request - handle properly.

22. Invalid Request: Handle bookmarks or other invalid requests

23. Cross browser compatibility: Check for at least two browsers - Firefox 3.5 and IE7


***