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.

1 item under this folder.