End-to-End Testing is a methodology used to test whether the flow of an application is performing as designed from start to finish. The purpose of carrying out end-to-end tests is to identify system dependencies and to ensure that the right information is passed between various system components and systems. End-to-end testing involves ensuring that that integrated components of an application function as expected. The entire application is tested in a real-world scenario such as communicating with the database, network, hardware, and other applications.
End to End Testing is usually executed after functional and system testing. It uses actual production like data and test environment to simulate real-time settings. End-to-End testing is also called Chain Testing.
Few activities that are included in end to end process are:
- Thorough Study of end to end testing requirements
- Test Environment setup and study of hardware/software requirements
- Enlist the roles and responsibilities for all the systems and its subsystems processes
- Testing methodology and standards that are followed and used under this system
- End to end requirements of tracking and designing of test cases
- Record and save input and output data for each system
End to End Testing Design framework consists of three parts
- Build user functions
- Build Conditions
- Build Test Case
Build User Functions
Following actions should be performed as a part of Building User Functions:
- Listing features of the software systems and their interconnected sub-systems.
- keeping track of the actions performed as well as Input and Output data.
- Identify the relationships between the functions.
- Find out the nature of different user functions .i.e. if they are independent or are reusable.
Following activities should be performed as a part of Building Conditions based on User Functions:
- For each and every user functions, a set of conditions should be prepared.
- Timing, Data conditions and others factors that affect user functions can be considered as parameters.
Build Test Cases
Following factors should be considered for Building Test Cases:
- For every scenario, one or more test cases should be created to test each and every functionality of the user functions.
- Every single condition should be enlisted as a separate test case.
Metrics for End to End Testing:
Following are a few of many metrics used for End to End Testing.
- Test Case preparation status: It gives Test Case preparation progress against planned. This can be tracked in the form of graph to represent the progress of the planned test cases that are under preparation.
- Weekly Test Progress- This includes week wise representation of the test cases execution progress. It can be reflected through percentage representation for pass, fail, executed, not executed, invalid, etc cases.
- Defects Status & Details- Percentage of the open and closed defects should be calculated weekly. Also, based on defect severity and priority, defects status should be tracked on weekly basis.
- Environment Availability - This keeps a track of the test environment time duration allotted as well as the test environment time actually used while performing End to End testing.
Difference between End to End Testing and System Testing:
|End to End Testing||System Testing|
|Validates the software system as well as interconnected sub-systems.||Validates just the software system as per the requirements specifications.|
|The main emphasis is on verifying the complete end-to-end process flow.||It checks system functionalities and features.|
|While performing testing, all the interfaces including the backend processes of the software system is taken under consideration.||Only Functional and Non-Functional Testing will be considered for testing.|
|It's executed once system testing is completed.||It's executed after integration testing.|
|End to End testing involves checking external interfaces which can be complex to automate. Hence Manual Testing is preferred.||Both Manual and Automation can be performed for system test.|