Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
System & E2E Testing | Functional Testing
Introduction to Manual Testing & QA in Web Development
course content

Course Content

Introduction to Manual Testing & QA in Web Development

Introduction to Manual Testing & QA in Web Development

1. Introduction to Software Testing & QA
2. Software Testing in Practice
3. Functional Testing
4. Non-Functional Testing

bookSystem & E2E Testing

System Testing

In System Testing, all the aspects of the application are covered which may be functional or non-functional. It verifies that all components/modules of the system interact with each other correctly and function as expected in a production-level environment. System Testing is also mainly blackbox, since it focuses on the user-end of the functionality and not the code. It makes sure that the application meets all the requirements.

System Testing is usually performed after all the individual units of the application have been tested, along with their interactions with each other. In other words, System Testing is performed usually right after Integration Testing, and to recall - Integration Testing is performed after Unit Testing. So the general sequence of testing goes something like this:

System Testing is primarily functional, since it mostly focuses on the functionality of the application, however, it may also involve non-functional aspects such as Usability, Security, Compatibility and Accessibility. We will learn about each of those concepts in the next section which is more focused on Non-Functional Testing.

Updates to our Application

Some significant updates have been made to the application. Following is a summary of the changes:

  • The issues discovered by running the test cases in the previous task have now been fixed;
  • Users can now create and join chat rooms;
  • Chat rooms can now have passwords;
  • Users can now have profile pictures;
  • A profile management section has been introduced where users can change their username, password and profile picture;
  • The API has been modified accordingly. Now it requires an id parameter;
  • There is an additional endpoint in the API, called send-message and it takes in a chatroom id, a user token and message content;
  • When a post request is made to this endpoint with the required parameters, it sends a message to the relevant chatroom on behalf of the user to whom the token belongs;

The following video demonstrates the new changes in the application, and shows how to make a POST request via Postman:

End-To-End Testing

End-to-End Testing, known as E2E in short, may sometimes be considered the same as System Testing, however there are some differences between the two.

While in System Testing, we test the entire application, including the non-functional aspects. In End-To-End Testing, the approach is more flow-oriented. In End-to-End (E2E) testing, test cases are grouped together in a sequence to simulate the user's experience with the application from start to finish. This ensures that all the possible flows a user might take are covered. For-example, In our chat application, the user first registers for an account, and then joins or creates a chatroom, and then in turn sends or receives messages in the chat. There are some other flow paths as well, which may include other parts of the application like the Profile Management module or the API. The tests are focused on simulating real user scenarios in a production-like environment.

It is important to note that End-to-End Testing is usually performed towards the end of the testing cycle, usually after System Testing. Both End-to-End and System Testing are performed after significant changes in the application as opposed to Regression and Sanity Testing which are performed after every update.

System Testing andEnd-to-End Testing mainly involve writing test cases that focus on the user end of the functionality. Apart from that, System Testing also involves Non-Functional tests therefore it may involve other types of testing which we will look at in the next section.

There are two types of End-To-End Testing, namely Vertical E2E Testing, and Horizontal E2E Testing.

Vertical End-To-End Testing focuses on all the paths which involve a specific feature of the application, while Horizontal End-To-End Testing involves testing the overall application workflow across multiple different features.

1. When is System Testing usually performed in the testing cycle?
2. When is End-to-End Testing typically performed in relation to System Testing?
When is System Testing usually performed in the testing cycle?

When is System Testing usually performed in the testing cycle?

Select the correct answer

When is End-to-End Testing typically performed in relation to System Testing?

When is End-to-End Testing typically performed in relation to System Testing?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 3. Chapter 6
some-alt