Modern QA2026Building a QA Portfolio on GitHub — tiles
Log inJoin
26 / 52 · 25 Interview Preparation & Career · Presenting Your Portfolio← prev⊞ allnext →☰ Read as one page

4.2Building a QA Portfolio on GitHub

What to Include

Your GitHub profile should demonstrate four things: you can write clean automation code, you understand test architecture, you think about the full testing lifecycle (not just writing tests), and you follow engineering best practices.

Project 1: Test Automation Framework (Core Showcase)

This is your flagship project. Build a complete test automation framework for a publicly available application (do not use a real employer's code).

Recommended target applications for portfolio projects:

  • The Playwright test practice site (demo.playwright.dev/todomvc)
  • Sauce Labs demo app (saucedemo.com)
  • Automation Exercise (automationexercise.com)
  • Any open-source web application you can run locally

What the framework should include:

qa-portfolio-framework/
  README.md                    # Setup, architecture, run instructions
  .github/
    workflows/
      ci.yml                   # GitHub Actions pipeline
  src/
    pages/                     # Page Object Models
      login.page.ts
      dashboard.page.ts
      cart.page.ts
    fixtures/                  # Test fixtures and setup utilities
      auth.fixture.ts
      test-data.factory.ts
    utils/                     # Shared utilities
      api-client.ts
      assertions.ts
  tests/
    ui/                        # Browser-based tests
      login.spec.ts
      checkout.spec.ts
    api/                       # API tests
      users.spec.ts
      products.spec.ts
    visual/                    # Visual regression tests
      homepage.visual.spec.ts
  playwright.config.ts         # Configuration with multiple projects
  package.json

Key elements that impress reviewers:

Element Why It Matters
Multiple test types (UI, API, visual) Shows breadth beyond "I can click buttons"
Page Object pattern with clean separation Shows you understand maintainable architecture
Test data factory Shows you think about data management, not just test steps
Meaningful test names Shows you write tests as specifications, not scripts
CI pipeline that actually passes Shows the framework works end-to-end
Environment configuration Shows you think about running in different contexts

Project 2: API Test Suite

A standalone API test project demonstrates your ability to test services independently of the UI. Use a public API (GitHub API, Spotify API, or a mock API).

What to demonstrate:

  • Request/response validation with schema checks
  • Authentication handling (token refresh, error cases)
  • Data-driven tests using parameterization
  • Error response validation (4xx, 5xx codes)
  • Response time assertions (basic performance checks)
  • Contract testing concepts (Chapter 4)

Project 3: CI/CD Pipeline Configuration

A project focused on pipeline design shows you think about testing as part of the delivery process, not a standalone activity.

What to include:

  • Multi-stage pipeline: lint, unit test, integration test, browser test, deploy
  • Test parallelization (matrix strategy or sharding)
  • Artifact storage for test reports and screenshots
  • Failure notification (Slack webhook or email)
  • Cache configuration for faster builds
  • Environment-specific test execution

Example GitHub Actions configuration:

name: Test Pipeline
on: [push, pull_request]

jobs:
  lint-and-unit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 24
          cache: 'npm'
      - run: npm ci
      - run: npm run lint
      - run: npm run test:unit

  browser-tests:
    needs: lint-and-unit
    runs-on: ubuntu-latest
    strategy:
      matrix:
        shard: [1, 2, 3, 4]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 24
          cache: 'npm'
      - run: npm ci
      - run: npx playwright install --with-deps
      - run: npx playwright test --shard=${{ matrix.shard }}/4
      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: test-results-${{ matrix.shard }}
          path: test-results/

Project 4 (Optional): Performance Test Scripts

If you have experience with performance testing (Chapter 5), a k6 or Locust project shows a specialized skill that most QA candidates cannot demonstrate.

Project 5: LLM Evaluation Suite

As of mid-2026, QA and SDET postings at AI-forward companies explicitly ask for LLM evaluation and agent-testing skills, so this project is no longer a niche extra. Build a small Python + PyTest project that evaluates an LLM-powered feature: an eval suite using a framework like Ragas, TruLens, or OpenAI Evals, with RAG quality metrics (Precision@K, grounding, citation accuracy) asserted against thresholds. Even a modest version demonstrates a competency most candidates still cannot show.