API Testing & Quality Engineering
Test APIs and apps by hand, in code, and in CI.
Quality engineering is a strong career path and a skill every developer needs. Test APIs with curl, Postman and Bruno, design good test cases, automate with pytest and Vitest, mock, run integration and contract tests, do end-to-end testing with Playwright, load testing with k6 and security scans with ZAP, all wired into GitHub Actions.
You will be able to
- Test APIs with curl, Postman and Bruno
- Design test cases that find real bugs
- Automate unit, API and integration tests
- Write end-to-end tests with Playwright
- Load test with k6 and scan with OWASP ZAP
- Run all tests in CI and plan a test strategy
Who it's for
Manual testers moving to automation, developers who want to write better tests, and freshers targeting QA/SDET roles.
Before you start
Basic programming in Python or JavaScript helps
Roles it leads to
Lessons
Module 1
Testing foundations
Why, what and how to test APIs by hand.
Why we test: the test pyramid and types of testing
Testing is how a team finds out that the software works before customers do. Learn what bugs cost, the test pyramid, the main types of testing, and how this track fits together.
Testing APIs by hand: curl and browser dev tools
Run a small Brew & Bean API on your laptop and test it by hand with curl and your browser's dev tools. Learn to read status codes, headers and JSON, and to check success and failure cases.
Postman: collections, environments and test scripts
Turn your hand-run API checks into a saved Postman collection with variables, an environment, automatic assertions and a collection run, then run it from the command line with Newman.
Bruno: a free, Git-friendly API client
Build the same Brew & Bean test collection in Bruno, an open-source API client that stores every request as a plain text file. Learn assertions, scripts, environments, and how to run it from the command line.
Designing test cases: boundaries, equivalence and negative tests
You cannot test every input, so you must pick the few that find the most bugs. Learn equivalence partitioning, boundary value analysis, negative tests, decision tables and state transitions with a real order API.
Module 2
Automated tests
Unit, API, integration and contract tests.
Unit testing in Python with pytest
Write your first automated unit tests with pytest: simple asserts, testing for errors, parametrised tests for boundaries, and fixtures. You will test the Brew & Bean price and phone logic.
Unit testing in JavaScript with Vitest and Jest
Write fast unit tests for JavaScript code with Vitest: describe and it blocks, expect matchers, error tests, test.each, beforeEach and mock functions. See how the same skills carry over to Jest.
Automating API tests in code
Turn manual API checks into fast automated tests with pytest and httpx. Build a 13-test suite for the Brew & Bean coffee shop API covering happy paths, validation, business rules and status flow.
Mocks, stubs and test doubles
Learn when and how to replace slow, costly or unreliable dependencies in tests. Understand stubs, mocks, spies and fakes, write them in Python with monkeypatch and unittest.mock, and avoid the classic patching and over-mocking mistakes.
Integration tests with a real database
Write integration tests for the coffee shop API that run against a real database, with a fresh database for every test. Learn dependency overrides, checking stored data, failure-path tests and how to run the same suite on Postgres.
Contract testing and OpenAPI validation
Write down an API's contract with OpenAPI and check that the code keeps it. Validate the spec, check real responses against schemas, let Schemathesis hunt for contract bugs, and catch breaking changes before they reach your apps.
Module 3
Beyond functional testing
End to end, performance, security and CI.
End-to-end testing with Playwright
Write browser tests that click through a page like a customer, using Playwright and pytest. Learn reliable locators, auto-waiting, debugging with traces and which journeys deserve an E2E test.
Performance and load testing with k6
Load test the coffee shop API with k6: write a smoke test and a ramping load test, set pass/fail thresholds on p95 latency and error rate, and learn to read the results.
Security testing basics with OWASP ZAP
Scan your own API with OWASP ZAP in Docker, read and triage the alerts, fix the easy ones and learn what automated scanners cannot find, so you can add basic security testing to your toolbox.
Running tests in CI with GitHub Actions
Tests that only run on your laptop get forgotten. Learn to run pytest, database tests and Playwright automatically on every push and pull request with GitHub Actions, and to read a failed run.
Module 4
Strategy and career
AI in testing, test strategy and the QA career.
Testing with AI, and testing AI features
AI can draft test cases and test code quickly, but it also invents tests that prove nothing. Learn to use AI safely as a testing assistant, and to test features that call a language model, where answers change on every run.
Test strategy for a real project
Knowing many testing tools is not the same as knowing what to test. Learn to decide what matters most, choose the right mix of tests, set entry and exit rules, and write a one-page test strategy a team will actually use.
Project: a full test suite for a coffee shop API
Build a complete automated test suite for the Brew & Bean ordering API: test design, fixtures, parametrized boundary tests, state-transition tests and a CI pipeline. Finish with a portfolio piece you can show in QA and SDET interviews.
QA and SDET careers: skills and certifications
Understand the difference between manual QA, automation engineer, SDET and performance tester roles, which skills to build in what order, how to show your work, and what to expect in interviews and certifications.
Tools, courses & exams
Hand-picked, free first. Free tiers and exam fees change, so check the provider's page.
Free tools
Bruno
Bruno (usebruno.com)
An open-source API client that stores requests as plain files, so tests live in Git. Good first choice if you do not want an account.
Free open-source edition; paid editions add extra features. Check the site for the current split.
Postman
Postman
The most widely used API client in industry. Collections, environments, test scripts and the Newman command-line runner. Worth learning because many employers use it.
Free plan with limits; paid plans add team and automation features. Check the pricing page for current limits.
curl documentation
curl project
Official manual and tutorial for curl, the command-line tool used to send API requests from any terminal.
Playwright
Microsoft
Open-source tool for end-to-end browser tests in JavaScript, TypeScript or Python. Also has an API testing feature.
k6
Grafana Labs
Open-source load testing tool where tests are written in JavaScript. Used later in this track for performance testing.
OWASP ZAP
ZAP project (Checkmarx)
Free, open-source web security scanner. Use it only on apps you own or have permission to test.
Free courses
Test Automation University
Applitools
Free video courses on test automation in several languages and tools, with certificates of completion. A practical path for manual testers moving to automation.
Software Testing (NPTEL / SWAYAM)
NPTEL, IIT Kharagpur
NPTEL has offered a Software Testing course from IIT Kharagpur. Search the catalogue for the current session. Course videos are free to watch; the proctored exam and certificate carry a fee. Useful for B.Tech and MCA students who want theory and a certificate.
Videos free; certification exam has a fee set by NPTEL. Check the current session and fee on the course page.
Postman Learning Center
Postman
Official guides and tutorials for collections, variables and test scripts, including how to run collections from the command line.
Official docs
pytest documentation
pytest-dev
Official docs with a get-started guide, fixtures and parametrisation. Clear and well organised.
Vitest guide
Vitest team
Official guide for the Vitest test runner, including a comparison with Jest.
Jest documentation
Jest team
Official Jest docs. Useful because many existing JavaScript projects still use Jest.
Bruno documentation
Bruno
Official docs for Bruno, covering collections, scripting, environments and the command-line runner.
Practice
JSONPlaceholder
typicode
A free fake REST API for practising GET, POST, PUT and DELETE requests without setting anything up.
Swagger Petstore
SmartBear
A public sample API with an OpenAPI description, handy for practising requests and reading API documentation.
API Challenges
EvilTester (Alan Richardson)
A set of guided challenges that teach API testing by doing, with a hosted practice API and exploratory-testing exercises.
Communities
Exams & certifications