Skip to main content

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

TopicDetails
Testing FundamentalsManual vs automated, testing pyramid, test types
pytestTest structure, fixtures, parameterization, plugins
Selenium WebDriverBrowser automation, element locators, interactions
Page Object Model (POM)Maintainable test architecture pattern
API TestingREST API testing with requests and Postman
Playwright (Bonus)Modern browser automation alternative
Test ReportingAllure reports, HTML reports, test metrics
CI IntegrationRunning 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 requests library 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

RequirementDetails
ProgrammingBasic Python (variables, functions, loops)
Web knowledgeBasic understanding of HTML and web browsers
ToolsGitHub account (free)
Prior QA experienceNot required

Workshop Format

Duration1 full day (6–8 hours)
FormatInstructor-led, hands-on coding
Group SizeUp to 30 students
DeliveryOn-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