A couple weeks ago I have received a new assignment – to write an article about Web testing. As a new tester, I don’t have years and years of experience behind me, but I do have some experience plus, hours and hours of researching and reading. I’ve gone through some articles some of which were hard to understand to a beginner tester, or (even harder) for someone not familiar with software testing at all. So, what I would like to do is to write about web testing in simple and easy language.
If you google “definition of web testing”, one of the first links will lead you to Wikipedia, where you will find out that “Web testing is the name given to software testing that focuses on web applications. Complete testing of a web-based system before going live can help address issues before the system is revealed to the public. Issues such as the security of the web application, the basic functionality of the site, its accessibility to handicapped users and fully able users, as well as readiness for expected traffic and number of users and the ability to survive a massive spike in user traffic, both of which are related to load testing.” (http://en.wikipedia.org/wiki/Web_testing)
In different words, all of us would prefer to use well designed, easy to access and manage, fast and secure web sites. It is very frustrating to wait for a new page to open, or to find out that link, what was supposed to bring us to a larger picture leads to an irrelevant information. And most of all, we would want to be sure that all our personal and (more important) financial information are secure. Well, here comes web testing! The main purpose of software testers performing web testing is to make sure that a good quality product (in our case web site) joins the World Wide Web.
There a few methods or techniques that are used by testers to make sure that the web site works as expected. I would like to talk about them more specifically.
Let’s start with Functionality testing, the technique that focuses on testing functionality of the web application, and all of the components. You want to make sure that the application behaves as expected, and in order to do that you have to remember a few things:
- Links. They are used to bring users from one page to another. It is important to ensure that all the links on the web page exist, and bring you where they said they will.
- Forms. The purpose of forms is to collect information from users and store it into the database. So basically, when testing a form you need to check that all the fields are valid, check default values and mandatory fields (there should be an error message if they are not populated), negative inputs, options to create, modify, delete or view the forms.
- Cookies. The information gathered from a form you filled in in order to get an access to a web site is stored on your web browser as a cookie. When you return to the web site, it creates a customized page using cookie. So you should spend some time making sure that they work properly. Some of the actions can include enabling and disabling cookies from your browser, checking the application after corrupting or removing cookies.
- Database. A structures set of data stores on the server called a database. The main qualities of a database should be reliability, consistency and security. When testing a database you want to ensure that queries are executed without errors, check for data integrity while editing, deleting or modifying forms or doing any other database related activities.
Beside those things, it would be a good idea to get familiar with specific functional requirements for your application, and verify that each function is included and works as it is described.
The next thing I’d like to talk about is Usability testing, which evaluates how easy the application is to use. There are two parts testers should focus on – site map or navigation bar checking and content checking.
- Site map or navigation bar contains different buttons, boxes, links that help users to navigate through the application. You want to ensure that the web page navigation is easy to use, all the controls are present and functional, the menu is accessible and consistent on each page, and the instructions are provided are clear.
- The content checking includes such things as checking for spelling and grammatical mistakes, proper font size and colors, that images and tables are aligned with the text, any web references are hyper-linked.
Interface testing verifies that all the interactions between the web server, the application server and the database are executed properly. When testing interfaces don’t forget to check for the following things:
- What happens if the connection between any of the servers are reset or lost;
- How does the application respond if a request was interrupted;
- Error handling;
- Make sure that database responds to a request as expected.
The next in our list is Compatibility testing which is responsible for ensuring that the application works in different environments, and includes:
- Browser compatibility – makes sure that the web site works the same way on different browsers, like Internet Explorer, Chrome, Firefox, Safari, etc.
- Operating system compatibility – your application may appear differently on different OS, and variety of operating systems (Windows, MAC, Solaris, etc.) makes that part of the testing substantial.
- Mobile browsing (Smartphones, Tablets, etc.)
- Printer compatibility.
Let’s move to Performance testing which is determining whether or not the web application is working properly under the heavy loads. You want to make sure that the application you are testing can handle such things as:
- Large number of users at the same time
- Large amount of data from each user
- Long period of continuous use
Automation tools are great for that type of testing as they can simulate multiple simultaneous users for the long period of time.
And, the last thing I wanted to discuss is Security testing, whose main goal is to make sure that the company’s and users personal information (Like credit card number, phone number, address, password, etc.) are secure and protected. As a company we don’t want customers to get where they are not supposed to get without an authorization. And as a customer I would like to know that all my actions are protected, and unauthorized individuals would not get access to my personal data. Here some things you should pay attention to when verifying the security level of the system:
- Check if you can get to secure pages without authorization;
- Check if you can pass with invalid password/username;
- Check if you can enter internal pages entering URLs in the browser;
- Check if a user can navigate to encrypted SSL pages;
- Check if a session will expire if the web site is not being used for a pre-defined amount of time;
- Check what happens if a user tries to continue his actions after the session is expired;
- Check if the directory setup is correct, and not allowing users to access any internal information.
I think I have highlighted all the main parts of Web Testing. And I hope you found the information presented in the article practical and helpful.
Author: Marina Kalashnikova (Testing4Success Intern)