What is a web application? It is - a client-server application where the client - is a browser and the server - web server. Web application testing determines its functionality, usability and content. In fact, site testing shows how successfully completed all the work on the creation of a web resource. What should be looked at when testing web based applications - read further.
Functional testing (FUNCTIONALITY TESTING)
As part of the functional test checks the validity of links, site work with the database, forms that are used on the site, as well as how cookie works. Speaking more about the links, the following should be checked:
That external links have correct ways;
Properly working internal links;
Whether there are links that lead to the same pages;
Check references of URLs, which are used to send emails to administrators of the site;
Identify pages that don't have links to them;
Determination of broken links.
When testing the form should be checked the following:
The validity of the input data;
Valid values for the input data fields;
Invalid values for the input data fields;
Forms' options which may be deleted, or any other data modification.
TESTING OF COOKIES
Cookies are small files that are stored on the user's machine after visiting the site. Typically, they are used to login on the site. An application or website is tested with disabled or enabled cookies. Testing, are the cookies encrypted, before being recorded on the user's computer. If cookies have the duration of action, they are tested whether they work at the certain time. It is also worth checking the safety aspects when deleting "cookies."
CHECKING HTML / CSS
Testing of HTML / CSS is important if you optimize a site for search engines. Basically is tested the HTML syntax errors. Also should be checked whether the site is available for search engines.
How the data is being stored and processed - is very important for how a website will operate as a whole. Therefore, the database must be checked for errors during editing, deletion, modification, that are associated with the operation of the database. Verify that all database queries work correctly.
Functional testing can be performed manually or by using the automating tools.
Web based application manual testing has some peculiarities when testing usability. As part of testing the usability should be checked how easy for user to navigate through the site, whether the buttons, forms and fields are comfortable to be used, whether is corrected menu and headings, whether a user to easily navigate through the site in general. Whether is the optimal color palette of the site, font size and things that are related to the design.
Also is necessary to test the site content. At first, for grammatical errors, but not only. Content should be informative, clear, structured and logically connected between each other. If the site has any instructions, they should be clear and contain the correct information.
In most cases, for the user interface testing should be checked such things:
displaying the site on the different screen resolutions;
displaying the site on various browsers, or compatibility with different web browsers and their versions;
testing of localized versions: the accuracy of the translation (multilingual, multicurrency), checking the length of the elements of the interface names, etc.
testing GUI on the target devices (mobile, tablets, etc.).
About browser compatibility. It is one of the most important components of web testing. Today there are several popular browsers - FireFox, Opera, Chrome, Safari, EDGE, even Internet Explorer has not completely surrendered his position. Some applications are very dependent on browsers. That's why - the site should have cross-browser compatibility.
Before deploying the system software on production, the speed, stability and scalability under various load conditions should be checked. If the system is already deployed on production without doing performance testing the problems may appear: the system works slowly because of multiple users access to the system, poor usability as a result, which is likely to get a bad reputation. Performance testing involves a number of different tests that allow to make the analysis of different system aspects of the system. Performance testing shows what we need to fix before deploying on production (mostly problems encountered under various load conditions).
TESTING OF SAFETY (SECURITY TESTING)
Typically, these things need to be tested:
Access control - determines the problems associated with accessing unauthorized users to information and functions depending on the roles provided. Testing configuration role model.
Authentication - allows to make sure that there is no possibility to bypass the registration and authorization procedure; verify the correctness of the user data control, exclude the possibility of receiving information about the registered users and their credentials.
Validation input values - is used to check the data processing algorithms including invalid value before they will invoke the application.
Cryptography - detects problems with the encryption, decryption, signature verification of the authenticity, including including the level of network protocols, work with temporary files and cookies.
Mechanisms for error handling - includes checking system application errors that there are no facts of disclosure of internal security mechanisms (for example, by demonstrating exception code).
Server Configuration - looking for errors in multithreaded processes associated with the availability values of variables for sharing to other applications and requests.
Integration with third-party services - allows to ensure the inability to manipulate data transferred between the application and third-party components, such as social networks or payment systems.
Verification of resistance to Dos / DDos attacks - check the application's ability to handle an unplanned high loads and large volumes of data that can be aimed at the crash of the application.