Testing Pyramid Clarified

Comparison of four types of automated testing in the Testing Pyramid

Zhimin Zhan
9 min readApr 11, 2022


This article is one of the “IT Terminology Clarified” series.

Many software professionals have heard of the “Testing Pyramid”, and there are many versions.

Image Credit: “Continuous Integration at Facebook” presentation and “The Practical Test Pyramid” article on martinfowler.com
Table of Contents:
· Testing Pyramid (automation)
· Valuable: low => high
· Test Count : large => small
· Execution Speed: fast => slow
· Execution stability : reliable => brittle
· Implementation Challenging : easy => hard
· Beware of ‘Testing Pyramid’ talks by fake agile consultants
· Question: Given Automated UI Testing is so valuable (top of the Pyramid), why it is rarely done in software projects?

Testing Pyramid (automation)

Below is the testing pyramid at Facebook (from this great presentation: “Continuous Integration at Facebook).

Image Credit: https://zhiminzhan.medium.com/recommend-a-great-ci-presentation-continuous-integration-at-facebook-6369323da084

A quick explanation of the three tiers:

  • WebDriver (UI: web or mobile)
    Automated End-to-End tests. Facebook use WebDriver (Selenium WebDriver for Web, and Appium WebDriver for mobile) for its End-to-End testing. For web testing, you see actions in browsers.
    (black-box testing)

“For all of our end-to-end tests at Facebook we use WebDriver, WebDriver is an open-source JSON wired protocol, I encourage you all check it out if you haven’t already. ” — Katie Coons, a software engineer at Product Stability, in “Continuous Integration at Facebook

My suggested automation framework, all based on WebDriver, for different types of apps
  • Integration Tests
    verify two parts of the system coming together
    (white/black-box testing)
  • Unit Tests
    white box testing is performed by programmers at the source code level, specifically, at individual…



Zhimin Zhan

Test automation & CT coach, author, speaker and award-winning software developer. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.