End-to-End Testing Tutorial: What is E2E Testing with Example


End-to-End Testing

End-to-End testing is a software testing approach that verifies the complete software, including its interaction with external interfaces, from beginning to end. End-to-end testing examines the entire software for dependencies, data integrity, and connectivity with other systems, interfaces, and databases in order to simulate a complete production environment.

It checks batch/data processing from various upstream/downstream systems in addition to the software system. As a result, the term "End-to- End" was coined. End-to-end testing is normally done after functional and system testing has been completed. It simulates real-time conditions by using real-world data and a test environment. Chain testing is another name for end-to-end testing.

What is the purpose of End-to-End Testing?

End-to-end testing evaluates the whole system flow and boosts confidence by discovering bugs and boosting subsystem test coverage. Modern software systems are sophisticated and linked, with various subsystems that may be different from those in use today. Failure of any subsystem can bring the entire system down, which is a big risk that can be avoided by End-to-End testing.

Process of End-to-End Testing

The End to End testing procedure is depicted in the diagram below.

  • Requirements -

    • Requirements Capturing

    • Documentation

  • E2E Design -

    • Design of components

    • E2E Design

  • Component Design -

    • Component Design and Testing

  • Development -

    • Development Coding and Design

  • E2E Testing -

    • Environment setup for end 2 end setup

    • Test Design and Execution

Action Involved in End-to-End Testing

The following are the main actions involved in End-to-End Testing −

  • An examination of end-to-end testing requirements

  • Configuration of the test environment and hardware/software requirements

  • Describe the processes of all the systems and their subsystems.

  • Roles and duties for all systems are described.

  • Methodologies and criteria for testing

  • End-to-end requirement tracking and test case design

  • Data for each system's input and output

What is the best way to develop end-to-end test cases?

There are three aspects to the End to End Testing Design framework.

  • Create user-defined functions

  • Constructing Conditions

  • Create Test Cases

Let's take a closer look at them:-

Construct User Functions

As part of the construct user functions, the following actions should be completed

  • Make a list of the system's characteristics and their associated components.

  • For each feature or function, make a list of the input data, action, and output data.

  • Determine the functions' interrelationships.

  • Determine if the function is reusable or self-contained.

Consider the following scenario: you log into your bank account and transfer money from another bank account to your own (3rdparty subsystem)

  • To use the banking system, you must first log in.

  • Check the account balance to see how much money is left in the account.

  • Make a money transfer from your account to another bank account (3rdparty sub-system)

  • Examine your most recent account balance.

  • Close the application.

Create conditions based on the user's role.

As part of the construction conditions, the following operations are carried out −

  • Creating a set of criteria for each defined user function

  • Sequence, timing, and data conditions are examples of conditions.

Checking of additional criteria, such as −

A page for logging in

  • Password and Username are both invalid.

  • Validating the login and password

  • Checking the strength of a password

  • Error message inspection

Balance Amount

  • After 24 hours, check the current balance. (In the case of a transfer to a different bank)

  • If the transfer amount is larger than the existing balance, look for an error notice.

Construct a Test Scenario

Creating a Test Scenario for the stated user function

In this instance,

  • Register with the system.

  • Check the balance of your bank account.

  • Transfer the funds to your bank account.

Create a number of test scenarios

For each scenario, create one or more test cases. Each condition may be included in a separate test case.

End-to-End Testing Metrics

The metrics listed below are just a handful of the many that are used in end-to-end testing.

  • Test Case Preparation Status - It shows how far the test case preparation has progressed in comparison to the schedule.

  • Progress on the Weekly Test - Shows % test completion week by week, including failed, not executed, and completed against planned execution tests.

  • Faults Status & Details - This report shows the percentage of open and closed defects each week. In addition, week-by-week distribution of faults depending on severity and priority

  • Availability of the environment - Total number of hours "up" / Total number of hours scheduled for testing per day

