QA
roadmap.sh: https://roadmap.sh/qa
Suggested path through the QA nodes. Each node links to its lesson when written.
Nodes
Fundamentals
- What is software testing
- QA vs QC vs testing
- Role of a QA engineer
- Seven principles of testing
- Software development life cycle (SDLC)
- Software testing life cycle (STLC)
- Verification vs validation
- Defect / bug / error / failure
- Cost of defects
Testing methods
- Manual testing
- Automation testing
- Black-box testing
- White-box testing
- Grey-box testing
- Static vs dynamic testing
- Exploratory testing
- Ad-hoc testing
Levels of testing
- Unit testing
- Integration testing
- System testing
- Acceptance testing (UAT)
- Smoke & sanity testing
- Regression testing
- End-to-end testing
Types of testing
- Functional testing
- Non-functional testing
- Performance testing
- Load & stress testing
- Security testing
- Usability testing
- Accessibility testing
- Compatibility & cross-browser testing
- Localization & internationalization testing
- API testing
- Mobile testing
- Database testing
Test design techniques
- Equivalence partitioning
- Boundary value analysis
- Decision table testing
- State transition testing
- Use case testing
- Pairwise / combinatorial testing
- Error guessing
Test documentation & process
- Test plan
- Test strategy
- Test cases & test scenarios
- Requirements traceability matrix
- Test data management
- Defect / bug reporting
- Defect life cycle
- Severity vs priority
- Entry & exit criteria
- Test metrics & reporting
Test management tools
- Jira
- TestRail
- Zephyr
- Xray
- Bug tracking workflows
Automation fundamentals
- Why & when to automate
- Test automation pyramid
- Choosing a programming language
- Page Object Model
- Data-driven testing
- Keyword-driven testing
- Behavior-driven development (BDD)
- Flaky tests & how to handle them
Automation tools
- Selenium
- Cypress
- Playwright
- WebdriverIO
- Appium (mobile)
- Postman / REST-assured (API)
- JMeter / k6 / Gatling (performance)
- Cucumber (BDD)
- TestNG / JUnit / pytest
CI/CD & DevOps for QA
- Version control with Git
- Continuous integration
- Running tests in pipelines (Jenkins, GitHub Actions, GitLab CI)
- Docker for test environments
- Parallel & cross-browser execution
- Reporting & dashboards (Allure)
- Shift-left testing
Specialized & advanced
- Agile & Scrum testing
- Risk-based testing
- Contract testing
- Visual regression testing
- Chaos testing
- AI in testing
- Soft skills & communication
Resources
See resources.md.
Project ideas
- Build an end-to-end test suite for a real demo app (e.g. SauceDemo) using Playwright with the Page Object Model and run it in GitHub Actions.
- Write an API test collection in Postman or REST-assured against a public API, covering happy paths, edge cases and schema validation.
- Set up a JMeter or k6 load test for an endpoint, capture metrics under increasing concurrency, and write a short performance report.