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.

Image removed.
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

Cloud migration is a highly strategic decision that involves leadership sponsorship, business justifications for moving to the cloud, and a clear understanding of expected value. Lack of this alignment can be the reigning cause of cost and budget overruns and why almost half of the migration efforts underway today will fail in the next three years ...

One of the most misunderstood culprits of poor application performance is packet loss. Even minimal packet loss can cripple the throughput of a high-speed connection, making enterprise applications sluggish and frustrating for remote employee ... So, what's going wrong? And why does adding more bandwidth fail to fix the issue? ...

Image
Cloudbrink

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 5 covers the infrastructure and hardware supporting AI ...

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 4 covers advancements in AI technology ...

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 3 covers AI's impact on employees and their roles ...

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 2 covers the challenges presented by AI, as well as solutions to those problems ...

In the final part of APMdigest's 2025 Predictions Series, industry experts offer predictions on how AI will evolve and impact technology and business in 2025 ...

E-commerce is set to skyrocket with a 9% rise over the next few years ... To thrive in this competitive environment, retailers must identify digital resilience as their top priority. In a world where savvy shoppers expect 24/7 access to online deals and experiences, any unexpected downtime to digital services can lead to significant financial losses, damage to brand reputation, abandoned carts with designer shoes, and additional issues ...

Efficiency is a highly-desirable objective in business ... We're seeing this scenario play out in enterprises around the world as they continue to struggle with infrastructures and remote work models with an eye toward operational efficiencies. In contrast to that goal, a recent Broadcom survey of global IT and network professionals found widespread adoption of these strategies is making the network more complex and hampering observability, leading to uptime, performance and security issues. Let's look more closely at these challenges ...

Image
Broadcom

The 2025 Catchpoint SRE Report dives into the forces transforming the SRE landscape, exploring both the challenges and opportunities ahead. Let's break down the key findings and what they mean for SRE professionals and the businesses relying on them ...

Image
Catchpoint

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.

Image removed.
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

Cloud migration is a highly strategic decision that involves leadership sponsorship, business justifications for moving to the cloud, and a clear understanding of expected value. Lack of this alignment can be the reigning cause of cost and budget overruns and why almost half of the migration efforts underway today will fail in the next three years ...

One of the most misunderstood culprits of poor application performance is packet loss. Even minimal packet loss can cripple the throughput of a high-speed connection, making enterprise applications sluggish and frustrating for remote employee ... So, what's going wrong? And why does adding more bandwidth fail to fix the issue? ...

Image
Cloudbrink

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 5 covers the infrastructure and hardware supporting AI ...

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 4 covers advancements in AI technology ...

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 3 covers AI's impact on employees and their roles ...

Industry experts offer predictions on how AI will evolve and impact technology and business in 2025. Part 2 covers the challenges presented by AI, as well as solutions to those problems ...

In the final part of APMdigest's 2025 Predictions Series, industry experts offer predictions on how AI will evolve and impact technology and business in 2025 ...

E-commerce is set to skyrocket with a 9% rise over the next few years ... To thrive in this competitive environment, retailers must identify digital resilience as their top priority. In a world where savvy shoppers expect 24/7 access to online deals and experiences, any unexpected downtime to digital services can lead to significant financial losses, damage to brand reputation, abandoned carts with designer shoes, and additional issues ...

Efficiency is a highly-desirable objective in business ... We're seeing this scenario play out in enterprises around the world as they continue to struggle with infrastructures and remote work models with an eye toward operational efficiencies. In contrast to that goal, a recent Broadcom survey of global IT and network professionals found widespread adoption of these strategies is making the network more complex and hampering observability, leading to uptime, performance and security issues. Let's look more closely at these challenges ...

Image
Broadcom

The 2025 Catchpoint SRE Report dives into the forces transforming the SRE landscape, exploring both the challenges and opportunities ahead. Let's break down the key findings and what they mean for SRE professionals and the businesses relying on them ...

Image
Catchpoint