in Uncategorized
Web applications testing features.
Have you ever tested web apps? Practically any software tester with experience of more than a year will say "yes". There are many objective reasons for this.
International Telecommunication Union (ITU) estimates that at the end of 2018, 51.2 percent of the global population, or 3.9 billion people, were using the Internet. ITU also shows how the number of Internet users has increased over the past 18 years.
When looking at these fabulous numbers, it becomes clear why so many new web applications are being developed in the world. This leads to the involvement of a large number of experts. The fact that the web (in a broad sense) will continue to increase its pace of development is also confirmed by the growing trend: everything "moves" to the clouds. Cloud technologies are becoming a new reality of the modern Internet: even desktop Word and Excel are presented now in the form of web alternatives from Microsoft.

Based on the above, we can say that the need for good quality engineers, specialising in web products, will only grow.

Let's keep up with the trend! This article focuses on the features of web application testing.

Let's start with the basics. We need to determine what exactly we mean by the term "web application" and what are the nuances of its implementation.
When looking at these fabulous numbers, it becomes clear why so many new web applications are being developed in the world. This leads to the involvement of a large number of experts. The fact that the web (in a broad sense) will continue to increase its pace of development is also confirmed by the growing trend: everything "moves" to the clouds. Cloud technologies are becoming a new reality of the modern Internet: even desktop Word and Excel are presented now in the form of web alternatives from Microsoft.

Based on the above, we can say that the need for good quality engineers, specialising in web products, will only grow.

Let's keep up with the trend! This article focuses on the features of web application testing.

Let's start with the basics. We need to determine what exactly we mean by the term "web application" and what are the nuances of its implementation.
Client, server, database
A web application is a client-server application where the client is a browser, and the server is a web server (generally speaking). The main part of the application is usually on the side of the web server, which processes the requests in accordance with the business logic of the product and generates a response sent to the user.

At this stage, it is the browser that converts the response received from the server into a graphical interface, understandable to the ordinary user.
A web application is a client-server application where the client is a browser, and the server is a web server (generally speaking). The main part of the application is usually on the side of the web server, which processes the requests in accordance with the business logic of the product and generates a response sent to the user.

At this stage, it is the browser that converts the response received from the server into a graphical interface, understandable to the ordinary user.
One of the key features of a web application is its architecture. Let's take a closer look at this issue, as it is of particular value.

The web application consists of the following "parties":
One of the key features of a web application is its architecture. Let's take a closer look at this issue, as it is of particular value.

The web application consists of the following "parties":
1. Client
Typically, the client is a browser. However, there are exceptions. For example, in cases where one web server (WS1) makes a request to another (WS2), the web server WS1 plays the role of the client.

Here's another classic example. The client role is still performed by the browser. In order for the user to see the graphical interface of the application in the browser window, the browser must process the response of the web server. This response will contain the data implemented with the help of HTML, CSS, JS (the most used technologies). It is these technologies that make it clear to the browser exactly how to render the page.
1. Client
Typically, the client is a browser. However, there are exceptions. For example, in cases where one web server (WS1) makes a request to another (WS2), the web server WS1 plays the role of the client.

Here's another classic example. The client role is still performed by the browser. In order for the user to see the graphical interface of the application in the browser window, the browser must process the response of the web server. This response will contain the data implemented with the help of HTML, CSS, JS (the most used technologies). It is these technologies that make it clear to the browser exactly how to render the page.
2. Server
A web server is a server that accepts clients' HTTP requests and gives HTTP responses back.

NOTE: A web server is called both the software that performs the functions of a web server and directly the computer on which this software runs.

The most common types of web server software are Apache, IIS, and NGINX. The web server supports an application that can be implemented using a wide variety of programming languages: PHP, Python, Ruby, Java, Perl, etc
3. Database
From the classical point of view, they usually mention two sides of a web application. We believe that another "side", the database, is quite actively involved in the work of the web application.

In fact, the database is not part of the web server. But most applications simply cannot perform all the functions assigned to them without it, since it is in the database that all the dynamic information of the application is stored (credentials, user data, etc.).

The database is a fairly broad concept that is used not only in the field of information technology. We define a database as an information model that allows you to store and organize different objects' data. These objects also have a set of properties that can be categorized. Databases operate under the control of the so-called database management systems (DBMS). The most popular DBMSs are MySQL, MS SQL Server, PostgreSQL, and Oracle.

