liveBook · Manning

Multi-tier application

As explained in BDD in Action, Second Edition

Layered architecture is a software architecture pattern that organizes responsibilities into layers with controlled dependencies between them.

A multi-tier application separates responsibilities into layers so teams can evolve complex systems without mixing business meaning, workflow rules, and technology-specific interactions. In test automation, layering creates a scalable safety net around an existing system and reduces regression risk while new improvements are introduced. section 14.0

A layered test automation system commonly divides responsibilities as follows:

  • Specification layer: captures stakeholder-important workflows, business rules, usage examples, actors, and goals. section 14.2.1
  • Domain layer: models the activities required to complete those workflows and gives sequences of lower-level actions business meaning. section 14.2.1
  • Integration layer: translates domain activities into exact interactions with the system under test and its external interfaces. section 14.2.1

The arrangement keeps business-facing specifications distinct from implementation details. Teams can then focus the domain layer on the business process while encapsulating lower-level test tools in the integration layer, improving reuse and portability across suites and teams. section 15.0

Retrofitting an airline system

For an existing airline system without acceptance-test coverage, first identify high-value journeys and automate their important scenarios. Express the business context in the Specification layer, model the required activities in the Domain layer, and connect those activities to the system through the Integration layer. section 14.0 section 14.2.1

Figure 14.15 Layers of a typical test automation system based on Serenity/JS, with their contents

Use the layer diagram to trace how specifications, domain abstractions, and integration details are arranged in a Serenity/JS test automation system. section 14.2.1

How BDD in Action, Second Edition covers it

How deep it goes
Defines three test-automation layers and their responsibilities, then stops short of specifying complete implementation details.
Examples
Uses an existing airline system, journey maps, high-value workflows, and Specification, Domain, and Integration layer examples.
What you can do after
Design scalable test automation by separating business specifications, domain activities, and technology-specific integrations.
How it connects
Connects layered architecture with acceptance testing, business processes, the Screenplay pattern, BDD, and test-code portability.

Also explained in

Compare how 7 books explain multi-tier application →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of BDD in Action, Second Edition. The section links point to the parts of the book it draws on.