End-to-End (E2E) Testing
End-to-end testing is a technique that tests the entire software product from beginning to end to ensure the application flow behaves as expected. It defines the product’s system dependencies and ensures all integrated pieces work together as expected.
End-to-end testing versus system testing
Comparing end-to-end testing and system testing, the latter actually has a narrower focus. For this reason, it makes more sense to look at what system testing covers and proceed to what’s added in end-to-end testing.
|System Testing||End-to-End Testing|
|Validates the software system but doesn’t look outside of it.||Validates interconnected systems and external interfaces.|
|Looks at system features (viewing each feature as a subsystem).||Looks at the UI/GUI, backend and hardware to cover all functionality that the user experiences when using an application|
|Follows integration testing.||Follows system testing.|
|Is easier to automate (though manual system testing is still a widespread practice).||Manual end-to-end testing is more common due to the need of dealing with external interfaces.|
Service-oriented architecture (SOA) is an architectural pattern as well as a collection of design principles that support loose coupling and reusability of different components in a distributed system.
An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.
Site Reliability Engineering (SRE)
SRE is a paradigm of building systems in a way that maximizes reliability, tracking the results, and constantly adjusting and improving the workflow. It is vital for decreasing the number of incidents in production and implementing prescriptions and procedures that result in measurable performance improvements