There are also embedded and file-server DBMS, for example, SQLite. It is used in some browsers, Android API, Skype, and other well-known applications. Interaction with the listed DBMS is based on a special structured query language – SQL.
Now, having collected a certain "architectural puzzle", we suggest considering it from the point of view of software testing. Somewhat later, we will learn how all the components communicate with each other.
Now, having collected a certain "architectural puzzle", we suggest considering it from the point of view of software testing. Somewhat later, we will learn how all the components communicate with each other.
Architecture features: the client
Architecture features: the client
We mentioned the client as the first component of the architecture.

In the classic sense of the client is represented by the browser. Hence, testing cross-browser compatibility (due to the variety of browsers) is very important. We will also examine the testing of different web forms as the main source of information received through the client.

Cross-browser compatibility: a variety of clients
Cross-browser compatibility: a variety of clients
What is cross-browser testing? This is a test of how correctly (in accordance with the requirements and standards) the web application is displayed and functions in different browsers and under different operating systems. Nowadays, standardization is increasingly global in scope, and therefore most popular browsers process code in the same way. However, not all problems are solved by standardization. Therefore, the need for cross-browser testing does not disappear.

Before starting work, we recommend collecting the necessary set of browsers. You can, for example, determine the target audience of your product and collect browsers statistics. Thus, you will be able to limit the amount of cross-browser testing to a set of browsers most popular among this audience.

In regression testing, when time and human resources are limited, the method of distributing browsers can also be applied. By assigning a specific browser to each tester, you can cover a large percentage of cross-browser defects. This method has its drawbacks: it is most effective in a large testing team, but it becomes almost inapplicable if there is one tester in a team.
What is cross-browser testing? This is a test of how correctly (in accordance with the requirements and standards) the web application is displayed and functions in different browsers and under different operating systems. Nowadays, standardization is increasingly global in scope, and therefore most popular browsers process code in the same way. However, not all problems are solved by standardization. Therefore, the need for cross-browser testing does not disappear.

Before starting work, we recommend collecting the necessary set of browsers. You can, for example, determine the target audience of your product and collect browsers statistics. Thus, you will be able to limit the amount of cross-browser testing to a set of browsers most popular among this audience.

In regression testing, when time and human resources are limited, the method of distributing browsers can also be applied. By assigning a specific browser to each tester, you can cover a large percentage of cross-browser defects. This method has its drawbacks: it is most effective in a large testing team, but it becomes almost inapplicable if there is one tester in a team.
What you need to check during the cross-browser testing:
  • Product functionality implemented on the client side
  • The correctness of displaying graphic elements
  • Fonts and sizes of text characters
  • Accessibility, functionality, and interactivity of various forms
What you need to check during the cross-browser testing:
  • Product functionality implemented on the client side
  • The correctness of displaying graphic elements
  • Fonts and sizes of text characters
  • Accessibility, functionality, and interactivity of various forms
All most popular (among the user audience) browsers need to be tested. But you should pay special attention to the IE if it is included in the test suite. In IE, there are often problems that are not found in other browsers. So, in IE, it is additionally recommended to pay special attention to scalability, input areas re-focusing and JS operation.

Even if you do not have enough knowledge to assess how the markup corresponds to the standards, you can use automatic tools. We also recommend using different markup validators, for example, https://validator.w3.org/. After analysing the result, shown by the validator, you can identify serious bugs and show them to the developers.

