Software testing career

QA career roadmap: from first test case to automation engineer

See the roles a tester can grow into, follow a month-by-month plan, set up real Playwright, Postman, REST Assured, and JMeter projects step by step, and learn how to stand out when AI screens and writes so much of the work.

What you can become in QA

Most testers start in manual QA, learn automation, then specialise or move into leadership. Each card shows where people usually come from and what to learn.

Manual QA Engineer

Designs test cases, explores features, and reports clear, reproducible bugs. The usual first QA job.

Usually from: Freshers, support engineers, business analysts, or anyone detail-minded

Key skills

  • Test case design
  • Exploratory testing
  • Bug reporting
  • SDLC and STLC
  • SQL basics

Tools

  • Jira
  • TestRail or Zephyr
  • Browser DevTools
  • Postman

Test Automation Engineer

Turns repeated checks into automated UI and API tests that run on every code change.

Usually from: Manual QA with a year or two of experience who has learned to code

Key skills

  • Java or TypeScript
  • Page Object Model
  • Locators and waits
  • Git
  • CI pipelines

Tools

  • Playwright
  • Selenium
  • REST Assured
  • GitHub Actions or Jenkins

SDET (Software Development Engineer in Test)

A developer who specialises in testability: builds frameworks, test tooling, and mocks, and reviews code for quality.

Usually from: Automation engineers or developers who enjoy testing

Key skills

  • Data structures and clean code
  • Framework design
  • Contract and integration testing
  • Docker
  • Code review

Tools

  • Playwright
  • REST Assured
  • JUnit or TestNG
  • Docker
  • WireMock

API Test Engineer

Tests services directly: status codes, payloads, auth, error handling, and contracts between teams.

Usually from: Manual or automation QA who likes backend work

Key skills

  • HTTP and REST
  • JSON and schema validation
  • Auth (OAuth, JWT)
  • Contract testing

Tools

  • Postman and Newman
  • REST Assured
  • Playwright request API
  • Pact

Performance Test Engineer

Finds how much load a system takes before it slows down or fails, and why.

Usually from: Automation or API testers comfortable with metrics

Key skills

  • Load, stress, and soak tests
  • Percentiles (p95, p99)
  • Bottleneck analysis
  • Monitoring

Tools

  • JMeter
  • k6
  • Gatling
  • Grafana

Security Tester

Looks for vulnerabilities such as broken access control and injection, within an authorised scope.

Usually from: API testers interested in how systems break

Key skills

  • OWASP Top 10
  • Auth and session testing
  • Threat modelling
  • Responsible disclosure

Tools

  • OWASP ZAP
  • Burp Suite
  • Postman

Mobile QA Engineer

Tests Android and iOS apps across devices, OS versions, and network conditions.

Usually from: Manual or automation QA

Key skills

  • Device and OS coverage
  • Gestures and permissions
  • Offline and slow networks

Tools

  • Appium
  • Android Studio emulators
  • Xcode simulators
  • BrowserStack

AI Quality Engineer

Tests products built on AI models: accuracy, safety, bias, and regressions when prompts or models change.

Usually from: Automation engineers or SDETs who follow AI tooling

Key skills

  • Evaluation datasets
  • Prompt and output testing
  • Statistics basics
  • Python or TypeScript

Tools

  • Playwright
  • Python test tools
  • Eval frameworks
  • Spreadsheet or notebook analysis

QA Lead / QA Manager

Owns test strategy, coaches the team, and decides what to test, automate, or accept as risk.

Usually from: Senior QA or SDET with mentoring experience

Key skills

  • Test strategy
  • Risk-based planning
  • Metrics and reporting
  • Hiring and mentoring

Tools

  • Jira dashboards
  • Test management tools
  • CI reports

DevOps / Quality Platform Engineer

Builds the pipelines, test environments, and release gates that keep quality checks fast and reliable.

Usually from: SDETs who enjoy infrastructure

Key skills

  • CI/CD
  • Docker and containers
  • Cloud basics
  • Observability

Tools

  • GitHub Actions
  • Jenkins
  • Docker
  • Kubernetes basics

Your 12-month QA roadmap

