web application testing

For effective web application testing , we perform the following testing techniques depending on our test requirements.

1. Documentation Testing:

Poor documentation can affect the quality of the product. Good product documentation plays a critical role in the final product. So documentation testing has a vital role in Software Testing. Testing the documented artifacts that are developed prior, during and after the testing of a product is known as documentation testing.

2. Functionality Testing:

What the system actually does is functional testing. To verify that each function of the software application behaves as specified in the requirement document. Testing all the functionalities by providing appropriate input to verify whether the actual output is matching the expected output or not. It is used for checking the workflows, all the links of the web pages, form testing, cookie testing, and database connection.

Typically, functional testing includes the following tasks:

Testing UI Workflows.

We test end to end workflow or business scenarios. Writing test scenarios or test cases would be recommended to cover different scenarios and set pass criteria.

Testing HyperLinks (Link Testing):

We ensure all the links on a website are working correctly and make sure there are no broken links. Types of links include Internal links, Outgoing links, Anchor links, etc.,

Forms Testing (Input field validation):

Forms are used to do interactive communication with end users. A tester needs to ensure all the forms are working as expected.

Forms testing includes:

Cookie Testing:

A Cookie is a small piece of information sent from a website and stored on the users in the users hard drive (in a text file) by the user’s web browser while the user is browsing and is sent back to the website each time the browser requests a page from the website.

Cookie Testing is the process of verifying whether the cookies are working as intended or not. In cookie testing, testers need to test the status of the cookie, expiration of cookie, accessibility of cookie, security constraints, etc.,

Validate HTML and CSS:

We test whether a site has clean HTML structure and optimized CSS as per W3C standards. Also to ensure that search engines can crawl the site easily

3. Usability Testing:

To verify whether the application is user-friendly or not and was comfortably used by an end user or not. The main focus in this testing is to check whether the end user can understand and operate the application easily or not. An application should be self-exploratory and must not require training to operate it.

Usability testing involves test the site navigation and tests the content.

Test the site navigation:

Navigation testing includes:

Test the Content:

Content testing checklist:

4. Interface Testing:

Interface testing is to test the interface between the web server and application server, application server and database server have proper interaction or not. It ensures a positive user experience. It includes verifying the communication processes as well as making sure that error messages are displaying correctly.>

5. Database Testing:

Database testing involves verifying the integrity of data in the front end with the data present in the back end. It validates the schema, database tables, columns, indexes, stored procedures, triggers, data duplication, orphan records, junk records. It involves updating records in a database and verifying the same on the front end.

Database testing includes the following:

6. Compatibility Testing:

Compatibility testing is to ensure whether an application is compatible across different browsers and on a variety of devices.

Browser Compatibility Testing:

Cross Browser Testing is a type of non-functional test which helps us ensure that our website or web application works as expected in various web browsers.While testing a website, we ensure that our website is appearing the same across all the browsers. We ensure to provide the same experience for users no matter what type of OS, the browser they are using.

Device Compatibility Testing:

This test confirms that the web application is responsive and works on devices of different sizes and different operating systems.

7. Performance Testing:

In software, performance testing determines the speed, scalability, and/or stability characteristics of the system or application under test. Performance is concerned with achieving response times, throughput, and resource-utilization levels that meet the performance objectives for the project or product.

Web application performance testing is conducted to mitigate the risk of availability, reliability, scalability, responsiveness, stability, etc. of a system

Performance testing encompasses a number of different types of testing like load testing, volume testing, stress testing, capacity testing, soak/endurance testing and spike testing each of which is designed to uncover or solve performance problems in a system

Capacity Testing:

Capacity Testing is to determine how many users a system/application can handle successfully before the performance goals become unacceptable. This allows us to avoid the potential problems in the future such as increased user base or increased volume of data. It helps users to identify a scaling strategy in order to determine whether a system should scale up or scale out. It is done majorly for eCommerce and Banking sites. are some examples. This testing is sometimes called Scalability testing.

Load Testing:

Load Testing is to verify that a system/application can handle the expected number of transactions and to verify the system/application behavior under both normal and peak load conditions (no. of users).

Volume Testing:

Volume Testing is to verify whether a system/application can handle a large amount of data. This testing focuses on Data Base. Performance tester who does volume testing has to populate a huge volume of data in a database and monitors the behavior of a system.

Stress Testing:

Stress Testing is to verify the behavior of the system once the load increases more than the system’s design expectations. This testing addresses which components fail first when we stress the system by applying the load beyond the design expectations. So that we can design a more robust system.

Soak/Endurance Testing:

Soak Testing is aka Endurance Testing. Running a system at high load for a prolonged period of time to identify the performance problems is called Soak Testing. It is to make sure the software can handle the expected load over a long period of time.

Spike Testing:

Spike Testing is to determine the behavior of the system under a sudden increase of load (a large number of users) on the system.

8. Security Testing:

Security testing is a process to determine whether the system protects data and maintains functionality as intended. Security testing aims to find out all possible loopholes and weaknesses of the system in the starting stage itself to avoid inconsistent system performance, unexpected breakdown, loss of information, loss of revenue, loss of customer’s trust.

Security tests include testing for vulnerabilities such as

9. Crowd Testing or Crowdsourced testing:

Crowd testing or crowdsourced testing is an emergent trend in Software Testing which leverages a crowd (a large number of people) to test software applications quickly and effectively. Usually, testing is done by in-house software testers or outsourced QA consultants whereas crowdsourced testing is done by a community of expert QAs around the world through an online crowdsourced platform.