Abstraction separates stable business behavior from volatile implementation details. In automated acceptance tests, this keeps business rules readable while isolating screen layouts, field names, and library calls that change more often. section 9.3
Apply abstraction as a progression from business intent to implementation:
- Describe the business task in readable terms—the what—rather than exposing interaction mechanics. section 11.4
- Decompose high-level goals into smaller tasks, such as locating a registration form, filling it out, and submitting it. section 15.1.1
- Encapsulate low-level actions behind reusable domain-friendly objects or functions, so implementation changes have limited impact. section 9.3 section 15.2.5
Searching for flights
A scenario can say that a traveler searches using departure, destination, and travel class. An abstraction such as SearchFlights.matchingCriteria(searchCriteria) then coordinates navigation, field entry, selection, clicking, and waiting for results without exposing those mechanics in the scenario.
Use the three-layer view to navigate from stable acceptance criteria toward lower-level implementation details. section 9.3














