Monday, 3 February 2014

Common testing checklist for Web Application

   BROWSER & RESOLUTION TESTS

            ACTION
    EXPECTED RESULT
           COMMENTS
Test the application on various browsers

Application must work same way in all popular browsers - IE, Firefox etc

For intranet apps this may not be enforced

Test page on various display resolutions - 640x480, 800x600 etc.,

Presentation of page must work OK in all resolutions; they all must appear and act similarly


Test application under same exact environment(s) as the client has

It is very important to create a software environment that is exactly the same as what the user has; if user has more than one software environment, then we need to create each of those. Our app must function OK in each of these

Included in software environment: OS version, runtime software versions, DB Versions, Browser versions, 3rd party software versions etc.,

                                               
                                                              DATA ENTRY TESTS
              ACTION
      EXPECTED RESULT
           COMMENTS
Select 'Submit' without entering required fields

Must report validation error


Hit Tab key

Must move field to field in right order

When there are multiple columns, the shift should happen from top to down and left to right.

Press 'Enter' in any text field

Must trigger 'Submit' button

In some cases, Submit may not be the default button

Enter data in page by using only keypad and not using a mouse.

User must not need to use the mouse; must be able to perform all actions with just keypad


Select combo-box

Must bring up list of values


Add/Update with trailing/leading spaces in text boxes

Spaces must be trimmed before storing in DB


Enter invalid date in date field

Must give date validation error


Enter invalid data in numeric field

Must give numeric validation error


Enter value in password field

Must appear hidden (with asterisks)


Enter invalid data in email field

Must give validation error

In some apps, this may not be required

Enter wrong password in 'Re-type Password' field

Must give validation error


Add a new record without entering any value in any of the fields

Must give validation error

Most pages will designate some fields as mandatory

Delete record

Must ask for confirmation

In some apps, this may not be needed

Delete a parent record while child records still exist; or a record which has dependency records

(1) An error warning that child records must be deleted first must be displayed. Or (2) A confirmation msg asking if child records must also be deleted must be displayed; when user confirms, parent & child records must be deleted.  Similar test while deleting a record which has other records that depend on it (not necessarily child records)

No loss of integrity must result as a result of the delete

Do non-case sensitive search

Must find records regardless of uppercase/lowercase

In some apps, search may be case-sensitive

During Login, enter wrong password

Must simply report 'Invalid LogIn - Please retry' type message. Must not give away too much info such as 'Username OK but password is wrong etc.'

Some apps do indicate user name is OK but password is wrong

Check Values in Combo Boxes

Values in combo-boxes must be sorted


Bring up data-entry page; check default values selected for radio buttons

Radio Buttons (such as Yes/No) must be preselected with the most appropriate default values

In some cases, no value is selected as default.

Add new record; before submitting, print page; now Submit; next, bring up the record you just added

Check to see if the page is brought up with ALL the values you entered; compare with the printed page.


Bring up record; make changes to selected fields; before submitting, print page; mark the values youchanged; now Submit; next, bring up the record you just modified

Check to see if the page is brought up with ALL the new values you updated; other values must remain the same; compare with the printed page.

In some cases, other values may change depending on data-dependency

Add/update record; now go to DB and check the last update timestamp/user, if any

Last Update Timestamp and user must be properly updated


Add new record with a key value that is already in the DB

Must get a suitable validation message such as "Part A23T already exists. Please retry with a different Part number"


Test Boundary conditions - If a text box is allowed a max of 20 lines, enter 20 lines

Scroll bar must appear; the entire string must be updated to DB


Test Boundary conditions - If a field can take 50 chars, enter 50 chars  in the text box

All 50 chars must be stored in DB; text box must show all 50 chars;if it is a larger length/text area, scroll bars must appear as needed


On Data entry screens enter valid values for all fields

All values entered must be stored in DB; they must also appear in Update forms and Reports properly


Try to cheat system and enter a dup value; Bring up an existing record; try changing the key value to something that is already in the database.

Must get a suitable validation message such as "Part A23T already exists. Please retry with a different Part number"

Some apps will display key values as read-only so that user cannot update them
Try to break the system; bring up record to update; now bring up record in another session and try to delete that record

A confirm delele message must come up and after that Delete will delete record; when you go to the prev session and do a Submit, you will get a message such as "Part A23T has been deleted"



Bring up a record to update; make changes but don't submit; open another session and bring up same record for update; make some changes and submit; now go back to prev session and submit that change. Bring up the record and check the changes

Changes from both sessions must be seen


Do something that is expected to take more than a few seconds - eg., complex search etc.,

Must get a message such as "Updating…" "Please wait…" etc.,

Must not leave user wondering what is happening
Do a search; check the results

Search results must be sorted in a meaningful order


Usually alpha-numeric sort