A part-time plan of about 8 to 10 hours a week. Finish each milestone before moving on; the milestones become your portfolio.

  1. Month 1

    Testing fundamentals

    Think like a tester before touching tools.

    • SDLC, STLC, and where testing fits in Agile
    • Test case design: boundary values, equivalence partitioning, decision tables
    • Writing bug reports with steps, expected vs actual, and evidence
    • Jira basics: tickets, workflows, and sprints

    Milestone: Write 30 test cases and 5 bug reports for a real website you use.

  2. Month 2

    Web and API basics

    Understand what happens between the browser and the server.

    • HTTP methods, status codes, headers, cookies
    • JSON and how REST APIs are shaped
    • Browser DevTools: Network, Console, Elements
    • Manual API testing in Postman

    Milestone: A Postman collection with 15 requests and tests against a public API.

  3. Months 3–4

    Programming, Git, and SQL

    Code well enough to automate. Pick Java or TypeScript and stay with it.

    • Variables, conditions, loops, functions, classes
    • Collections, exceptions, and reading stack traces
    • Git: clone, branch, commit, pull request
    • SQL: SELECT, JOIN, GROUP BY to verify test data

    Milestone: A GitHub repo with 20 small solved coding exercises and clean commits.

  4. Months 5–6

    UI automation with Playwright

    Automate real user journeys that are stable, not flaky.

    • Locators by role, label, and test id
    • Auto-waiting and web-first assertions
    • Page Object Model and fixtures
    • Screenshots, traces, and HTML reports

    Milestone: A Playwright framework with 15 tests for a demo shop, running headless.

  5. Month 7

    API automation

    Test the backend directly, faster and more reliably than through the UI.

    • REST Assured given / when / then
    • Auth tokens, request specs, and JSON schema validation
    • Data-driven tests
    • Running Postman collections with Newman

    Milestone: REST Assured project covering CRUD, negative cases, and schema checks.

  6. Month 8

    Performance testing with JMeter

    Measure response times under load and explain the results.

    • Thread groups, ramp-up, and think time
    • Assertions, timers, and CSV test data
    • Non-GUI runs and HTML dashboards
    • Reading p90, p95, throughput, and error rate

    Milestone: A load test report for a public demo API with clear conclusions.

  7. Month 9

    CI/CD and Docker

    Make tests run by themselves on every change.

    • GitHub Actions workflows
    • Running tests in Docker
    • Publishing reports as build artifacts
    • Parallel runs and retries for flaky tests

    Milestone: Every push to your repo runs UI and API tests and publishes a report.

  8. Months 10–11

    AI-assisted testing and a specialisation

    Work faster with AI tools and go deeper in one area.

    • Using AI assistants to draft test ideas, data, and code, then reviewing them
    • Testing AI features: varied inputs, expected behaviour, regressions
    • Pick one: performance, security, mobile, or SDET

    Milestone: One deeper project in your chosen specialisation, documented in a README.

  9. Month 12

    Portfolio, resume, and interviews

    Turn your work into interview calls.

    • A resume that names tools, frameworks, and measurable results
    • Pinned GitHub projects with READMEs and screenshots
    • Interview practice: test design, coding, and framework questions
    • Applying steadily and tracking every application

    Milestone: Resume, portfolio, and 30 tracked applications with follow-ups.

Tool guides: set up your first projects

Pick a tool, follow the steps in order, and copy the code. Every example runs against free public demo sites, so you can start today.

Fast, reliable UI and API automation for Chromium, Firefox, and WebKit.

Used for

  • End-to-end UI tests
  • API tests with the request fixture
  • Visual checks with screenshots
  • Cross-browser runs in CI

Before you start

  • Node.js LTS (20 or newer)
  • VS Code with the Playwright Test extension
  • Basic TypeScript or JavaScript

Set up and write your first tests

  1. Create the project

    In an empty folder, run the installer. Choose TypeScript, keep the tests folder, add a GitHub Actions workflow, and let it install the browsers.

    Terminal
    mkdir playwright-tests && cd playwright-tests
    npm init playwright@latest
  2. Write your first UI test

    Replace the example in tests/ with a test that uses role-based locators and web-first assertions. Playwright waits for elements automatically, so you never need sleeps.

    tests/home.spec.ts
    import { test, expect } from "@playwright/test";
    
    test("home page has the Playwright title", async ({ page }) => {
      await page.goto("https://playwright.dev/");
      await expect(page).toHaveTitle(/Playwright/);
    });
    
    test("Get started opens the installation page", async ({ page }) => {
      await page.goto("https://playwright.dev/");
      await page.getByRole("link", { name: "Get started" }).click();
      await expect(page.getByRole("heading", { name: "Installation" })).toBeVisible();
    });
  3. Run tests and open the report

    Run headless, debug in UI mode, and open the HTML report with traces and screenshots of failures.

    Terminal
    npx playwright test
    npx playwright test --ui
    npx playwright show-report
  4. Record locators with codegen

    Codegen opens a browser and writes test code as you click. Use it to find good locators, then tidy the code by hand.

    Terminal
    npx playwright codegen https://playwright.dev/
  5. Add an API test

    The built-in request fixture calls APIs without a browser. Use it to create test data or check the backend.

    tests/users-api.spec.ts
    import { test, expect } from "@playwright/test";
    
    test("returns user 1", async ({ request }) => {
      const response = await request.get("https://jsonplaceholder.typicode.com/users/1");
    
      expect(response.ok()).toBeTruthy();
      const user = await response.json();
      expect(user.id).toBe(1);
      expect(user.email).toContain("@");
    });
  6. Organise with the Page Object Model

    Keep locators and actions for each page in one class so tests read like user stories and one UI change means one fix.

    pages/home-page.ts
    import type { Locator, Page } from "@playwright/test";
    
    export class HomePage {
      readonly getStarted: Locator;
    
      constructor(private readonly page: Page) {
        this.getStarted = page.getByRole("link", { name: "Get started" });
      }
    
      async open() {
        await this.page.goto("https://playwright.dev/");
      }
    }
  7. Run in CI

    The installer created .github/workflows/playwright.yml. Push to GitHub and every pull request runs your tests and uploads the report as an artifact.