System Testing vs. End-to-End Testing

The following table highlights the major differences between System Testing and End-to-End Testing −

End-to-End testingSystem testing
Validates both the software system and its associated subsystems.Validates just the software system in accordance with the criteria.
It examines the entire process flow from beginning to conclusion.It examines the system's functionality and characteristics.
All user interfaces and backend systems will be tested.Testing will include both functional and non-functional testing.
It's run once System Testing is finished.It is carried after following Integration Testing.
External interfaces, which might be difficult to automate, are part of end-to-end testing. As a result, manual testing is preferable.System testing can be done manually or automatically.

E2E Tests Come in a Variety of Forms

Manual E2E testing and automated E2E testing are the two basic forms.

To evaluate compliance with the application requirements, a business tester pretends to be the user (on as many devices and screen sizes as he has access to). Purchasing a purchase from an e-commerce store, for example.

The tester would buy the product in the same way that a regular user would: by clicking the add-to-cart button, opening the cart, proceeding to the purchase interface, and paying.

The tester's goal is to see if any of the flow's steps are broken.

Automated E2E testing has the same purpose. Only that automated testing provides more advanced capabilities that a human tester might not be able to provide. Various test automation systems provide automated testing services as well as a variety of devices (dubbed "device labs") on which tests may be conducted.

Automated Testing vs. Manual Testing

  • As previously indicated, manual testing entails a tester manually executing tests. Poor testing might be caused by human mistakes. Testing is conducted automatically in automated tests. As a result, automated testing can be more accurate in many situations.

  • Manual testing is more straightforward to set up and comprehend. Automated testing is usually difficult to set up. Automated testing usually has a steeper learning curve.

  • Manual testing necessitates a lower initial cost and resource commitment. While automated testing requires a higher initial cost, it provides a large return on investment as your testing process grows and develops. As a result, this is something to think about while selecting automated testing solutions.

  • It's easier to recreate a production situation via manual testing. However, certain automated technologies make the procedure more difficult. It's simple to check that certain requirements are satisfied manually before a feature functions, but automated testing methods might be complicated to set up.

Checklist for E2E Testing

Because a user interface is made up of numerous elements, E2E isn't only about testing the user interface.

An API may be used to access material from a database for a blog site. It's self-evident that the frontend design, database, and API must all be tested independently and jointly in this situation.

A checklist to follow during E2E tests is as follows −

  • Database − You'll need to test the database you're using for your system. You might run tests to check that data is properly saved, structured, read, and updated.

  • Performance − While a webpage may navigate well, user experience is influenced by its speed. As a result, it's critical to evaluate a page's or feature's performance.

  • Security − The security of a web application dictates how safe it is for both the user and the company. In this instance, vulnerability testing tools are very critical.

  • Functionality − The major purpose of testing in the first place is to ensure that the product works properly. All features must work as intended. Unit tests can likewise be used in this situation.

  • Usability − Components should be useable because they are functioning. Users are just as vital as the tool, therefore testing must include events (such as clicks) on items, as well as correct navigation.

Example of E2E Testing

For this example, we'll utilize Perfecto Scriptless, a codeless testing platform that can be used for end-to-end interface testing, to test the Twitter sign-in process.

Let's establish a test flow before we start building up our tests.

  • Go to twitter.com to find out more.

  • To log in, click the login button.

  • If any of the inputs are empty, make sure the login button does nothing.

  • When the inputs are not empty, submit the details by clicking the button (we'll test with erroneous information).

  • “The username and password you supplied did not match our records,” says the error notice. Please double-check your work and try again.") in red.

  • The test should be saved.

The user will be sent to their account if the credentials are accurate (which can be another test).

Conclusion

End-to-end testing is the process of checking a software system and its sub-systems in software engineering. The most difficult aspect of this testing is having sufficient knowledge of the entire system as well as an associated sub-system.

Updated on: 30-Nov-2021

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements