# Adam Bender

Published articles for Adam Bender.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## SMURF: Beyond the Test Pyramid

DevFeed: [SMURF: Beyond the Test Pyramid](<https://devfeed.tech/articles/smurf-beyond-the-test-pyramid-23861.md>)

Original publisher: [Read original article](<http://testing.googleblog.com/2024/10/smurf-beyond-test-pyramid.html>)

Author: Google Testing Bloggers (noreply@blogger.com)

Published: 2024-10-15T12:22:00Z

Content type: tutorial

Language: en

Sources: [Google Testing Blog](<https://devfeed.tech/sources/google-testing-blog.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>)

Tags: [adam-bender](<https://devfeed.tech/tags/adam-bender.md>), [article](<https://devfeed.tech/tags/article.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [flaky](<https://devfeed.tech/tags/flaky.md>), [google](<https://devfeed.tech/tags/google.md>), [integration](<https://devfeed.tech/tags/integration.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [memory](<https://devfeed.tech/tags/memory.md>), [production](<https://devfeed.tech/tags/production.md>), [resources](<https://devfeed.tech/tags/resources.md>), [speed](<https://devfeed.tech/tags/speed.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [tott](<https://devfeed.tech/tags/tott.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

This Google Testing on the Toilet article explains why the conventional test pyramid is insufficient for growing test suites. It introduces the SMURF mnemonic--Speed, Maintainability, Utilization, Reliability, and Fidelity--as a framework for balancing testing trade-offs.

### Source excerpt

This article was adapted from a Google Testing on the Toilet (TotT) episode. You can download a printer-friendly version of this TotT episode and post it in your office. By Adam Bender The test pyramid is the canonical heuristic for guiding test suite evolution. It conveys a simple message - prefer more unit tests than integration tests, and prefer more integration tests than end-to-end tests. While useful, the test pyramid lacks the details you need as your test suite grows and you face challenging trade-offs. To scale your test suite, go beyond the test pyramid. The SMURF mnemonic is an easy way to remember the tradeoffs to consider when balancing your test suite: Speed: Unit tests are faster than other test types and can be run more often--you'll catch problems sooner. Maintainability: The aggregated cost of debugging and maintaining tests (of all types) adds up quickly. A larger system under test has more code, and thus greater exposure to dependency churn and requirement drift which, in turn, creates more maintenance work. Utilization: Tests that use fewer resources (memory, disk, CPU) cost less to run. A good test suite optimizes resource utilization so that it does not grow super-linearly with the number of tests. Unit tests usually have better utilization characteristics, often because they use test doubles or only involve limited parts of a system. Reliability: Reliable tests only fail when an actual problem has been discovered. Sorting through flaky tests for problems wastes developer time and costs resources in rerunning the tests. As the size of a system and its corresponding tests grow, non-determinism (and thus, flakiness) creeps in, and your test suite is more likely to become unreliable. Fidelity: High-fidelity tests come closer to approximating real operating conditions (e.g., real databases or traffic loads) and better predict the behavior of our production systems. Integration and end-to-end tests can better reflect realistic conditions, while unit