Test Automation & Frameworks
Selenium, Playwright, Cypress, Appium, and the concepts that cut across all of them — locators, waits, flaky tests, POM.
A
C
Codeless test automation lets testers build automated tests through a visual interface — recording actions, selecting elements, defining assertions — without writing traditional programming code. It aims to make automation accessible to manual testers and lower the barrier to building a test suite.
A CSS selector is a pattern used to identify one or more HTML elements on a page, based on tag name, class, ID, attributes, or their position in the document — the same syntax used to style pages with CSS, repurposed by test automation tools to locate elements to interact with.
Cucumber is an open-source test automation tool that runs Behavior-Driven Development scenarios written in Gherkin, mapping each plain-language step to a corresponding piece of automation code called a step definition. It's one of the most widely used BDD frameworks across multiple programming languages.
Cypress is a JavaScript-based end-to-end testing framework that runs directly inside the browser alongside the application under test, giving it fast, reliable access to the DOM and network traffic. It's known for its time-travel debugging, automatic waiting, and tight developer feedback loop.
E
F
H
I
J
L
P
The Page Object Model is a design pattern for UI test automation where each page (or component) of an application gets its own class encapsulating that page's locators and interactions. Tests call methods like loginPage.signIn() instead of repeating raw locator code, so a UI change only requires updating one page object, not every test that touches that page.
Parallel test execution runs multiple tests simultaneously across different processes, machines, or browser instances instead of one after another, cutting total suite runtime dramatically. It's what makes large automated test suites practical to run on every pull request instead of only overnight.
Playwright is an open-source browser automation framework from Microsoft for end-to-end testing across Chromium, Firefox, and WebKit with a single API. It's known for built-in auto-waiting (no manual sleeps or explicit waits needed for most interactions), a codegen recorder, parallel execution out of the box, and a trace viewer for debugging failed runs.
Puppeteer is a Node.js library from Google for controlling headless (or headed) Chrome and Chromium programmatically — automating navigation, form-filling, screenshotting, and PDF generation. It predates Playwright and shares much of its underlying protocol, but is limited to Chromium-family browsers.
PyTest is the most widely used testing framework for Python, known for its concise syntax (plain `assert` statements instead of special assertion methods), powerful fixture system for setup and teardown, and a large plugin ecosystem. It's the default choice for most Python test automation.
R
S
The Screenplay Pattern is a test automation design pattern that models tests around user "actors" performing "tasks" and asking "questions" about system state, rather than pages exposing methods (as in the Page Object Model). It's built around composition, scaling better for large suites with many cross-cutting user actions.
Selenium is a long-standing open-source project for automating web browsers, best known for Selenium WebDriver, which provides a common API for driving Chrome, Firefox, Safari, and Edge programmatically. It's one of the oldest and most widely deployed browser automation tools still in active use.
Selenium WebDriver is the core browser-automation API within the Selenium project — a protocol and set of language bindings that let test code control a real browser directly (clicking, typing, navigating) as if a user were doing it, without needing a separate recording or playback layer.
Self-healing locators automatically adapt when a UI element's original locator breaks — a changed CSS class, a moved ID — by using heuristics or AI to find the same logical element through alternate attributes, instead of the test simply failing. It's a targeted fix for one of automation's most common maintenance burdens.
Snapshot testing captures the current output of a component or function — rendered HTML, a data structure, a serialized object — and saves it as a reference; future test runs compare new output against that saved snapshot and fail if anything unexpectedly changed. It's especially common in frontend component testing.
SpecFlow is a Behavior-Driven Development framework for .NET that runs Gherkin-written scenarios, mapping each step to C# step-definition code — the .NET ecosystem's equivalent to Cucumber, integrating directly with Visual Studio and the standard .NET test runners.
T
Test automation uses software tools and scripts to execute tests, compare actual and expected results, and report outcomes — replacing or supplementing manual, human-driven test execution. It trades upfront setup cost for speed, consistency, and the ability to re-run the same checks constantly at near-zero marginal cost.
A test automation framework is the shared structure, conventions, and reusable code that automated tests are built on top of — locator strategy, reporting, configuration, and utility functions — so individual tests stay simple and consistent instead of each reinventing its own setup and plumbing.
The test automation pyramid is a model for balancing test investment across levels — a large base of fast unit tests, a smaller middle layer of integration tests, and a thin top layer of slow, brittle end-to-end tests — favoring cheap, fast, reliable tests over slow, expensive ones wherever possible.
TestNG is a testing framework for Java, inspired by JUnit but adding features like flexible test configuration, parallel execution, data providers, and grouping — designed originally to address gaps in older JUnit versions, and widely used for both unit testing and larger automation suites.