Application Programming Interface — URLs a backend exposes that accept requests and return data (usually JSON). Testing the API skips the browser entirely.
Artifact (CI)
A file a CI run saves for download afterwards — in this course, failure screenshots and surefire reports.
Assertion
The line of code that compares expected vs actual and declares pass or fail. The Expected Result column of a manual test case, as code — and this course's namesake.
B
BaseTest
A parent class your test classes extend to inherit shared setup and teardown (fresh browser in, guaranteed quit out).
Boundary value analysis
Test design technique: probe the edges (0, 1, 99, 100) where bugs cluster. A manual-tester skill that transfers to automation unchanged.
Branch (Git)
A parallel line of work in a repository. Develop tests on a branch; merge when green.
C
CI / CD
Continuous Integration / Delivery — a server runs your suite automatically on every push (and on a schedule), so nobody has to remember.
Commit
A labeled snapshot in Git history. Write messages like defect summaries.
CSS selector
A pattern that matches elements: #id, .class, [attr='value'], and hierarchy via spaces and >. Your default locator dialect.
D
Data-driven testing
One test method fed many data rows (@ParameterizedTest + @CsvSource) — each row reported as its own test.
Dependency (Maven)
A library your project uses, declared in pom.xml; Maven downloads it automatically.
DevTools
The browser's built-in inspector (F12): the Elements panel shows the DOM, the Console evaluates $$() and $x().
DOM
Document Object Model — the live tree the browser builds from HTML. Automation talks to this tree, not to pixels.
E
Encapsulation
Hiding the messy details behind clean methods. The principle that makes the Page Object Model work: pages hide locators, tests never see them.
Endpoint
One URL of an API, e.g. /users/1. Verbs (GET, POST…) define what happens to it.
Explicit wait
WebDriverWait + ExpectedConditions: poll a specific condition and proceed the moment it's true. The flakiness cure — and the only wait style this course uses.
Exploratory testing
Unscripted investigation guided by human judgment. Stays manual forever; scripts only check what you told them to check.
F
Fixture
Setup/teardown code around tests: @BeforeEach / @AfterEach per test, @BeforeAll / @AfterAll per class.
Flaky test
A test that passes and fails without code changes — usually a timing race. Flakiness is what makes teams stop trusting suites.
Framework (test)
The agreed structure around tests: pages/, tests/, utils/, config, reporting, CI. Mostly organization, not magic.
H
Headless
Running the browser without a window (--headless=new). Required in CI, faster everywhere; always set an explicit window size.
I
id (attribute)
An element attribute meant to be unique on the page. The gold-standard locator when present.
Implicit wait
A global find-element timeout. Mixing it with explicit waits causes unpredictable delays — this course avoids it entirely.
Inheritance
A class reusing another's members (LoginTest extends BaseTest). How frameworks share setup.
Interface
A contract of methods with no implementation. WebDriver is one — which is why the same test drives Chrome or Firefox.
J
JDK
Java Development Kit: the compiler and runtime. This course pins Eclipse Temurin 21.
JSON
The data format APIs speak: {"key": value} pairs, nested objects, arrays. Paths like address.city target values inside it.
JUnit
Java's standard test framework: @Test methods, lifecycle annotations, assertions, and the runner Maven invokes.
L
Locator
The address of an element: an id, CSS selector, or XPath. Good ones are unique, stable, readable.
M
Maven
Java's build tool: downloads dependencies, compiles, runs tests. mvn test is the command CI runs.
P
Page Object Model (POM)
One class per page owning its locators and actions; tests hold assertions and zero locators. A UI change becomes a one-file fix.
Parallel execution
Running test classes concurrently (junit-platform.properties). Safe only when tests are independent.
Parameterized test
See data-driven testing — the JUnit 5 annotation that powers it.
PATH / JAVA_HOME
Environment variables telling Windows where programs live. The source of most setup problems — and always fixed by reopening the terminal after changing them.
pom.xml
Maven's project file: dependencies, versions, plugins. Declaration order matters for REST Assured.
Push / pull (Git)
Push uploads your commits to the shared repo; pull downloads teammates'.
R
Regression testing
Re-checking that existing behavior still works after changes. The highest-ROI automation target.
REST
The dominant API style: verbs (GET, POST, PUT, PATCH, DELETE) acting on endpoint URLs, answering with status codes and JSON.
S
Smoke test
The fast critical-path subset (@Tag("smoke")) run on every push; the full suite runs nightly.
Stale element
A WebElement reference whose node was re-rendered away. Re-find after the DOM changes.
Status code
The API's verdict: 200 OK, 201 Created, 4xx your request was wrong, 5xx the server broke.
Surefire
The Maven plugin that discovers and runs tests, prints the Tests run summary, and writes reports CI parses.
T
Tag (@Tag)
A label on tests enabling subsets: mvn test -Dgroups=smoke.
Test pyramid
Many unit tests, some API tests, few UI tests — because UI tests are the slowest and most fragile layer.
TestWatcher
A JUnit extension that reacts to results — this course uses it to save a screenshot at the moment of failure.
W
WebDriver
Selenium's core interface: the object whose methods drive a real browser (get, findElement, quit).
X
XPath
The other locator dialect. Adds what CSS can't do: matching by visible text and walking up to ancestors.