Software Testing and Test Automation
Unit, integration and end-to-end tests with Jest, pytest and Playwright.
Taught by Anisha Rai · Senior Software Engineer
What you'll learn
- Explain the test pyramid and choose the right level of test for a given risk
- Write clear, isolated unit tests with Jest and pytest using the arrange-act-assert pattern
- Apply test-driven development to build a small feature in red-green-refactor cycles
- Use mocks, stubs, fakes and fixtures to isolate code without testing implementation details
- Automate end-to-end browser tests with Playwright using resilient, role-based locators
- Run tests in a CI pipeline, interpret coverage reports and diagnose and fix flaky tests
About this course
This software testing and test automation course is for developers and QA engineers who want tests that catch real bugs without slowing the team down. You will learn the test pyramid and where unit, integration and end-to-end tests each earn their place, then write unit tests with Jest for JavaScript and TypeScript and with pytest for Python. You will practise test-driven development, use mocks, stubs and fakes without overdoing them, and run integration tests against real databases with Testcontainers. You will automate browser journeys with Playwright, read code coverage sensibly, run your suite in GitHub Actions on every pull request and hunt down flaky tests. Every example is short and runnable. You should be comfortable writing basic JavaScript or Python functions; no previous testing experience is needed.
Course content
7 lessons- 1Why We Test and the Test PyramidWhat automated tests buy you, the kinds of tests that exist, and how to balance them with the test pyramid.Preview
- 2Unit Testing with Jest and Test-Driven DevelopmentWrite readable Jest tests with matchers and arrange-act-assert, then build a feature test-first.
- 3Unit Testing in Python with pytestUse plain asserts, fixtures and parametrisation to write compact, powerful Python tests.
- 4Mocks, Stubs and FakesIsolate code from slow or unpredictable dependencies with test doubles, and know when not to use them.
- 5Integration Testing with Real DependenciesTest code against real databases with Testcontainers, and keep integration tests fast and isolated.
- 6End-to-End Testing with PlaywrightAutomate real browser journeys with Playwright using resilient locators, auto-waiting and trace debugging.
- 7Coverage, CI and Flaky-Test HygieneRun tests automatically on every pull request, read coverage with care, and find and fix flaky tests.