Skip to main content

Envisioning Testing as a Three-Course Meal

Marcus Merrell
Sauce Labs

A Metaphorical Appetizer

Might we recommend a light and crisp prosecco?

In Italy, it is customary to treat wine as part of the meal. Wine isn't a beverage: wine is as integral to the meal as the food itself. The wine is the food. The food is the wine. They are inseparable, complementary.

Too often, testing is treated with the same reverence as the post-meal task of loading the dishwasher, when it should be treated like an elegant wine pairing: a test suite, properly written, gives you objective proof that your code is functioning properly, from the individual units to the full application. A passing suite of unit tests, executed after even a small change to someone else's code, gives you a dopamine hit almost as powerful as a sip of wine. If you treat testing like loading the dishwasher, you're probably overlooking details and missing steps. It's hard to care about details of any task you hate.

Like wine, tests can give you both pleasure and (given enough quantity) confidence.

To further stretch the metaphor: Testing can be off-loaded to a separate person or team — forgotten — just like loading the dishwasher. But everyone needs to eat, and everyone deserves the pleasure of a perfect pairing of wine with their dinner.


Photo from Mangia Michelle

The Main Course

Paired with a delightful Cabernet Sauvignon, or perhaps JUnit?

Unit Tests
Unit tests exist to ensure that a team's code works as correctly as it can. Few things are faster to execute than unit tests — we're talking about nanoseconds. You should have many of them, liberally sprinkled throughout the codebase. The bigger your team, the more you will thank yourself for requiring them. Unit tests apply equally to any kind of software project, including mobile apps.

Integration Tests
Integration tests ensure that one team's code interacts with other codebases as expected, and as it evolves and changes. They often talk to a microservice developed by another team. They don't execute as quickly as unit tests, but they are still blazingly fast — fractions of a second. Integration tests are critical to mobile testing in particular, because apps live and die by the function and efficiency of the APIs they use, and because so much of the mobile ecosystem beyond the API involves variables your team can't control.

Functional UI Tests
Functional UI tests are meant to string disparate parts of the system together, to ensure it works as a whole. These tests also tend to incorporate other kinds of software over which your team has zero control: web browsers, mobile devices, mobile operating systems, and background processes. As a result, these tests are exponentially slower than unit and integration tests.

As difficult as they are to develop and maintain, they are absolutely critical to the success of your app. Due to the complications of constant changes — to operating systems, libraries, and even mobile device hardware, the number of ways your code might be executed increases exponentially, and only testing can guarantee success.

Dessert

A Tawny Port will do the trick. Or some Selenium.

And thus we leave our culinary metaphor behind. While I expect to receive immediate gratification from my meal at a four star restaurant, succession planning requires a different motivation.

Automated testing is a form of succession planning. Unit, integration, Functional tests — these are created by people who understand the requirements that were used to create the software, and they evolve to changes made, staying relevant or being excised as requirements are altered.

Thus this is where our testing meal metaphor ends. While I expect to receive immediate gratification from my meal at a four star restaurant, succession planning requires a different motivation.

I don't write tests for myself, for today.

I write tests for myself, for a year from now, when I have to change my code and I can't remember what I was thinking.

I write tests for a new developer who inherits the code base later, after I'm gone.

My tests set my successors up for success. The seeds of good testing are planted today, to create the beautiful vintage, your team will savor for years.

Marcus Merrell is VP of Technology Strategy at Sauce Labs

Hot Topics

The Latest

For years, production operations teams have treated alert fatigue as a quality-of-life problem: something that makes on-call rotations miserable but isn't considered a direct contributor to outages. That framing doesn't capture how these systems fail, and we now have data to show why. More importantly, it's now clear alert fatigue is a symptom of a deeper issue: production systems have outgrown the current operational approaches ...

I was on a customer call last fall when an enterprise architect said something I haven't been able to shake. Her team had just spent four months trying to swap one AI vendor for another. The original plan said three weeks. "We didn't switch vendors," she told me. "We rebuilt half our integrations and discovered what we'd actually been depending on." Most enterprise leaders don't expect that to be the experience ...

Ask any senior SRE or platform engineer what keeps them up at night, and the answer probably isn't the monitoring tool — it's the data feeding it. The proliferation of APM, observability, and AIOps platforms has created a telemetry sprawl problem that most teams manage reactively rather than architect proactively. Metrics are going to one platform. Traces routed somewhere else. Logs duplicated across multiple backends because nobody wants to be caught without them when something breaks. Every redundant stream costs money ...

