The programmer’s view
It’s common to think of programmer (automated) tests in terms of unit (smallest piece), integration (components interaction), and system (the entire application or business process). As the piece that’s being tested becomes smaller, it tends to run faster, with less setup, change less often, and be easier to reproduce.
In the early 2000s, Mike Cohn and Jason Huggins independently came up with a vision for this called the test automation pyramid. A popular view of this pyramid, as imagined by Seb Rose (https://cucumber.io/blog/bdd/eviscerating-the-test-automation-pyramid/), is shown here:
Figure 3.1 – The traditional test automation pyramid
Image source: https://martinfowler.com/articles/practical-test-pyramid.html
The purpose of the pyramid, according to Cohn, was to shift the focus and emphasis from end-to-end user interface tests, which are easily done by a human, yet slow and brittle, to the faster...