Search for a string with 2 words with more than one blank space in between - such as "John   Doe"

Number of spaces in between words must not affect the search results


Search for a string with leading/trailing spaces

Leading/trailing spaces must not affect the search results


Visit a data-entry page and enter values with single and/or double quote or other special charaters like % or *

Must update DB successfully

If not properly coded, this action will throw a DB error

Select 'Printer Friendly Version' and do a print

Printed page must be as 'friendly' as expected


Try to break in. Do not login. Visit/link to a page that requires that you be logged in.

You must be redirected to the Login page with an optional message "Please login"


Change password; logout; log back in with new password

New password must log you in; old password must give error


Visit a page that displays a list of records containing 2 or more pages

First page must display a 'Next' button' Last page must display a 'Prev' button; all other pages must display both buttons


Visit a page that displays a list of records

List must show all expected records; list must be sorted in a meaningful order


Pick a page that displays a list of records with each column header acting as a sort button; select each column header to sort the list in asc/desc order

List must be sorted alternately in asc/desc order of the selected column

In some designs, the selected column must also  display 'asc' or 'desc' next to the col header; sometimes it could be up/down arrow symbols

Do a Search for a string that contains special characters like %, * or single/double quotes

Search must function properly

If not properly coded, this action will throw a DB error

Do the 'monkey test' - Close your eyes and hit keys randomly

No matter what you type, page must not crash. It is OK to get a validation error etc but not page/program crash.


                                               LINKS & BUTTON TESTS

             ACTION
     EXPECTED RESULT
             COMMENTS
Select each hyperlink in the page

Each hyperlink must take you to the intended page


Select 'Reset' button

Must clear all values entered/changed so far


Test Cancel button, if any

Check to see if Cancel does what it is supposed to do - usually this will cancel out what was done and take you back where you came from


Select [Browse…] button

Must bring up dialog box to select file


Make changes to the data in the page and click buttons that will navigate away from this page.

You must get a warning such as "Changes you made will be lost. Do you want to continue?". If you say yes,it should move out of the page. If you say No, it should stay in the same page.


Check if links work

Every hyperlink must do something. Cannot be dead or cannot crash the page.



                                                        PAGE LOAD TESTS

             ACTION
     EXPECTED RESULT
             COMMENTS
Bring up the page and allow it to load completely.

Cursor must be parked on first data entry field

For e.g. in a login page, the focus should be set to the Username field.


                                                                
                                                 LOOK & FEEL TESTS

             ACTION
     EXPECTED RESULT
             COMMENTS
Check spelling, typos in the page - labels, text, buttons - everywhere

Must not have any bad spelling, grammar in any of the text in the page


Check the language used in validation error messages

Validation error messages must be clear and friendly. Must not say cryptic/techie things. Msg must clearly inform user what he/she needs to do.


Check alignment of fields/labels in page/screen

Fields/Labels must be aligned nicely. This is a visual check


Check alignment used for numeric values in lists/grids

Numeric values must be right-aligned

Exception: User requires it differently

Check alignment used for text values in lists/grids

Text values must be left-aligned

Exception: User requires it differently

Check placement of buttons

Buttons imust be spaced evenly starting from left most part of page

Exception: User requires it differently

Check page title/name in browser

Name must be set and must refer to the page


Look for element styles.

Every text element in the page should be of same style

For e.g. the text inside a combo box, textbox, labels etc.


                                                                     GRID TESTS


             ACTION
     EXPECTED RESULT
             COMMENTS
Check names of columns in lists/grids/table

Column names must be English-like and must not sound technical. They must certainly not be just the same names as in the database


Look for data alignments in various column of the grid.

1). String values should be left aligned.
2). Fixed length data can be center aligned.
3). Numeric data should be right aligned.
4). Currency data should be right aligned and number of decimal places should not exceed three digits.
5). Yes or No data should be center aligned.



Look for column width

The width of any column should be meaningful.  Narrow the column if it is going to take only small sized data.


Look for column headers

Usually the header texts are center aligned.


Try sorting any column that is sortable

The sorting should work fine.  In some cases, there may be multiple column sorts, do pay attention to that.


Check paging operation in grid

Navigate to different pages in a grid and try doing the sorting especially from the last page.



                                                                         SECURITY TESTS
             ACTION
     EXPECTED RESULT
             COMMENTS
Use the browser back button to get to a secure page such as payment pages.

The application should disable the back button in this case and should not allow the user to get to the page using the back button.


Leave a secure page without attending for 30 minutes to expire the session.  Click on the buttons.

The page should not crash instead it should take the user to the login page with a message saying 'Your session has expired.'


Change the value of the parameters in the url manually and hit enter.

The page should not crash instead it should bring up a friendly error page saying the url parameters are invalid.



No comments:

Post a Comment