With the increase in the number of global users of any application, there is a higher challenge in its testing. The browser’s expanding matrix, 3rd party applications, plug-ins and newer programming languages have increased the complexity of testing a web application.
There are three types of web application testing i.e., functional, usability and load testing. The functional testing focuses on testing the links, GUI, Web forms, Security and Language.
The usability testing focuses on the professional scrutiny of feature set, accessibility, benchmarking, graphics and overall usability. The Load testing tests the performance of an application when subjected to load. This load can be live, simulated or hybrid.
Adhering to these concepts, and based on my several years of experience in development, testing and reading awesome software testing books following key things should be considered for testing a web application:
Automate Repeated Tasks
Its important that the testers do not repeatedly do the same testing on a application. A lot of web based automation testing tools are available for free and with enterprise support. Most of regression issues can be easily caught with a simple press of button. As a rule of thumb, try to automate all major issues that may not be acceptable in regression. This also means you should encourage test driven development.
Do Not Get Diverted by Metrics
It is very much essential that you do not rely too much on statistical data important to market research. There is no big advantage in finding the ration of unhappy customers to happy customers and in collecting massive data on defect escape percentage. Such kind of statistical data is less important as compared to the actual potential of the testers and managers. There needs to be a greater focus on the process than the historical statistics.
Understand When to Stop
Theoretically testing is a never ending process and therefore the task of a testing manager can literally never get completed. The manager cannot make any concluding decision on the product completion. There are huge budget and timeline constraints involved in the overall testing life cycle.
Invest More in Testers than Tools
The investment should be made more on the testers as they are the sources of finding real-world bugs in a web application. The automated tools can only figure out the bugs which have been enlisted in the former test cases. A high price needs to be paid for the tools figuratively and literally!
Security is Almost Always First priority
You should make sure that your application works in congruence with your policy terms. The application should maintain high privacy standard and information of a user should not be shared without permission. The right date should be cached and shared and the application should be resistive to SQL injection flaws and cross site scripting(XSS) attacks.
Multimedia Dependency Have Complex Issues
The dependency in the rich multimedia tools should be as less as possible. High dependability on HTML5, Flash could increase the complexity of load testing. The multimedia dependent applications typically would require to be manually tested on various multimedia players.
Teamwork is Key to Success
Instead of focusing more on filing bugs or verifying fixes the testers should focus on the bigger bottleneck. A good coordination with the developers and guiding them about quality prerequisites prior to code completion could significantly reduce efforts of the entire system.
Single Browser Testing is Not Enough
The application should be tested on the older browser versions as nothing can be excluded until depreciated. Along with testing on old technology, the newer one like HTML5, CSS3, cloud computing should also be considered. Thus testing should be highly comprehensive.
Keep Your Sanity Test Cases Handy
Life of a software tester is not easy, you may need to face a lot of challenging timelines for meeting the software delivery dates. In most cases, testing team do not really have luxury to go thru all the test cases. For such situations, you must always keep a list of sanity test cases that can be quickly run and give a high level understanding of health of the application.
Dealing with Global User Applications Issues
In case of application encompassing global users, the use of crowd-sourcing in the only viable solution and it would enable you to handpick testers globally. It would make sure that your application does not sustain any location specific bug.
Understand 3rd Party Apps
You should know all your 3rd party applications in advance as this would help you in analyzing the efforts. The applications like RSS feeds, Live Chat, Search plug-ins, embedded videos, Social networking modules, Ad servers etc tend to interfere you’re your application’s performance.
Plug-ins and concerned Precautions
Proper testing of application should be done keeping the plug-ins and extensions in mind. The version issues of plug-ins can significantly impact an application and therefore these kinds of compatibility bug need to be detected.
The testing should have a good coverage of user’s aspects. Whether functional, usability or load testing, all of these should consider the user’s location, operating system, language and browser’s compatibility issues. The user can be a random set of these features and therefore the test scenarios should be highly durable. The above mentioned points if adhered to, would significantly affect the overall productivity if any web application testing.