Web Application Testing Checklist

The Web Application Testing Checklist You Always Wanted To Know

In a world where life is becoming increasingly dependent on facilities, services, and information that are available on the internet, organizations cannot escape from the creation of meaningful websites and web applications in order to thrive profitably. A well-functioning, user-friendly, accessible, and attractive website has, thus, become a must today. Apart from this, it is imperative to have a bug-free web application, and potential security threats should also be systematically checked for.
So, we see that there is a growing need for web application testing to be comprehensive and thorough.

A web application testing checklist comprises all the tests that an organization should be conducting for their web application before it goes live and is made available for customers to use. Potential issues and glitches need to be identified and rectified, and systems need to be made orderly and efficient before the application reaches its target audience. It is much like an audit for the said web application.

The following checklist gives a glimpse into what are generally considered to be the important types of testing to be undertaken before floating web applications in the market. A word of caution here: though this is accepted to be a comprehensive list of tests, the final call has to be taken based on the web application being tested.

  1. Functionality testing
  2. Usability testing
  3. Accessibility testing
  4. Interface testing
  5. Security testing
  6. Performance testing
  7. Compatibility testing

Web Application Testing Checklist

Let us look at each of the elements of the web application testing checklist in detail below:

FUNCTIONALITY TESTING

As the name suggests, functionality tests are performed to check whether the web application is effectively performing the function that it is intended for.
Here, the aim is to ensure that the web application behaves as per its specifications and that all the features are functioning accurately. The internal mechanisms of the web application are not considered under functionality testing. The focus is entirely on whether the output executed is as per the expectations of the client.

Enlisted below are a few broad areas in which to test for functionality, which are by no means exhaustive:

  • Testing of links
    No matter what links are included on the webpage, testing needs to be carried out to make sure that all these links are working the way they are designed.
    Moreover, there should be no broken or dead links.
    Links to be tested include the following:
    – Internal links
    – Outgoing links
    – Anchor Links
    – MailTo Links

  • Web forms functionality
    Websites contain a number of forms that require users to enter certain data.
    Testing should be done to ensure that the data thus entered is captured and stored correctly.
    Similarly, invalid data should not be accepted by the system.
    Use of Captchas should be done to ensure that spam messages do not go through.

  • Cookies testing
    Cookies are files that are stored in the system for the currently active user session so that information need not be entered each time the user logs on to the website.
    These files, stored in an encrypted form, act as unique identifiers for each user.
    Testing can be undertaken by enabling and disabling cookies on the websites.
    Besides this, the functioning of cookies should be checked once the active user session ends.
    Cookie testing includes four major elements:
    – Deleting cookies
    – Editing cookies
    – Cookie encryption testing
    – Cookie corruption testing

  • Database validation
    With websites becoming increasingly complicated and with the ensuing need for complex database schema, validation of databases is a crucial aspect of functionality testing.
    It is important to check for data integrity and errors while there are modifications and deletions in forms or while doing any other database-related activity.
    Database testing is done to ensure that the data is consistent and is being handled effectively by the website.

  • Handling of error messages
    Testing has to be undertaken for ensuring that error messages are prompted where needed.

  • Optional vs mandatory fields
    There should be an effective treatment of fields that are optional for the users to enter vis-à-vis those which are mandatory.

Besides the above tests, there are many other aspects that should be covered under functionality testing.

USABILITY TESTING

A website that offers a smooth and pleasing experience for the end-users is the one that would attract them to stay on for long. The user would not want to spend even an extra second on a sloppy website with inconsistencies in the way it works. This is the reason why usability tests hold great importance. These tests examine the website through the lens of the user and look for potential areas of enhancement of user experience.

The ease of the user interface is a decisive factor in the success of a webpage. There are a few areas to take care of while testing for effective usability such as the following:

• Navigation
The navigation between web pages should be smooth, the symbols used for navigation should be easy to comprehend and use, and the handling of multiple navigation tabs should be efficient.

• Content
They say content is king, and it truly is. Not just what is written or displayed but also, perhaps, more importantly, the way it is presented to the user.
 