80% of respondents agree that the IT role is shifting from operators to orchestrators, according to the 2026 IT Trends Report: The Human Side of Autonomous IT from SolarWinds ...

40% of organizations deploying AI will implement dedicated AI observability tools by 2028 to monitor model performance, bias and outputs, according to Gartner ...

Until AI-powered engineering tools have live visibility of how code behaves at runtime, they cannot be trusted to autonomously ensure reliable systems, according to the State of AI-Powered Engineering Report 2026 report from Lightrun. The report reveals that a major volume of manual work is required when AI-generated code is deployed: 43% of AI-generated code requires manual debugging in production, even after passing QA or staging tests. Furthermore, an average of three manual redeploy cycles are required to verify a single AI-suggested code fix in production ...

Many organizations describe AI as strategic, but they do not manage it strategically. When AI plans are disconnected from strategy, detached from organizational learning, and protected from serious assumptions testing, the problem is no longer technical immaturity; it is a failure of management discipline ... Executives too often tell organizations to "use AI" before they define what AI is supposed to change. The problem deepens in organizations where strategy isn't well articulated in the first place ...

Across the enterprise technology landscape, a quiet crisis is playing out. Organizations have run hundreds, sometimes thousands, of generative AI pilots. Leadership has celebrated the proof of concept (POCs) ... Industry experience points to a sobering reality: only 5-10% of AI POCs that progress to the pilot stage successfully reach scaled production. The remaining 90% fail because the enterprise environment around them was never ready to absorb them, not the AI models ...

Today's modern systems are not what they once were. Organizations now rely on distributed systems, event-driven workflows, hybrid and multi-cloud environments and continuous delivery pipelines. While each adds flexibility, it also introduces new, often invisible failures. Development speed is no longer the primary bottleneck of innovation. Reliability is ...

Seeing is believing, or in this case, seeing is understanding, according to New Relic's 2025 Observability Forecast for Retail and eCommerce report. Retailers who want to provide exceptional customer experiences while improving IT operations efficiency are leaning on observability ... Here are five key takeaways from the report ...

Envisioning Testing as a Three-Course Meal

Marcus Merrell
Sauce Labs

A Metaphorical Appetizer

Might we recommend a light and crisp prosecco?

In Italy, it is customary to treat wine as part of the meal. Wine isn't a beverage: wine is as integral to the meal as the food itself. The wine is the food. The food is the wine. They are inseparable, complementary.

Too often, testing is treated with the same reverence as the post-meal task of loading the dishwasher, when it should be treated like an elegant wine pairing: a test suite, properly written, gives you objective proof that your code is functioning properly, from the individual units to the full application. A passing suite of unit tests, executed after even a small change to someone else's code, gives you a dopamine hit almost as powerful as a sip of wine. If you treat testing like loading the dishwasher, you're probably overlooking details and missing steps. It's hard to care about details of any task you hate.

Like wine, tests can give you both pleasure and (given enough quantity) confidence.

To further stretch the metaphor: Testing can be off-loaded to a separate person or team — forgotten — just like loading the dishwasher. But everyone needs to eat, and everyone deserves the pleasure of a perfect pairing of wine with their dinner.


Photo from Mangia Michelle

The Main Course

Paired with a delightful Cabernet Sauvignon, or perhaps JUnit?

Unit Tests
Unit tests exist to ensure that a team's code works as correctly as it can. Few things are faster to execute than unit tests — we're talking about nanoseconds. You should have many of them, liberally sprinkled throughout the codebase. The bigger your team, the more you will thank yourself for requiring them. Unit tests apply equally to any kind of software project, including mobile apps.

Integration Tests
Integration tests ensure that one team's code interacts with other codebases as expected, and as it evolves and changes. They often talk to a microservice developed by another team. They don't execute as quickly as unit tests, but they are still blazingly fast — fractions of a second. Integration tests are critical to mobile testing in particular, because apps live and die by the function and efficiency of the APIs they use, and because so much of the mobile ecosystem beyond the API involves variables your team can't control.

Functional UI Tests
Functional UI tests are meant to string disparate parts of the system together, to ensure it works as a whole. These tests also tend to incorporate other kinds of software over which your team has zero control: web browsers, mobile devices, mobile operating systems, and background processes. As a result, these tests are exponentially slower than unit and integration tests.

