Web application testing can take many shapes. This term is generally applied to applications which can be accessed through a browser. It is an evolving concept of tasks which must be completed per specification in each market. There is no specific order the tests must be performed in, but some tests have higher importance than others depending on the type of application the test is for. For instance, security will be a large issue for the banking industry, while health systems place reliability and availability high on their list. It is not as complicated as mobile application testing because there is not as much diversity in web application interfaces and the hardware used to access it. It is just as highly important, however, as applications is how customers use your business. A fail in the application is a mark on your company’s reputation.
The needs of each application will differ, but they will generally follow this format of hierarchy. The testing areas are usability, user acceptance, performance, security, functionality, and interface.
This is the area of testing that complies with standards and conventions. A color coding convention is that red signifies that a process is stopping and green means that a process is beginning. Users already understand these conventions, if you use them they won’t have to learn how to use your application.
Usability studies are to make the tasks within the application user-friendly for all users. Accessibility standards must be met, allowing screen readers to access the application, and making an option for Captcha codes to be spelled for the vision impaired.
You must ensure that proper navigation between web pages is easy for the user, including a site map for further navigational help. Use the conventional color coding that users recognize. For clarity, avoid overcrowding the app with content. You must practice user-friendliness to all users, whether novice or expert, and provide support for the disabled.
- Test how users use buttons, boxes, and how they use links
- Check to see that the website is easy to use
- Check that clear instructions are provided
- Check if instructions are correct in that they satisfy the purpose of the application
- Check that the main menu is provided on each page and is consistent
- Check to see if content is logical and easy to understand
- Check for spelling errors
- Check for dark background colors which distract users
- Check for annoying colors and typefaces (Comic Sans)
- Check that all content is meaningful
- Validate all items for UI testing
- Check that a search option is included
- Check that a site map is added, with links
User acceptance testing
User acceptance testing’s objective is to ensure that your application is meeting user expectations and is ready to be deployed. This is accomplished during Alpha and Beta testing.
The focuses during this testing phase are ensuring that the application is browser compatible, checking for mandatory fields have prompts in forms, checking for time outs and field widths, and making sure that proper control is used to feed data. For instance, when requesting gender information, use an option button.
Alpha testing is done by developers.
Beta testing is done by end users.
Performance testing measures performance with various user scenarios.
Determines the maximum performance limits of an application
Finds out how adaptable the application is to changes in software and hardware
Finds out how the application behaves under a heavy load, showing detailed information about memory usage, CPU usage, etc.
Security testing is of high importance in many applications. For instance, a student’s grades must maintain a level of security to avoid hacking, and e-commerce, which can involve banking transactions, must be tested for high levels of security, this is critical. Authentication and authorization mechanisms are tested during this phase.
Static testing uses a static code analysis to check for vulnerabilities. It is a code analysis.
Dynamic testing is a run-through of the application to see if it responds per expectations to each request.
- Check that internal pages do not open without proper login
- Check for application response to invalid form input
- Check that directories and files are not accessed without download option given
- Test the CAPTCHA for automated scripts logins
- Test SSL if it is used
- Check to see that all transactions, error messages, security breach attempts get logged in log files on the server
Functional testing ensures that all individual functions are performing correctly. This phase includes testing boundary conditions, and that invalid requests prompt the appropriate error message.
For web applications functional testing can range from checking links to checking whether user changes are reflected in the database. This phase can include:
- Test outgoing links from all pages from a specific domain
- Test all internal links
- Test links jumping on the same page
- Test links used to send email from web pages
- Test to check for orphan pages
- Test to check for broken links
- Check all validations in each field
- Check the default values in each field
- Check for wrong inputs in fields
- Create, delete, or modify forms as needed
- Check to see if cookies are encrypted
- Check session cookies for login sessions and user stats
- Check effect on application security when cookies are deleted
- Validate the site for HTML syntax errors
- Check to see if the site is optimized for different search engines
- Check for data integrity and errors when editing, deleting, and modifying forms
- Check if queries are executed correctly
- Check if data is retrieved and updated correctly
Interface testing ensures that all individual components are connected properly. The output of each module should be fed to the intended module without any issues. This phase plays a vital role for applications developed for multiple platforms.
In this test, ensure that date flow runs smoothly and as expected with modules of the application and between multiple applications. Also ensure that the interfaces exposed by components are generic and extensible and are able to remain backward compatible while accommodating changes to the components.
Web application testing is a big undertaking. Make a checklist of your specific needs for your business and your users. A tested product is a working product.