ABT Foundations • Module 4
Composable Test Design
Building complex tests from simple, reusable parts
Module 4 of 30

"Dear Marilyn,
Our test cases are getting longer and longer. Some are over 200 steps. They're impossible to debug when they fail. How do we manage this complexity?
— Lost in the Steps"
Marilyn Responds:
A 200-step test case is not a test case. It's a cry for help. No human can understand it, debug it, or maintain it.
The solution is composition. Break your monolithic test into smaller, focused actions. Each action should do one thing well.
A well-designed test reads like a story: 'Given a logged-in user, When they add items to cart and checkout, Then they receive a confirmation.'
The Composition Pattern
Composable tests follow these principles:
- Single Responsibility — Each action does one thing
- Clear Interfaces — Actions have well-defined inputs and outputs
- No Side Effects — Actions don't modify global state unexpectedly
- Testable in Isolation — Each action can be verified independently
Quick Check: Module 4
Question: What is the main benefit of composable test design?
a) Tests run in parallel automatically
b) Complex tests become manageable through smaller, focused actions
c) Tests require less test data
d) Tests don't need assertions
(Answer: b — Composition breaks complexity into manageable pieces, making tests easier to understand, debug, and maintain.)