Framework Architecture (Layered)
// Definition
An organisational pattern for test automation code where concerns are separated into distinct layers — typically: Test Layer (what to verify), Page/Service Layer (how to interact), Utility Layer (shared helpers), Configuration Layer (environment settings), and Driver/Engine Layer (browser or API client setup). Dependencies flow downward only: tests import pages, pages import utilities, nothing imports from the test layer.
// Related terms
Test Automation Framework
A structured set of guidelines, abstractions, and shared infrastructure that supports the creation and execution of automated tests. A framework addresses concerns that individual tests cannot — driver lifecycle management, configuration across environments, reporting, and test data — so each test only describes what to verify, not how to set up and tear down the environment.
Page Object Model (POM)
A design pattern that wraps page interactions in dedicated classes. Tests call methods like `loginPage.signIn(email, password)` instead of manipulating selectors directly. Improves maintainability when locators change.
Test Independence
Each test sets up its own state and doesn't depend on others — order can change, parallelisation works, a single failure doesn't cascade. The non-negotiable property for a maintainable test suite.