QA Automation Workshop
About This Workshop
Move beyond manual testing and learn how to build automated test suites used by top engineering teams worldwide. This workshop covers the full spectrum of QA automation — from writing unit tests to end-to-end browser automation — giving students the skills to ensure software quality at scale.
What You'll Build
A complete automated test suite for a sample web application, including:
- Unit tests for core business logic
- UI browser tests with Selenium
- REST API tests using the requests library
- An HTML test report with pass/fail results
- A GitHub Actions workflow that runs tests on every push
What You'll Learn
| Topic | Details |
|---|---|
| Testing Fundamentals | Manual vs automated, testing pyramid, test types |
| pytest | Test structure, fixtures, parameterization, plugins |
| Selenium WebDriver | Browser automation, element locators, interactions |
| Page Object Model (POM) | Maintainable test architecture pattern |
| API Testing | REST API testing with requests and Postman |
| Playwright (Bonus) | Modern browser automation alternative |
| Test Reporting | Allure reports, HTML reports, test metrics |
| CI Integration | Running tests in GitHub Actions automatically |
Curriculum
Module 1 — Testing Fundamentals
- Manual testing vs automated testing: pros and cons
- The testing pyramid: unit → integration → E2E
- Types of tests and when to write each
- What makes a good test? (Readable, Reliable, Fast)
- Introduction to the QA mindset and shift-left testing
Module 2 — pytest Fundamentals
- Setting up a pytest project
- Writing your first test function
- Naming conventions and test discovery
- Assertions: assert statements and comparison operators
- Fixtures: setup and teardown without boilerplate
- Parameterized tests: testing multiple scenarios cleanly
- Organizing tests into modules and packages
Module 3 — Selenium WebDriver
- What is Selenium and how does it automate browsers?
- Setting up ChromeDriver and WebDriver
- Locating elements: ID, name, CSS selector, XPath
- Common interactions: click, type, submit, scroll
- Handling waits: implicit vs explicit waits
- Taking screenshots on test failure
- Running tests across Chrome and Firefox
Module 4 — Page Object Model (POM)
- Why raw Selenium tests become unmaintainable
- What is the Page Object Model design pattern?
- Creating page classes with locators and actions
- Writing tests that use POM pages
- Benefits: reusability, readability, single point of change
Module 5 — API Testing
- What is API testing and why it matters
- Using Python's
requestslibrary to call REST APIs - Validating response status codes, headers, and bodies
- Testing positive and negative scenarios
- Introduction to Postman: collections, environments, tests
- Automating Postman collections with Newman CLI
Module 6 — Playwright (Bonus)
- Playwright vs Selenium: a modern comparison
- Setting up Playwright with Python
- Writing your first Playwright test
- Auto-waiting, tracing, and network mocking
- When to choose Playwright over Selenium
Module 7 — Test Reporting
- Generating HTML test reports with pytest-html
- Introduction to Allure Reports for rich dashboards
- Reading test metrics: pass rate, duration, failures
- Communicating test results to stakeholders
Module 8 — CI Integration with GitHub Actions
- Why automated tests must run in CI
- Writing a GitHub Actions workflow for pytest
- Installing dependencies and running tests on push
- Uploading test reports as CI artifacts
- Failing the build on test failure
Module 9 — Hands-on Project
- Build a complete test suite for a real sample app
- Cover login, product listing, and checkout flows
- Implement POM structure
- Integrate into GitHub Actions
- Code review, refactoring, and Q&A
Prerequisites
| Requirement | Details |
|---|---|
| Programming | Basic Python (variables, functions, loops) |
| Web knowledge | Basic understanding of HTML and web browsers |
| Tools | GitHub account (free) |
| Prior QA experience | Not required |
Workshop Format
| Duration | 1 full day (6–8 hours) |
| Format | Instructor-led, hands-on coding |
| Group Size | Up to 30 students |
| Delivery | On-site at your institute |
Tools & Technologies
- Python 3.12 — pytest, selenium, requests, playwright
- Selenium WebDriver with ChromeDriver
- Postman for API testing
- GitHub Actions for CI
- VS Code as the editor
Learning Outcomes
By the end of this workshop, students will be able to:
✅ Write unit and integration tests with pytest
✅ Automate browser interactions with Selenium WebDriver
✅ Apply the Page Object Model for maintainable tests
✅ Test REST APIs using Python requests and Postman
✅ Generate test reports and interpret test metrics
✅ Run automated test suites in GitHub Actions CI pipelines