Reading:
Checklist for Testing Web Page Functionality
Share:

Checklist for Testing Web Page Functionality

Read "Checklist for Testing Web Page Functionality" by Lena Pejgan Wiberg in Ministry of Testing's Testing Planet

By Lena Pejgan Wiberg

The first version of this checklist for Testing Web Page Functionality was created as a very passive-aggressive way of telling the team I was working with at the time to stop making me find the same (types of) bugs over and over again. It was a horrible idea that, in the end, actually turned out to be super useful.

From it came many discussions, a few conference talks and the foundations of a few training sessions. It represents a simplified version of my mental model of things I ‚Äúauto-magically‚ÄĚ check, things I ask questions about, things I teach others.

This checklist is focused on web applications but a lot of it can be used for desktop applications, apps, services, messages or even mainframes. Some points¬†will be clear on how to check, some might require some thought, and some could¬†need you to learn something you've never heard of before, or thought was possible to check without being ‚Äúan expert‚ÄĚ.

Please use it, download it below, and be sure to adapt it to your unique context. Use it as a foundation and build from it.

Happy testing out there!

Boundary values

  Minimal value/length
¬†¬†Minimal value/length ‚Äď 1
  Maximum value/length
  Maximum value/length + 1

Text fields (all formats)

   Non-ASCII characters (could be Swedish characters, Russian characters)
  Copy/paste
  Drag/drop
  Leading/trailing space
  Line break
  Tabs
  NULL value
  Blank or empty
  HTML-tags
  Special characters (such as<!#$|%)
  Mandatory fields
  Minimum and maximum length

Numerical fields

  Non-ASCII
  Non-numerics
  NULL value
  Blank or empty
  Negative numbers
  Zero (0)
  Decimal numbers in integer fields
  Overflow: Numbers that are bigger than the data type used
  Different numerical formats (metric, Pound etc)
  Numerical separators (ex. 1000 vs 1.000 vs 1,000 vs 1 000)
  Division by zero

Date & Time

  Date/time in the future
  Date/time in the past
  Invalid dates/time (such as day 32, month 13, hour 25, minute 61, second 61)
  Bank holidays, weekends and regular weekdays
  Leap year/Leap day
  Summer and winter solstice (26: e mars kl 02-03 and 29: e October 02-03)
  Different date and time formats
  Time zones

Navigation & Lists

  Back/forward button
  Lists: Column sorting (if implemented)
  All list objects: Sorting alphabetically vs. numerically*
  Empty lists
  Very large lists
  Paging: Sort order should work on the complete list, not per page
  Paging: Go to first page and try to move backwards
  Paging: Go to last page and try to move forwards

*If a numerical field is sorted as a string, the sort order will be alphabetical, which will probably not be the expected result

Usability

  Consistent language
  Consistent use of fonts
  Correct alignment of text, numbers and fields
  Correct spelling and grammar
  Correct tab order
  Error messages (language, spelling, grammar
  Objects have a consistent shape and size (buttons, images etc)
  Inactive links and objects are clearly disabled (grey, toned down, not shown)
  No broken links, images or objects
  Test with different screen sizes
  Test with different browsers
  Test with different devices
  Scroll bars are not shown if not needed
  Scroll bars are shown if needed
  Windows can be resized without losing functionality

Non-functional

  Performance under normal load
  Performance under a reasonable high load
  Performance under pressure (x times the normal load)
¬†¬†Concurrent use ‚Äď multiple users executing the same action
  Slow network speed/bandwidth
¬†¬†Multi-threading ‚Äď multiple users executing different actions
¬†¬†Transactions ‚Äď can the system safely revert failed transactions
¬†¬†Queues ‚Äď can the system safely handle transactions queueing up
  Time outs
  Can the system handle an integration goes down during a transaction?
  Can the system handle if an integration is down when the transaction starts

Security

  SQL Injections
  Cross Side Scripting (XSS)
  Unexpected errors: The system must not show information about server, database etc
  Verify access handling: all existing roles
  Session variables can’t be accessed/manipulated, for example via address bar
  Cookies are saved encrypted and cannot be read/manipulated
  You cannot access other users’ documents, accounts, orders etc

Accessibility (WCAG)

  Pictures have an alt-text
  Pictures that lack importance have an empty alt-text
  Pictures are not used to represent only textual content
  Pictures are not used to represent only textual content
  Colour is not used as the single way of identifying visual content, such as links
¬†¬†No instructions rely solely on shape, size or placement (such as‚ÄĚ click the square icon‚ÄĚ or‚ÄĚ see instruction to the right‚ÄĚ
  The title of the page can be understood outside of its context
  All elements are accessible through the keyboard
  It is clearly shown what object is active
  The document follows a clear and logical structure
  It is possible to move directly from the page header to the page main content (this avoids headers and menus to be re-read if the page reloads)
  Links and buttons with the same text but different targets are uniquely identifiable
  Tables are not shown for layout purposes only
  When an element gets the focus/is activated, the page does not change in a way that might confuse a user (such as a popup opening or keyboard focus changes)
  No big validation errors in the HTML/XHTML code
  Forms use the correct label for every element
  Field validations use label and/or title to tell user of errors
  There are enough labels/guides/instructions for all mandatory interactive elements on the page
  Validation errors, such as incorrect values, are shown with a suggestion of how to correct the error
  Any video/sound content has textual alternatives explaining the content
  All sound > 3 seconds can be paused/stopped/volume adjusted
  All blinking or moving content > 5 seconds can be paused/stopped/volume adjusted
  No content blinks more than 3 times per second (if this cannot be avoided: small, low contrast and not red)
  If a page has a time out of less than 20 hours, the user gets prompted and allowed to renew, close or adjust the time limit

Author Bio:

Lena has been in the IT-industry since 1999 when she got her first job as a developer. Testing and requirements have always been a part of her job but in 2009 she decided to take the step into testing full-time and she has never looked back since. Lena has worked as a single tester, test lead, test manager, senior test manager, test strategist and manager. She is also involved with the software testing education in Sweden, both as chairman for one of the schools and by mentoring interns to give them the best internship possible. Lena lives in a big house filled with gaming stuff, books, sewing machines and fabric. Gaming is a big thing for everyone in the family and something she loves talking about. Biggest achievement: the Dance Dance Revolution-machine taking up half of her living room-space.

Discussion: Accessibility, Diversity and Inclusion
Accessibility for beginners with Elizabeth Fiennes
Making Your Presentations More Accessible
Explore MoT
30 Days of AI in Testing
Upgrade Your Testing Game with the 30 Days of AI in Testing Challenge!
Introduction To Accessibility Testing
Learn with me about what Accessibility is, why it's important to test for and how to get your team started with an Accessibility testing mindset
  • Deborah Reid's profile