Web Application Testing Methodologies
1. Functionality Testing
2. Usability testing
3. Interface testing
4. Compatibility testing
5. Performance testing
6. Security testing
Functional testing ensures that individual functions are working well. In web applications, functional testing can range from testing whether links are working to checking whether changes made by users in a web page are reflected in the database. Some of the functional tests for web applications include:
For a web application to be effective, the user interfaces should conform the standards. Usability testing plays an important role with web applications that are designed to make manual tasks easier. The web applications should comply with accessibility standards. For example, the widely used Captcha code has an option for spelling for people who are visually challenged.
Usability testing can be done with the following guidelines:
* Ensure proper navigation between web pages.
* Be sure to have a site map.
* Use appropriate color combinations and best practices.
* Avoid over-crowded content.
* Practice user friendliness to all types of users, from novice to expert.
* Provision support for physically challenged people.
Interface testing conducted to ensure that individual components are connected properly. The output of one module should be fed to the intended module without any issues. Interface testing plays a vital role for your web applications that are developed to work on multiple platforms.
Interface testing guidelines:
* Ensure that data flow occurs smoothly and as expected between modules in a single application and between applications.
* Ensure that the interfaces exposed by components are generic and extensible. They should be able to accommodate changes to the components while remaining backward compatible.
Compatibility of your web site is very important testing aspect. See which compatibility test to be executed:
Browser compatibility: Some applications are very dependent on browsers. Different browsers have different configurations and settings that your web page should be compatible with. Your web site coding should be cross browser platform compatible. Test web application on different browsers like Internet explorer, Firefox, Netscape navigator, AOL, Safari, Opera browsers with different versions.
Operating system compatibility: All new technologies used in web development like graphics designs, interface calls like different API’s may not be available in all Operating Systems.
Test your web application on different operating systems like Windows, Unix, MAC, Linux, Solaris with different OS flavors.
Mobile browsing: This is new technology age. So in future Mobile browsing will rock. Test your web pages on mobile browsers. Compatibility issues may be there on mobile.
Printing options: If you are giving page-printing options then make sure fonts, page alignment, page graphics getting printed properly. Pages should be fit to paper size or as per the size mentioned in printing option.
Performance testing on web applications measures the performance under various scenarios. Web performance testing should include:
Stress testing: To determine the maximum performance limits of an application. In web performance testing web site functionality on different operating systems, different hardware platforms is checked for software, hardware memory leakage errors.
Scalability testing: To find out how adaptable the application is to changes in software and hardware.
Load testing: To get an idea of how the application behaves under a heavy load. This test yields information and details about memory usage, CPU usage, and so forth.
Security testing for your application is very important if data leaks or modifications are unacceptable and intolerable. For e-commerce applications, which sometimes involve banking transactions, security testing is critical. It should also ensure that sufficient authentication and authorization mechanisms are in place.
Security testing can be static or dynamic.
Static testing involves doing a static code analysis to check for any vulnerabilities. The goal is to understand the code flow and check for security threats by walking through the code.
Dynamic testing entails running the application to see if the response is as expected for the associated request. It is very similar to black box testing.