Testing Pyramid

The Concept

The Testing Pyramid is a concept in software testing that visualizes and categorizes the different types of tests that should be used in a software testing strategy. It is represented as a pyramid to emphasize the distribution and quantity of each type of test.

Testing Pyramid illustration from Martin Fowler’s “Testing Strategies in a Microservice Architecture”

I really like how Martin Fowler summarizes Testing Pyramid in “Testing Strategies in a Microservice Architecture” (which do not only explains Testing Pyramid, but gives a solid advice for overall Test Automation strategy):

“By following the guidelines of the test pyramid, we can avoid decreasing the value of the tests through large boated test suites that are expensive to maintain and execute.”

The Dynamics

Such distribution is a healthy indicator of a mature project. However, sometimes project context (i.e. project start, huge refactors, etc.) may dictate other proportions – temporarily – until it reaches healthy and balanced state (again).

Testing Pyramid dynamics in project start is described nicely by The Home of Web Automation using “The Testing Pavlova” model

The Fun

Testing Pyramid is a model and likewise other models it can be wrong, but useful. And similar to other models, Testing Pyramid can be used for guiding better conversations.

Michael Kutz designed a physical Testing Pyramid – you can print and build it to have a great conversation starter.

Leave a comment