At 2–3 years, interviewers expect you to have built or owned a framework. These mid-level automation projects cover hybrid frameworks, data-driven testing, parallel and cross-browser execution, Selenium Grid and CI pipelines.
Advanced framework topics: Thread-safe parallel execution, advanced Cucumber, CI/CD integration, performance testing basics, and database testing.
Project 21: Parallel Test Execution with TestNG & Thread Safety
| Difficulty | Advanced |
| Tech Stack | Selenium, Java, TestNG, ThreadLocal, Maven |
| Time Needed | 5–7 days |
| Resume Value | Shows production-grade framework knowledge |
Objective
Build a thread-safe test framework that runs multiple tests in parallel without browser conflicts, using ThreadLocal<WebDriver> pattern.
Step-by-Step Instructions
- Step 1: Create DriverManager.java with private static ThreadLocal<WebDriver> tlDriver = new ThreadLocal<>()
- Step 2: Add static methods: setDriver(WebDriver driver), getDriver(), removeDriver()
- Step 3: In BaseTest @BeforeMethod, call DriverManager.setDriver(new ChromeDriver()) — each thread gets its own driver
- Step 4: In @AfterMethod, call DriverManager.getDriver().quit() then DriverManager.removeDriver()
- Step 5: Configure testng.xml with parallel='methods' thread-count='3'
- Step 6: Create 10 independent test methods across 3 test classes
- Step 7: Run and observe 3 Chrome browsers opening simultaneously
- Step 8: Add synchronized block in ReportManager to prevent race conditions in report writing
- Step 9: Verify no test affects another by checking isolated data and independent assertions
Common Issues to Handle
- StaleElementReferenceException — always re-fetch elements after navigation
- Report thread safety — use synchronized methods in ExtentReports manager
Project 22: Jenkins CI/CD Pipeline Integration
| Difficulty | Advanced |
| Tech Stack | Selenium, Maven, Jenkins, GitHub, TestNG |
| Time Needed | 7–10 days |
| Resume Value | CI/CD is asked in every senior SDET interview |
Objective
Set up a complete CI/CD pipeline where tests run automatically on every code push to GitHub, with email notifications and published HTML reports.
Step-by-Step Instructions
- Step 1: Install Jenkins locally (download jenkins.war, run java -jar jenkins.war)
- Step 2: Install plugins — Maven Integration, GitHub, HTML Publisher, Email Notification
- Step 3: Configure Global Tool Configuration — add Maven, Java JDK paths
- Step 4: Create a new Jenkins Freestyle project
- Step 5: Under Source Code Management, add GitHub repo URL and credentials
- Step 6: Add Build Trigger: Poll SCM with cron '*/5 * * * *' (every 5 minutes)
- Step 7: Add Build Step: Invoke Maven — Goals: clean test -Dbrowser=chrome
- Step 8: Add Post-Build Actions: Publish HTML Report (report path, index page)
- Step 9: Add Email Notification for build failure
- Step 10: Push a failing test to GitHub and verify Jenkins auto-triggers, runs, sends email
Project 23: Database Testing with JDBC
| Difficulty | Advanced |
| Tech Stack | Selenium, Java, TestNG, JDBC, MySQL/H2 DB |
| Time Needed | 5–7 days |
| Resume Value | DB testing skill — differentiator for senior roles |
Build tests that verify UI actions are correctly persisted in the database. Pattern: (1) Use Selenium to create a new user via UI form; (2) Use JDBC to connect to MySQL and query SELECT * FROM users WHERE email=?; (3) Assert that DB record matches what was entered in UI. Also test the reverse: insert a record directly via JDBC and verify it appears in the UI. Create DBUtils.java with methods: executeQuery(), executeUpdate(), getColumnValue(). This proves true end-to-end validation skills.
Project 24: Advanced BDD — Hooks, Tags, Parallel Cucumber
| Difficulty | Advanced |
| Tech Stack | Cucumber, Selenium, Java, TestNG, POM |
| Time Needed | 7–10 days |
| Resume Value | BDD depth — shows senior BDD experience |
Advanced Cucumber Concepts to Implement
- Hooks.java — @Before and @After for setup/teardown, @BeforeStep/@AfterStep for step-level hooks
- Tagged Hooks — @Before("@api") to run setup only for API scenarios
- Scenario Context — create a ScenarioContext class using HashMap to share data between steps
- Parallel Cucumber — configure maven-surefire-plugin with dataproviderthreadcount
- Cucumber Reports — integrate ExtentCucumberAdapter for beautiful reports
- World Object — share state between step definition classes using dependency injection (PicoContainer)
- Retry Failed Scenarios — implement ICucumberListener to auto-retry failed scenarios
- Dry Run — @CucumberOptions(dryRun=true) to validate step definitions without running browser
Project 25: API Framework with RestAssured — Full CRUD Suite
| Difficulty | Advanced |
| Tech Stack | RestAssured, Java, TestNG, Gson, Jackson, JSONSchema |
| Time Needed | 7–10 days |
| Resume Value | Complete API framework for portfolio |
Build a production-grade API test framework. Components: (1) APIConstants.java — all endpoint URLs as constants; (2) RequestBuilder.java — builds RequestSpecification with base URL, headers, authentication; (3) POJOs for request/response bodies using POJO + Jackson/Gson for serialization/deserialization; (4) JSON Schema files in resources/ folder for schema validation; (5) APIUtils.java with getResponse(), extractField(), validateStatusCode() methods; (6) Separate test classes for Users, Products, Orders APIs; (7) TestNG data providers for API test data. Also implement OAuth2 token refresh flow.
Project 26: Performance Testing Basics with JMeter
| Difficulty | Advanced |
| Tech Stack | Apache JMeter, Java, REST API |
| Time Needed | 5–7 days |
| Resume Value | Performance testing — adds premium value to profile |
Create a JMeter test plan for an e-commerce API. (1) Download and install Apache JMeter; (2) Create Thread Group with 50 virtual users, 10-second ramp-up, 5 loops; (3) Add HTTP Request Samplers for Login, Product Search, Add to Cart endpoints; (4) Add Response Assertions to verify 200 status codes; (5) Add CSV Data Set Config to parameterize usernames; (6) Add Listeners: View Results Tree, Summary Report, Response Time Graph; (7) Run test and analyze: average response time, throughput (req/sec), error percentage; (8) Generate HTML report using JMeter -n -t testplan.jmx -l results.jtl -e -o report/. Interpret results and document findings.
Project 27: Visual Regression Testing with Selenium + Ashot
| Difficulty | Advanced |
| Tech Stack | Selenium, AShot, Java, TestNG, ImageMagick |
| Time Needed | 4–5 days |
| Resume Value | Unique, modern testing technique |
Implement visual regression testing to catch unintended UI changes. (1) Add AShot library dependency; (2) In baseline run, capture full-page screenshots and save as PNG in baseline/ folder; (3) In regression run, capture new screenshots; (4) Use AShot ImageDiff to compare pixel by pixel; (5) If difference > threshold (e.g., 2%), fail test and save a diff image highlighting changed regions in red; (6) Apply viewport screenshot vs full-page screenshot comparison; (7) Use WebElement screenshot to test individual components. Great for catching CSS regressions.
Project 28: Log Analysis and Test Reporting Dashboard
| Difficulty | Advanced |
| Tech Stack | Java, Log4j, TestNG, ExtentReports, JSON |
| Time Needed | 4–5 days |
| Resume Value | Reporting and observability skills |
Build a comprehensive test reporting ecosystem: (1) Log4j2 configuration with separate log levels — DEBUG to file, ERROR to console; (2) Custom TestNG Reporter that generates JSON result files per test run; (3) A standalone HTML dashboard reading the JSON files and showing: total tests, pass rate trend across last 10 runs, top 5 most failing tests, average execution time per test, environment info; (4) Email report with summary table using JavaMail API. This shows production-quality observability thinking.
Project 29: Microservices API Contract Testing
| Difficulty | Advanced |
| Tech Stack | RestAssured, Pact, Java, TestNG |
| Time Needed | 5–7 days |
| Resume Value | Modern microservices testing knowledge |
Implement contract testing with Pact to ensure microservice API contracts don't break. Consumer side: define expected API contract in Pact test (what fields you expect, what types). Generate Pact file (.json contract). Provider side: run Pact verification against real API to ensure it honors the contract. This ensures when a backend team changes their API, consumers are not broken without warning. Highly valued at companies with microservice architectures.
Project 30: Test Automation Metrics Dashboard
| Difficulty | Advanced |
| Tech Stack | Java, TestNG, JFreeChart / Google Charts, HTML |
| Time Needed | 5–7 days |
| Resume Value | Shows SDET leadership and metrics mindset |
Build a metrics collection and visualization system. After each test run: (1) Append results (timestamp, total, passed, failed, skipped, duration) to a CSV history file; (2) Generate HTML dashboard with trend charts showing pass rate over last 30 runs, test execution time trend, flaky test identification (tests that sometimes pass/fail); (3) Compute automation coverage percentage by comparing automated test count vs total test cases; (4) Produce weekly summary email. This demonstrates QA leadership skills beyond just writing tests.
Use practice websites built for automation as targets, never live production sites you do not own, and publish each finished project on GitHub with a README explaining how to run it.
FAQs
How do I present a framework project in an interview?
Explain the stack, folder structure, design patterns, data and configuration handling, parallel and CI execution, reporting and one problem you solved, and share the GitHub link.