Course Content
Introduction to Manual Testing & QA in Web Development
Introduction to Manual Testing & QA in Web Development
System & 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 chatroomid
, a usertoken
and messagecontent
; - 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.
Thanks for your feedback!