Project structure

Folder layout
playwright-tests/
├── .github/workflows/playwright.yml
├── pages/
│   └── home-page.ts
├── tests/
│   ├── home.spec.ts
│   └── users-api.spec.ts
├── playwright.config.ts
└── package.json

Learn next

  • Fixtures for logged-in sessions (storageState)
  • Test data setup through APIs
  • Sharding and parallel workers
  • Visual comparisons with toHaveScreenshot

Official Playwright documentation ↗

Test responsibly: only run load or security tests against systems you own or have written permission to test. Keep load against public demo APIs very small.

Tackle AI and increase your chances, in any job

This advice works for QA and for every other role: get past automated screening, show the judgement AI cannot replace, and run a steady, tracked job search.

Get through AI resume screening

Many employers use an applicant tracking system that reads your resume as text before a person sees it. Make that text easy to read.

  • Use a single-column layout with standard headings: Summary, Experience, Skills, Education, Projects.
  • Export a real text PDF or DOCX, not a scanned image. Text inside images and charts is often unreadable to parsers.
  • Mirror the job post's exact wording where it is true for you: write "Playwright" and "API testing" if those are the terms used.
  • Name tools inside your bullet points as well as in the skills list, so they appear in context.
  • Tailor the top third of your resume for each role. It is the part both software and recruiters read first.

Show what AI cannot do for the company

AI writes drafts quickly. Employers still hire people who judge risk, own outcomes, and work with others.

  • Lead bullets with results: "Cut regression time from 2 days to 3 hours by automating 180 checks."
  • Show judgement: what you chose to test, what you skipped, and why.
  • Show communication: bugs you explained to stakeholders, demos you ran, people you mentored.
  • Show domain knowledge, such as payments, healthcare, or logistics. It makes you hard to replace.

Use AI as your assistant, openly

Recruiters increasingly ask how you use AI tools. A good answer shows speed and care.

  • Use AI to brainstorm test ideas, edge cases, and test data, then review every output yourself.
  • Use it to explain unfamiliar code or error messages while you learn.
  • Never paste confidential code, customer data, or credentials into public AI tools.
  • Mention one concrete example in interviews: what you asked, what you corrected, and the result.

Increase your interview chances

Small, steady habits beat mass-applying with the same resume.

  • Apply within the first few days of a posting, while recruiters are still actively reviewing it.
  • Ask for referrals. A short, specific message to someone on the team often works better than a cold application.
  • Keep a portfolio: two or three GitHub projects with READMEs, screenshots, and a CI badge.
  • Track every application with status, date, contact, and the resume version you sent, and follow up after a week.
  • Keep LinkedIn consistent with your resume, with a headline that names the role you want.
  • Prepare short stories for common questions: a hard bug you found, a conflict you resolved, a process you improved.

Keep every application in one place with the job application tracker, and read more in our career guides.

Frequently asked questions

Will AI replace QA engineers?

AI is changing QA work, not removing the need for it. It speeds up writing test cases, data, and code, but someone still has to decide what matters, judge risk, investigate failures, and test AI features themselves. Testers who learn automation and use AI tools well are in a stronger position.

Can I become a QA engineer without a computer science degree?

Yes. Many testers come from other degrees and careers. Employers mostly look for testing fundamentals, attention to detail, and, for automation roles, a portfolio that shows you can code and ship working tests.

Should I learn Java or TypeScript for test automation?

Both are in demand. Java pairs with REST Assured and Selenium and is common in large enterprises. TypeScript pairs with Playwright and is common in product companies and startups. Check job posts in your city, pick one, and stay with it until you are comfortable.

Playwright or Selenium: which should I learn first?

Playwright is quicker to learn, has auto-waiting, and includes API testing and reports. Selenium still appears in many existing projects. Learning Playwright first and Selenium basics later covers most job posts.

How long does it take to get a QA job from zero?

With part-time study, many people are ready for junior manual or automation roles in about 6 to 12 months. A visible portfolio and steady, tracked applications shorten that time.

Is JMeter still worth learning?

Yes. JMeter is free, widely used for load testing, and appears in many performance testing job posts. Code-based tools like k6 are growing too, and the concepts you learn in JMeter transfer directly.