Spelling errors are a complete no-no and hence, need to be checked for.

Certain color themes are not pleasing when browsing web pages. Ensure that those are not used and that whatever color theme is chosen, there has to be consistency between web pages.

Consistency in font type, size, and color, proper assigning of headers, correct alignment of the content, etc. are some of the things to be checked for while testing this aspect.

• Ease of access
The time to load the website, reasonable use of the add-ons and flash, the use of alt-text for images, and other such factors that make it easier and quicker to go through a website should be given due consideration.

Essentially, anything that adds to the ease and satisfaction of users as they access the website needs to be put in place and any element that takes away from it, should be identified and removed. Some of the tools for usability tests include- heat maps or click tracking, A/B testing, surveys, eye tracking, paper prototyping, etc.

ACCESSIBILITY TESTING

It is an organization’s responsibility to ensure access to its website/web application for all its possible users. Accessibility testing is that subset of Usability Testing that caters to this aspect, focusing on accessibility for people with disabilities such as vision and hearing impairment, cognitive difficulties, physical disabilities, etc.

There are several countries that have legislation pertaining to this, with the requirement that technology is made accessible to people with disabilities.

The World Wide Web Consortium (W3C) has laid down Web Content Accessibility Guidelines (WCAG) that contain recommendations to build websites and applications that are disabled-friendly. The Web Accessibility Initiative (WAI) by the W3C also sets standards and provides support material to assist organizations with this goal. The WCAG requires the web content to follow the POUR guiding principles:

1. Perceivable– The intended information should be visible to the dominant senses of the users.

2. Operable– The users must be able to operate all the user interface components and navigation.

3. Understandable– The content and interface should be easily understood by the users.

4. Robust– The content needs to be robust enough to be correctly interpreted by assistive tools and technologies that may be utilized by the users.

Some techniques to check for accessibility include the scaling of content when zooming out, the possibility of functioning in high contrast mode, skipping navigation, image text alternatives (alt-text), accessibility only using the keyboard, descriptive captions, etc.

It is imperative to ensure that the app works with accessibility tools as such screen readers, speech recognition software, screen magnification, and others.

There is numerous software available to test websites and applications for accessibility to disabled persons, and this must be undertaken to not only enlarge the user base and improve customer satisfaction but also to make sure that you are operating within the law, and avoiding any future lawsuits concerning this.

INTERFACE TESTING

A connection between any two systems that are running together to accept input and deliver an output is called an interface. Interface testing basically checks how the website interacts with the different communication nodes involved during the functioning of the app.

There are three components that work behind the scenes, namely- the web server, the application server, and the database. There is a dynamic interaction and flow of information between these three elements as the web application is used.

Interface testing is undertaken to verify the proper functioning of the interfaces between these elements, and the efficient and smooth flow of data between them.
Interface testing is performed to verify the following:

-Whether all the servers are functioning well in varied scenarios.

-Whether faults are being managed properly or not.

-Whether all the results are correct and the link to a web server is functioning fine.

-Whether error messages are being displayed when there are interruptions to the flow of information between the interfaces.

SECURITY TESTING

This is one of the most vital types of testing that must be undertaken before going live with a web application. The goal is to identify any weak links that may exist with respect to security and protect sensitive user and application data from possible misuse by hackers. There is a lot of data from the users’ side that the database saves, for example, a user’s credit card information. Such sensitive data must stay confidential.

The process of security testing involves testing, analyzing, reporting, and fixing (if required) each and every security element of the application.

Security testing needs to be carried out to ensure that certain critical scenarios such as the following, are being in a secure manner:

– Shutting down of automatic sessions after prolonged inactivity from end-user
-Redirecting the website to encrypted SSL pages
-Locking of user account upon multiple unsuccessful passwords attempts
-Storage of cookie information in an encrypted format.
-Display important information such as credit card numbers, passwords, etc. in the encrypted format only.
These cover only some of the security-related scenarios that need to be tested.

The Open Web Application Security Project (OWASP) maintains a regularly updated list of the most common and serious web application security threats. The top 10 of these threats include the following-

  1. Injection
  2. Broken authentication
  3. Sensitive data exposure
  4. XML External Entities (XEE)
  5. Broken Access Control
  6. Security misconfigurations
  7. Cross-Site Scripting (XSS)
  8. Insecure deserialization
  9. Using components with known vulnerabilities
  10. Insufficient logging and monitoring

The aforementioned are some of the most critical security issues that a web application is exposed to. Security testing for these vulnerabilities and others is indispensable for a hack-proof, robust and safe web application for the customer to use.

PERFORMANCE TESTING

There are occasions when a web app might be loaded with a lot of user requests and it needs to be made certain that when the load is high, this can be handled, and that the website won’t crash.
Performance testing determines whether the webpage functions efficiently or not when under situations with variable load. It entails verifying and validating the performance of the web application on various grounds such as scalability, speed, and stability, for multiple load conditions.

The tests are done to determine the breaking point of the application when stress is at peak levels, the response time between users’ input to the intended reply, determine the levels of stress the web application can sustain, etc. The following tests fall under the category of performance testing:

• Load tests: These determine the amount of load the webpage can handle, and how increased load affects the speed and response time. These help in assessing the performance in day-to-day load conditions.

• Stress tests: Also known as fatigue tests, these are similar to load tests, but these are undertaken to check the performance in high-stress conditions. The upper limit to the effective working of the web application is evaluated in a stress test.

• Spike tests: These are executed to see how the system responds when the load is increased suddenly and repeatedly, to check if the web app can handle a spike in the workload.

• Soak tests: These are also known as endurance tests, and are performed to review the functioning when the application is used continuously over a period of time, and to check for possible memory leaks and other such issues.

• Scalability tests: Similar to spike tests, the aim is to assess the performance with an increased workload, but this increase is a gradual one rather than a sudden one like in the case of a spike test.

• Volume tests: Also called flood tests, these indicate the efficacy in handling situations with a heavy volume of data to be dealt with.

COMPATIBILITY TESTING

In today’s scenario, where the use of web applications is not restricted to just the desktop and when there is a wide variety of browsers and operating systems available in the market, compatibility tests have become integral to the process of web application testing.
These tests need to be undertaken to ensure that the website is rendered properly and is running correctly on different browsers and their respective versions as well. Apart from browsers, compatibility needs to be present in various operating systems and hardware configurations.
There are three types of compatibilities that need to be examined:

Browser Compatibility: to check for compatibility across various browsers like- Internet Explorer (IE) 8, IE9, IE10, IE11, Google Chrome, Safari, Opera, Firefox, etc.
It is important to check whether the web application is being displayed correctly and whether JavaScript, AJAX, and authentication are working consistently.

Operating System Compatibility: to ensure smooth functioning of web applications across different operating systems commonly used like- Windows, macOS, Linux OS, Apple iOS, Android, etc.
Here, one must check if the rendering of certain web elements such as buttons, text fields, etc. are functioning fine.

Device Compatibility: this needs to be undertaken since there’s an influx of numerous devices that end-users can access the web application from like laptops, desktops, mobiles, tablets, etc.
Different device types and the numerous models therein mean that there will be different screen resolutions and network environments that the web application will be working in. Check for compatibility for these elements hence is also important.

The primary purpose is to ensure that the web application is presented in an intended manner, with accurate image and font placement and properly functioning animations and videos, etc., on these different browsers, operating systems, devices, and the possible cross combinations thereof.
Organizations must realize that not all users will have access to the latest devices and browsers. Hence, at the least, basic functionality must be made backward compatible with legacy systems.

CONCLUSION

Performing successfully in today’s highly competitive environment necessitates attracting a larger pool of customers and keeping existing ones consistently satisfied. A lot rides on the web applications used by the end-user and hence, a systematic procedure of testing web applications is imperative for any organization. Web applications need to be functional, user-friendly, secured, stable, and appealing.

With BQ’s Web Testing Solution, you can ensure that your user experience is always the best. Find out how we can help you: https://bqurious.com/web-application-testing/