Thoroughly testing a web application has always been difficult, and it gets harder every time. The following steps could have nearly full coverage for the web application testing, regardless of the size and complexity.
Step 1 – Set a Measurable Test Objectives
This is very critical. This should be done as part of the planning phase. Next is to have the understanding of the objective clear and the same understood by all members of the test team. Assignment of the right weightage to each of these objectives at this stage is highly essential.
Step 2 – Process and Roles
Each member of the test team needs to have a clear understanding of their part in the testing process and follow a set procedure. It’s about the same as it works in large professional companies specializing in testing outsourcing services. The boundaries of clear responsibility is a key for materializing a successful test. Within the definitions of the roles and responsibility and process the following should be covered:
- who will test which part of the application and how and where they will report the issues;
- who would monitor and review this issue log and provide responsibility for resolving the same;
- issue categorization to be done with a predefined issue categorization;
- who would provide a consolidated report and to whom and at what frequency;
- review meetings along with the test team should be planned in advance;
- formal definitions of the test process.
Step 3 – Tracking Results
As the testing goes on probably a large number of bugs, defects, issues etc will be raised. There should be a way to officially review and organize and store the results. This would form the basis for all management reports going forward. Normally in any matured organization there will be provision for having this information stored in a defined way.
In case it is unavailable, there are several freeware tools which can be used to perform the same. Also there are paid and unpaid SaaS based systems which can be used on demand online and it takes a couple of minutes to set this up without going through the hassle of installation, deployment etc.
Step 4 – Testing Environment
At this point a separate testing environment is required for performing the testing. This test system should be quite close in terms of hardware and software architecture perspective which would be a separate Web Server, Database Server, Application Server etc. If your company is an end to end service provider in the area of IT applications and operations, setting this would really be not a problem. Maybe you can use a virtual server or physical blade depending on your requirement.
Having done this, there should be a clear process to do the deployments from software development to test servers. There are off-the-shelf scripts available free of cost as a plug-in or individual software which could be used to set up the transition process between the servers. At the same time it is required to have proper definitions to be created in the source control to keep track of which version is given for test and which one is in development.
Step 5 – Unit Testing
A unit is a piece of software with precise functionality. Unit testing is performed to the unit level of the software. A unit could be a function. The more accurate the unit testing is, more assurance would be on the final software product / web application. As an example a simplest unit testing could be performing the login authentication when a user enters the user ID and password.
While designing the test case for unit testing proper thoughts to be given like validations, range checking etc. Only requirements should be taken into consideration when creating the test case, not the actual code. Deriving unit test cases from requirements should be innovative in nature. The innovativeness might get suppressed if one looks at the code. Chances are that the test case designer will get biased with the thoughts of the developer who wrote the code unit. Proper design of unit test cases often may result in changing the code.
Step 6 – HTML Validation
Verifying the HyperText Markup Language (HTML) is the language used for designing the web pages. HTML pages take the responsibility to communicate between the users through web browsers and the underlying application. The World Wide Web Consortium sets the specification for the HTML. As long as the web pages are coded with the specification provided by them, there is absolutely no problem. However sometimes it may happen that custom made tags are used by the developer which may or may not work with all browsers as they are not directly associated with the HTML specification.
Therefore verification of HTML is highly required. Verification can be done manually but at the same time it could be quite time consuming. Best possible way for doing so is to use the w3′s free HTML validation service which is available at their website. There are of course other available tools and techniques to validate the HTML. Website Garage is one of them. Basically in HTML validation two things are checked, first one is the Syntax and the second one is the look and feel in different browsers. Therefore it is also recommended during the test phase to use different internet browsers to make sure the look and feel is uniform.
Step 7 – Usability Testing
In usability testing, it is checked all aspects of the web application that affect the experience of the user while browsing the web application, precisely:
- How easy or difficult is it to browse through and navigate the web application ?
- Is it really obvious to the user which actions are available to him implicitly ?
- Is the overall look and feel, including font sizes, colors, and other elements, consistent from page to page?
- Are all the validations done and if the validation messages are self explanatory ?
To gain a deeper understanding of usability, you can also read the article by TestFort.
Step 8 – Load Testing
In performing load testing, you want to simulate how users will use your web application in the real world. The earlier you perform load testing the better. Simple design changes can often make a significant impact on the performance and scalability of your web application. A good overview of how to perform load testing can be found on Microsoft’s Developer Network (MSDN) website.
A topic closely related to load testing is performance tuning. Performance tuning should be tightly integrated with the design of your application. If you are using Microsoft technology, the following article is a great resource for understanding the specifics of tuning a web application.
People hate to wait for a web page to load. As a general rule, try to make sure that all of your pages load in 10 seconds or less. This rule will of course depend on your particular application and the expectations of the people using it.
Step 9 – User Acceptance Testing
By conducting user acceptance testing, you can ensure that your web application works as intended. In other words, you want to make sure that using your web application facilitates the user’s tasks rather than complicates them. Establishing a beta test for your web application is a practical way to handle user acceptance testing.
You should always pay attention to what users of your web application have to say when conducting user acceptance testing. Your web application’s success will ultimately depend on their input.
Step 10 – Testing Security
With the large number of highly skilled hackers in the world, security should be a huge concern for anyone building a web application. You need to test how secure your web application is from both external and internal threats. The security of your web application should be planned for and verified by qualified security specialists.
After performing your initial security testing, make sure to also perform ongoing security audits to ensure your web application remains secure over time as people and technology change.
Testing a web application can be a totally overwhelming task. The best advice is to keep prioritizing and focusing on the most important aspects of your application and don’t forget to solicit help from your fellow team members.
With the help of the aforementioned steps and your own experience and knowledge, you can create a web application that you can be proud of and that your users will adore. Additionally, you will be allowing your business the chance to roll out a web application that may go viral and make a fortune, save millions of lives, or allow your business to cut its customer service expenses in half. The success of your web application can ultimately depend on how well your testing is done in order to create a positive user experience.