Sometimes validators pay attention to the most minor bugs that (let's be honest) no one will ever fix. If you create bug reports for defects of this kind, it will be more convenient to collect them into a single document and attach them to the report. All kinds of recommendations that do not have their influence on the display and operation of content can be attributed to this kind of "minor bugs".
All most popular (among the user audience) browsers need to be tested. But you should pay special attention to the IE if it is included in the test suite. In IE, there are often problems that are not found in other browsers. So, in IE, it is additionally recommended to pay special attention to scalability, input areas re-focusing and JS operation.

Even if you do not have enough knowledge to assess how the markup corresponds to the standards, you can use automatic tools. We also recommend using different markup validators, for example, https://validator.w3.org/. After analysing the result, shown by the validator, you can identify serious bugs and show them to the developers.

Sometimes validators pay attention to the most minor bugs that (let's be honest) no one will ever fix. If you create bug reports for defects of this kind, it will be more convenient to collect them into a single document and attach them to the report. All kinds of recommendations that do not have their influence on the display and operation of content can be attributed to this kind of "minor bugs".

Client-side web forms
Client-side web forms
Web forms are one of the important components of Internet applications. The user interacts with them with the help of the client. However, these forms are very often a source of defects. If we assume that these defects remain in production, the company may suffer large financial and reputational losses.
Web forms are one of the important components of Internet applications. The user interacts with them with the help of the client. However, these forms are very often a source of defects. If we assume that these defects remain in production, the company may suffer large financial and reputational losses.
How not to miss the defects in the web forms? Let's consider a few simple steps:
  • 1
    Carefully check whether you have made the fields required. Also, check if these fields have appropriate markings.
  • 2
    By filling out and submitting the form, make sure that exactly what is planned is happening with the data. If the data must be entered into the database, we check whether the process completed correctly. If you lack your knowledge of SQL or database access rights, ask the developer to do it for you.
  • 3
    Check whether the messages "fill in the empty field" are displayed after attempting to submit the form.
  • 4
    Pay close attention to how character quoting is implemented in form fields. After all, forms are a potential source of vulnerabilities for applications and users. So the quoting should be done at the level of not only the client but also the server.
  • 5
    Make sure that after filling out the form, the user receives a confirmation letter indicating the desired sender, the message body itself meets the requirements, and the links inside are not broken.
  • 6
    Use special tools for testing web forms (for example, Web Developer Toolbar).
How not to miss the defects in the web forms? Let's consider a few simple steps:
  • 1
    Carefully check whether you have made the fields required. Also, check if these fields have appropriate markings.
  • 2
    By filling out and submitting the form, make sure that exactly what is planned is happening with the data. If the data must be entered into the database, we check whether the process completed correctly. If you lack your knowledge of SQL or database access rights, ask the developer to do it for you.
  • 3
    Check whether the messages "fill in the empty field" are displayed after attempting to submit the form.
  • 4
    Pay close attention to how character quoting is implemented in form fields. After all, forms are a potential source of vulnerabilities for applications and users. So the quoting should be done at the level of not only the client but also the server.
  • 5
    Make sure that after filling out the form, the user receives a confirmation letter indicating the desired sender, the message body itself meets the requirements, and the links inside are not broken.
  • 6
    Use special tools for testing web forms (for example, Web Developer Toolbar).
Text is important
Text is important
Like it or not, but the special value of the Internet lies in the fact that it is a virtually unlimited source of information. Some of this information is presented in the form of texts with which the user interacts through the client. Most web resources require checking texts for grammatical errors and typos.

Sure, the significance of this testing is not so great compared to the functional one, but it is not worth neglecting the proofreading of texts.

Here's one haircurling story for you. On the main page of the corporate site, a typo suddenly appears, and instead of a "buck up", something is written there, that makes well-bred people frown.

Yes, we do not always have enough time to proofread all the texts, but in such situations, SpellChekers (online or in the form of browser plug-ins) come to the rescue.
Like it or not, but the special value of the Internet lies in the fact that it is a virtually unlimited source of information. Some of this information is presented in the form of texts with which the user interacts through the client. Most web resources require checking texts for grammatical errors and typos.

Sure, the significance of this testing is not so great compared to the functional one, but it is not worth neglecting the proofreading of texts.

Here's one haircurling story for you. On the main page of the corporate site, a typo suddenly appears, and instead of a "buck up", something is written there, that makes well-bred people frown.

Yes, we do not always have enough time to proofread all the texts, but in such situations, SpellChekers (online or in the form of browser plug-ins) come to the rescue.

Web server part
Web server part
Testing of a web application part that is hosted on a web server can be done bypassing the graphical (client) interface. However, this requires a certain level of technical knowledge and skills, as well as the use of additional tools.

Consider a web server in terms of load and installation testing.
Testing of a web application part that is hosted on a web server can be done bypassing the graphical (client) interface. However, this requires a certain level of technical knowledge and skills, as well as the use of additional tools.

Consider a web server in terms of load and installation testing.
Installation on a web server
Installation on a web server
So, before we start testing, we need to install a web application on a web server. Actually, there is a similarity with the testing of desktop applications. However, there is a difference in the nuances that must be taken into account and tested. Especially when it comes to software distributed for local installation on users' web servers.
So, before we start testing, we need to install a web application on a web server. Actually, there is a similarity with the testing of desktop applications. However, there is a difference in the nuances that must be taken into account and tested. Especially when it comes to software distributed for local installation on users' web servers.
What are these nuances?
  • 1
    To install most of the web applications, specific OS administration knowledge is required. Try installing the application on multiple web servers. In the best case, these will be the most popular technologies among your users, and prior research will be required to create the list.
  • 2
    When installing a web application, pay attention to whether or not the application is installed in the directory and database you specified, and whether it observes all the required configuration points.
  • 3
    Make sure that the application can be installed both from localhost and remotely.
  • 4
    If the installation process is interactive, and each user's choice at a certain step influences the subsequent actions, then it will be necessary to go through all the paths, since the installation is the first user's step in working with your application.
  • 5
    Do not forget about negative tests: check the installation in conditions of insufficient resources (disk space, RAM) or privileges, interrupt the installation process during its active phase (for example, by rebooting the server).
  • 6
    Use special tools for testing web forms (for example, Web Developer Toolbar).
What are these nuances?
  • 1
    To install most of the web applications, specific OS administration knowledge is required. Try installing the application on multiple web servers. In the best case, these will be the most popular technologies among your users, and prior research will be required to create the list.
  • 2
    When installing a web application, pay attention to whether or not the application is installed in the directory and database you specified, and whether it observes all the required configuration points.
  • 3
    Make sure that the application can be installed both from localhost and remotely.
  • 4
    If the installation process is interactive, and each user's choice at a certain step influences the subsequent actions, then it will be necessary to go through all the paths, since the installation is the first user's step in working with your application.
  • 5
    Do not forget about negative tests: check the installation in conditions of insufficient resources (disk space, RAM) or privileges, interrupt the installation process during its active phase (for example, by rebooting the server).
  • 6
    Use special tools for testing web forms (for example, Web Developer Toolbar).
Web server part
Web server part
Load testing creates a simulation where a certain number of users work with the application. This type of testing is carried out using special tools (for example, jMeter). The main goal of these tools is to determine the load profiles and create an artificial load for them, to identify the boundary values of the application (or server). The data obtained is then carefully analysed.

This type of testing serves to identify the software and hardware bottlenecks. This further helps to ensure the stability of the web server and the application itself.

Let's give an example. Imagine a large commercial product that works with a variety of contracts. Suppose that during testing, the team checked how the program can simultaneously handle tens of thousands of contracts. But no one was able to predict that in practice it will be about hundreds of thousands, and sometimes even millions of contracts.

That is why it is so important to conduct high-quality load testing for a web application because it allows you to detect many potential problems just when they can be easily fixed.
Load testing creates a simulation where a certain number of users work with the application. This type of testing is carried out using special tools (for example, jMeter). The main goal of these tools is to determine the load profiles and create an artificial load for them, to identify the boundary values of the application (or server). The data obtained is then carefully analysed.

This type of testing serves to identify the software and hardware bottlenecks. This further helps to ensure the stability of the web server and the application itself.

Let's give an example. Imagine a large commercial product that works with a variety of contracts. Suppose that during testing, the team checked how the program can simultaneously handle tens of thousands of contracts. But no one was able to predict that in practice it will be about hundreds of thousands, and sometimes even millions of contracts.

That is why it is so important to conduct high-quality load testing for a web application because it allows you to detect many potential problems just when they can be easily fixed.
Database: "to keep or not to keep?"
The database of the web application stores all the data that is necessary for its work. When testing a database, you should pay attention to the following points:
  • If the data is entered through the interface, it should be stored in the database in an unchanged (original) form.
  • The data stored in the database should be equally displayed in any part of the application (unless the business logic of the application requires otherwise).
  • The names of the tables and the structure of the database must comply with the project documentation.
  • It is necessary to ensure that requests are not processed for too long, and the number of connections is sufficient. Monitoring the state of the database is one of the important points of testing.
  • It should be borne in mind that deleting a record in the database is not always accompanied by complete deletion of the entity. Sometimes the so-called "pseudo-deletion" is used, and it is necessary to check whether it is executed correctly.
  • It is recommended to either fill in the empty database on the test bed with randomly generated data, or create the production dump and, after obfuscating the data, "fill it in" into the database under test. Sometimes the qualification of the tester (or another reason) does not allow you to carry out this process yourself: in this case, it is recommended to contact the developers for help.
Database: "to keep or not to keep?"
The database of the web application stores all the data that is necessary for its work. When testing a database, you should pay attention to the following points:
  • If the data is entered through the interface, it should be stored in the database in an unchanged (original) form.
  • The data stored in the database should be equally displayed in any part of the application (unless the business logic of the application requires otherwise).
  • The names of the tables and the structure of the database must comply with the project documentation.
  • It is necessary to ensure that requests are not processed for too long, and the number of connections is sufficient. Monitoring the state of the database is one of the important points of testing.
  • It should be borne in mind that deleting a record in the database is not always accompanied by complete deletion of the entity. Sometimes the so-called "pseudo-deletion" is used, and it is necessary to check whether it is executed correctly.
  • It is recommended to either fill in the empty database on the test bed with randomly generated data, or create the production dump and, after obfuscating the data, "fill it in" into the database under test. Sometimes the qualification of the tester (or another reason) does not allow you to carry out this process yourself: in this case, it is recommended to contact the developers for help.
Was it helpful? We hope it was.
QA Camp team

You may also like: