The ways in which a web application is tested and the things that are tested usually depends on where the product is in its life-cycle. For this post, we will primarily focus on testing the application at the front from the perspective of the end user.
Each working piece of software that is deployed and ready for testing has a checklist a QA tester will run through in order to make sure all use cases are checked and will pass. When testing a web application from a user perspective ask yourself these questions:
- Is the user interface built to specifics?
- Is the user experience what was expected?
- Is the particular feature you are testing functioning as it should?
- Are integrations and code compatible with the systems they will be used on? For example, what are the minimum system requirements needed in order to use this application?
- How does the application run? Is the performance good? Can it handle large loads of traffic or data?
- What about security? Is it safe to use? Are passwords hashed? Is it protected from hacks and other vulnerabilities?
When testing your web application, we recommend following this list of things to do:
- Use a device that is made to hold the application you are testing. For example, a desktop running with the latest Mac OS or Windows OS.
- Use a browser that is recommended or intended to be used for the application, for example, the latest version of Chrome.
- Clear your browser of caching data when logged in to test on each deployment so you don’t see old data mixed in with recent fixes.
- Limit the number of browser tabs and windows you have open to prevent caching and cross-browser session issues.
- If you are trying to test for multiple user roles, go incognito.
- Test on all common devices, operating systems, and browsers that you know the application will be used on. If you do not have access to all of the devices needed, simulators are helpful since they can mimic what the application will look and function like on those devices.
- For each feature that is being tested, look at the requirements and specifications outlined for that feature and test against that to make sure it meets the initial requirements, which we call the “happy path.”
- Then, go outside of the happy path and try to break that feature to spot any potential problems for issues, errors, bugs or glitches that may exist.
- For new issues, you discover while testing, add them as separate tasks for fixing. Don’t mix them into the current task you are testing for.
- Always let the team know when new issues such as bugs or regressions are discovered that will need to be addressed in follow-up correspondences.
Testing for User Interface and User Experience
Testing for user interface and user experience means the application was designed and built according to specifications that meet the desired user experience when it comes to the look, feel and ease of use of the application. Ask yourself these questions:
- Does the layout follow the intended flow and designs?
- Is content easy to access and read? Is it broken up into digestible parts with the use of paragraphs, spacing, etc.?
- What about readability? Is it easy on the eyes? Are the fonts big enough? Is the color contrast user-friendly? Can links and buttons be accessed with ease?
- What about the navigation? Is the application easy to navigate and are things clearly labeled to get to?
- Is the application meant to be responsive? If so, does it flow the way it should on responsive devices?
Testing for Functionality
When testing for functionality, make a list of the functions you will need to test for a particular feature and go down the list one by one to make sure each function is working correctly. For example, let’s say you have to test the function of a form. Your checklist may look something like this:
- Test fields for validation. For example, is a field required vs. not required? Is the validation showing for those that are required? Filling out the form multiple times in multiple ways will let you know if issues exist.
- Test input values for fields to make sure they are correct. For example, if a field should only be numeric, make sure it is not taking alpha or other characters.
- Test captcha if it is added to the form for security
- Test form submit and verify what is supposed to happen upon submission
Testing for Performance
When testing for performance pay attention to how long it takes the web application to load, how long it takes pages to load and how long things take to process.
- For example, how long does a form take to submit and return a success message?
- How long does the main application page take to load after cache clearing?
- If there are pages with heavy content or data on them, how long do those take to load? Would the user have to wait a few seconds for everything to load?
- Do you experience timeout errors?
Testing for Compatibility
Testing for compatibility includes making sure the web application will run on various browsers, operating systems and is functional with various devices. Consider these things when testing for compatibility:
- Test the application on all common browsers that it will be used on. This could mean IE, Safari, Chrome and Firefox browsers.
- Test the application on common devices where it is expected to be used for example, Laptops, Desktops, etc.
- When testing on those devices, make sure they have the right system requirements such as the right operating systems. For example, what operating systems will the application run smoothly on?
Testing for Security
Testing for security essentially entails running scenarios of trying to attack the application to catch any vulnerabilities that require fixing. Some of these could include:
- Testing for brute force attacks
- Testing for password hacks
- Testing for malware or viruses
- Trying to access restricted URLs
- Trying to access permission based areas of the application with other user roles who should not have access to those areas and more.
To minimize some of these security threats, the team can build in features to track activity or use third-party integrations that will protect the application from these type of attacks.
As you can see, there are many things to test for in your web application. The idea of testing from a user’s perspective is to use the application like a normal user would and spot issues that may hinder the intended user experience you are going for. It is also a great way to spot holes, inconsistencies, bugs and more in the application that the development team may not have accounted for since they are building the code to requirements but not using the application on the front like a regular user would.
For more help, here are some additional external references on testing:
- Operating Systems Tutorials – Role QA – Lynda Video
- Software Testing Help Article
- Guru 99 Article
- Usersnap Article