# E2E Testing

* E2E Focused on mimicking real life scenarios and usage and involves testing information flow across applications.
* **End To End Testing** is a software testing method that validates entire software from starting to the end along with its integration with external interfaces.&#x20;

### Why End to End Testing?

**End To End Testing** verifies complete system flow and increases confidence by detecting issues and increasing[ Test Coverage ](https://www.guru99.com/test-coverage-in-software-testing.html)of subsystems. Modern software systems are complex and interconnected with multiple subsystems that may differ from current systems. The whole system can collapse by failure of any subsystem that is major risk which can be avoided by End-to-End testing.

### End to End Testing Process:

The following diagram gives an overview of the End to End testing process.

![](https://2808248181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8eU2eqBm5NpK3wHDjfNO%2Fuploads%2F325RfAFT6druBIBhOsjb%2Fimage.png?alt=media\&token=7e0fc1c5-8120-4b02-a406-926c36ece3a9)

The chief activities involved in End to End Testing are –

* Study of an end to end testing requirements
* Test Environment setup and hardware/software requirements
* Describe all the systems and its subsystems processes.
* Description of roles and responsibilities for all the systems
* Testing methodology and standards
* End to end requirements tracking and designing of test cases
* Input and output data for each system

### How to create End-to-End Test Cases?

![END-To-END Testing Guide: Complete E2E Testing Tutorial](https://www.guru99.com/images/End-End-Testing-Test-Cases\(1\).png)

End to End Testing Design framework consists of three parts

1. Build user functions
2. Build Conditions
3. Build Test Cases

#### Build User Functions

Following activities should be done as a part of build user functions:

* List down the features of the system and their interconnected components
* List the input data, action and the output data for each feature or function
* Identify the relationships between the functions
* Determine whether the function can be reusable or independent

#### Build Conditions based on User Function

Following activities are performed as a part of build conditions:

* Building a set of conditions for each user function defined
* Conditions include sequence, timing and data conditions

Resources:

[https://www.guru99.com/end-to-end-testing.html](https://www.guru99.com/end-to-end-testing.html)

[https://katalon.com/resources-center/blog/end-to-end-e2e-testing](https://katalon.com/resources-center/blog/end-to-end-e2e-testing)
