QA Lab · Cross-Stack Series · Stack 3

Selenium + Java
+ TestNG Framework

Enterprise-grade automation framework demonstrating the Java patterns expected in fintech, energy, and traditional IT organisations — built against the same QA Lab target as all Cross-Stack Series frameworks.

Selenium 4.21 · Java 17 · TestNG 7.10 · ExtentReports 5.1 · Maven 3.9

✓ CI Green 48 Test Classes 13 UI Sections Covered Java 17 LTS 📊 ExtentReports Live Enterprise Stack

About This Project

The Purpose

Selenium + Java remains the dominant stack in financial services, insurance, energy, and enterprise IT. These organisations have large existing WebDriver codebases and hiring pipelines tuned for Java fluency.

This is Stack 3 of the Cross-Stack Series — the same QA Lab target tested with different frameworks to enable direct, evidence-based comparison. The framework demonstrates enterprise-grade Java automation practices without advocating for this stack over modern alternatives.

The author’s preferred stack for new projects is Playwright. This framework exists to prove cross-stack fluency — the ability to be effective in Java environments without requiring a full stack migration.

Architecture Constraints

Every decision reflects real enterprise requirements:

  • ThreadLocal<WebDriver> — parallel-safe, 4 concurrent threads in CI
  • Page Factory + @FindBy — zero driver.findElement() in test classes
  • WebDriverWait throughout — no Thread.sleep() anywhere in the diff
  • @DataProvider(parallel=true) — data-driven tests without manual loops
  • ITestListener — ExtentReports auto-populated, no manual flush()
  • WebDriverManager — runtime chromedriver resolution, zero binary commits
  • @AfterMethod(alwaysRun=true) — guaranteed driver.quit() even on failure
  • Checkstyle 10 — code style enforcement expected in enterprise Java teams

Test Coverage

13 QA Lab UI sections covered across 48 test classes. Same automation surface targeted in every Cross-Stack Series framework.

Buttons
Click states, disabled assertion
Forms
Validation, field interaction, submit
Input Fields
Text, number, date, search, URL
Checkboxes
Check/uncheck, disabled state
Radio Buttons
Selection, mutual exclusivity
Dropdowns
Select class, single & multi-select
Tables
Cell content, row count, edit action
Alerts & Modals
Open, confirm, cancel, dismiss
Dynamic Visibility
Checkbox-triggered panel reveal
Async Buttons
Loading → success/error transitions
IFrames
switchTo().frame() / defaultContent()
Drag & Drop
Actions class mouse simulation
Slider
Actions.dragAndDropBy()

Tech Stack

Enterprise Java stack — every tool justified by real-world hiring requirements, not personal preference.

Java 17 LTS
Language — LTS, universally deployed in enterprise environments
🌐
Selenium WebDriver 4.21
Browser automation — industry standard for Java, expected in enterprise JDs
TestNG 7.10
Test framework — DataProvider, Groups, parallel execution, listeners
📊
ExtentReports 5.1
HTML reporting — ITestListener, dark theme, CI-publishable artefact
⚙️
Maven 3.9
Build tool — Surefire plugin, parallel execution, universal in Java enterprises
🔧
WebDriverManager 5.8
Driver management — runtime chromedriver resolution, zero binary commits
GitHub Actions
CI/CD — smoke on push, full regression on main, Monday schedule
📝
Checkstyle 10
Code style enforcement — Java standard expected in enterprise teams
🤖
Claude Code
AI engineering accelerator — scaffolding, pattern review, coverage analysis

Cross-Stack Series

Same target, different stacks. Four frameworks built against the same QA Lab UI to produce evidence-based comparisons — not vendor benchmarks.

01
Playwright + TypeScript
✓ Complete
02
Pytest + Python
Planned
03
Selenium + Java + TestNG
✓ This Project
04
Cypress + JavaScript
Planned
Evgenii Subbotin
QA/SDET Lead · QA Architect · SAFe RTE

20 years in software engineering. This framework demonstrates cross-stack fluency — the ability to operate effectively in the Java ecosystem while understanding where modern alternatives deliver better outcomes.