As difficult as they are to develop and maintain, they are absolutely critical to the success of your app. Due to the complications of constant changes — to operating systems, libraries, and even mobile device hardware, the number of ways your code might be executed increases exponentially, and only testing can guarantee success.

Dessert

A Tawny Port will do the trick. Or some Selenium.

And thus we leave our culinary metaphor behind. While I expect to receive immediate gratification from my meal at a four star restaurant, succession planning requires a different motivation.

Automated testing is a form of succession planning. Unit, integration, Functional tests — these are created by people who understand the requirements that were used to create the software, and they evolve to changes made, staying relevant or being excised as requirements are altered.

Thus this is where our testing meal metaphor ends. While I expect to receive immediate gratification from my meal at a four star restaurant, succession planning requires a different motivation.

I don't write tests for myself, for today.

I write tests for myself, for a year from now, when I have to change my code and I can't remember what I was thinking.

I write tests for a new developer who inherits the code base later, after I'm gone.

My tests set my successors up for success. The seeds of good testing are planted today, to create the beautiful vintage, your team will savor for years.

Marcus Merrell is VP of Technology Strategy at Sauce Labs

Hot Topics

The Latest

For years, production operations teams have treated alert fatigue as a quality-of-life problem: something that makes on-call rotations miserable but isn't considered a direct contributor to outages. That framing doesn't capture how these systems fail, and we now have data to show why. More importantly, it's now clear alert fatigue is a symptom of a deeper issue: production systems have outgrown the current operational approaches ...

I was on a customer call last fall when an enterprise architect said something I haven't been able to shake. Her team had just spent four months trying to swap one AI vendor for another. The original plan said three weeks. "We didn't switch vendors," she told me. "We rebuilt half our integrations and discovered what we'd actually been depending on." Most enterprise leaders don't expect that to be the experience ...

Ask any senior SRE or platform engineer what keeps them up at night, and the answer probably isn't the monitoring tool — it's the data feeding it. The proliferation of APM, observability, and AIOps platforms has created a telemetry sprawl problem that most teams manage reactively rather than architect proactively. Metrics are going to one platform. Traces routed somewhere else. Logs duplicated across multiple backends because nobody wants to be caught without them when something breaks. Every redundant stream costs money ...

80% of respondents agree that the IT role is shifting from operators to orchestrators, according to the 2026 IT Trends Report: The Human Side of Autonomous IT from SolarWinds ...

40% of organizations deploying AI will implement dedicated AI observability tools by 2028 to monitor model performance, bias and outputs, according to Gartner ...

Until AI-powered engineering tools have live visibility of how code behaves at runtime, they cannot be trusted to autonomously ensure reliable systems, according to the State of AI-Powered Engineering Report 2026 report from Lightrun. The report reveals that a major volume of manual work is required when AI-generated code is deployed: 43% of AI-generated code requires manual debugging in production, even after passing QA or staging tests. Furthermore, an average of three manual redeploy cycles are required to verify a single AI-suggested code fix in production ...

Many organizations describe AI as strategic, but they do not manage it strategically. When AI plans are disconnected from strategy, detached from organizational learning, and protected from serious assumptions testing, the problem is no longer technical immaturity; it is a failure of management discipline ... Executives too often tell organizations to "use AI" before they define what AI is supposed to change. The problem deepens in organizations where strategy isn't well articulated in the first place ...

Across the enterprise technology landscape, a quiet crisis is playing out. Organizations have run hundreds, sometimes thousands, of generative AI pilots. Leadership has celebrated the proof of concept (POCs) ... Industry experience points to a sobering reality: only 5-10% of AI POCs that progress to the pilot stage successfully reach scaled production. The remaining 90% fail because the enterprise environment around them was never ready to absorb them, not the AI models ...

Today's modern systems are not what they once were. Organizations now rely on distributed systems, event-driven workflows, hybrid and multi-cloud environments and continuous delivery pipelines. While each adds flexibility, it also introduces new, often invisible failures. Development speed is no longer the primary bottleneck of innovation. Reliability is ...

Seeing is believing, or in this case, seeing is understanding, according to New Relic's 2025 Observability Forecast for Retail and eCommerce report. Retailers who want to provide exceptional customer experiences while improving IT operations efficiency are leaning on observability ... Here are five key takeaways from the report ...