Testing is an automated software-based check that runs without manual execution to determine whether behavior meets specified expectations. Effective tests protect existing features while teams change and extend the system. section 1.2.1 section 14.2
A practical testing workflow connects shared acceptance criteria to automation. Tests should express meaningful behavior rather than imitate a sequence of low-level interactions; otherwise they can become slow, flaky, difficult to understand, and expensive to maintain. section 3.5 section 14.2
Useful testing practices include:
- Automate acceptance criteria in a structured form such as Given, When, Then so product owners and testers can understand the checks. section 3.5
- Treat test code as production code: design it for reliability, meaningfulness, and maintainability rather than as disposable scripts. section 8.2
- Prioritize automation around critical user journeys, business priorities, risks, and the interfaces through which the system is used. section 14.1
- Build a test automation system around scenarios, frameworks, libraries, and integration code instead of placing low-level interactions directly in step definitions. section 14.2
Acceptance testing for frequent-flyer points
A team can turn a requirement about accumulating and managing frequent-flyer points into structured acceptance scenarios, then automate those scenarios using a suitable BDD tool and implementation language. The resulting suite checks that the system continues to meet its acceptance criteria as new functionality is added. section 3.5 section 8.2 section 14.2
Figure 14.1 The overall approach to creating Journey Maps for existing systems requires us to shift focus from discovering what features need to be built to discovering how the existing features are used.
Use Journey Mapping to shift from guessing which features to test toward identifying how existing features are used and which workflows are critical to user goals. section 14.1




















































