Skip to main content
Software Engineering

Quality Assurance & Automation

10 Modules
Chapter 8: Resources: QA Automation Tools & Learning80%

Resources: QA Automation Tools & Learning

AI-Powered Quality Engineering

Agentic QE Fleet - https://github.com/proffesor-for-testing/agentic-qe

  • 60 specialised AI agents across 13 QE domains
  • Queen Coordinator for intelligent task routing
  • Pattern learning across sessions and projects
  • Anti-sycophancy scoring to catch hollow tests
  • MCP integration with Claude Code, Copilot, Cursor, and 8 more
  • Free local model option via Ollama
npm install -g agentic-qe
cd your-project && aqe init --auto

Testing Frameworks

JavaScript/TypeScript

Vitest - https://vitest.dev

  • Lightning-fast unit testing
  • Vite-native with HMR support
  • Compatible with Jest API
  • Built-in TypeScript support
npm install -D vitest @vitest/ui @vitest/coverage-v8

Jest - https://jestjs.io

  • Most popular JavaScript testing framework
  • Snapshot testing
  • Code coverage built-in
  • Extensive ecosystem
npm install -D jest @types/jest

Playwright - https://playwright.dev

  • Modern E2E testing
  • Cross-browser support
  • Auto-wait capabilities
  • Powerful debugging tools
npm install -D @playwright/test
npx playwright install

Cypress - https://www.cypress.io

  • Developer-friendly E2E testing
  • Time-travel debugging
  • Real-time reloads
  • Network stubbing
npm install -D cypress

Python

pytest - https://docs.pytest.org

  • Simple and scalable testing
  • Fixtures and parametrization
  • Plugin ecosystem
  • Industry standard
pip install pytest pytest-cov pytest-asyncio

Unittest - https://docs.python.org/3/library/unittest.html

  • Built-in Python testing framework
  • xUnit-style testing
  • No external dependencies

Quality Tools

Code Coverage

Codecov - https://codecov.io

  • Coverage reporting and tracking
  • GitHub integration
  • Pull request comments
  • Trend analysis

Istanbul/nyc - https://istanbul.js.org

  • JavaScript code coverage
  • Multiple reporters
  • Source map support
npm install -D nyc

Mutation Testing

Stryker - https://stryker-mutator.io

  • JavaScript/TypeScript mutation testing
  • Multiple test runner support
  • Incremental testing
npm install -D @stryker-mutator/core @stryker-mutator/vitest-runner

mutmut (Python) - https://mutmut.readthedocs.io

pip install mutmut

Linting & Formatting

ESLint - https://eslint.org

npm install -D eslint

Prettier - https://prettier.io

npm install -D prettier

Ruff (Python) - https://docs.astral.sh/ruff

pip install ruff

CI/CD Platforms

GitHub Actions

  • Free for public repos
  • Native GitHub integration
  • Matrix builds
  • Artifact storage

Example Workflow: .github/workflows/test.yml

GitLab CI

  • Built-in to GitLab
  • Docker-first approach
  • Auto DevOps

CircleCI

  • Fast builds
  • Docker layer caching
  • Orbs for reusability

Visual Regression Testing

Percy - https://percy.io

npm install -D @percy/cli @percy/playwright

Chromatic - https://www.chromatic.com

  • Storybook integration
  • UI Review workflows

BackstopJS - https://github.com/garris/BackstopJS

  • Open source
  • Headless browser testing

Performance Testing

Lighthouse CI - https://github.com/GoogleChrome/lighthouse-ci

npm install -D @lhci/cli

k6 - https://k6.io

  • Load testing
  • Scriptable in JavaScript
  • Beautiful reports

Artillery - https://www.artillery.io

  • Modern load testing
  • Serverless support

Security Scanning

Snyk - https://snyk.io

  • Dependency vulnerability scanning
  • License compliance
  • Container scanning

npm audit - Built-in

npm audit --audit-level=moderate

Trivy - https://trivy.dev

  • Container scanning
  • IaC scanning
  • SBOM generation

Testing Utilities

Supertest - API testing

npm install -D supertest

MSW - Mock Service Worker

npm install -D msw

Faker.js - Test data generation

npm install -D @faker-js/faker

Testing Library - User-centric testing

npm install -D @testing-library/react @testing-library/jest-dom

Learning Resources

Documentation

Books

  • "Test Driven Development: By Example" - Kent Beck
  • "The Art of Unit Testing" - Roy Osherove
  • "Growing Object-Oriented Software, Guided by Tests" - Steve Freeman
  • "Working Effectively with Legacy Code" - Michael Feathers

Courses

Blogs & Articles

GitHub Actions Marketplace

Testing Actions:

Test Data & Mocking

Faker.js

import { faker } from '@faker-js/faker';

const user = {
  name: faker.person.fullName(),
  email: faker.internet.email(),
  avatar: faker.image.avatar()
};

MSW (Mock Service Worker)

import { rest } from 'msw';
import { setupServer } from 'msw/node';

const server = setupServer(
  rest.get('/api/user', (req, res, ctx) => {
    return res(ctx.json({ username: 'admin' }));
  })
);

Debugging Tools

Playwright Inspector

npx playwright test --debug

Chrome DevTools

  • Network tab for API calls
  • Console for debugging
  • Coverage tool

VS Code Extensions

  • Vitest
  • Playwright Test for VS Code
  • Jest Runner
  • Code Coverage

Best Practices Checklists

Test Writing Checklist

  • Descriptive test names
  • AAA pattern (Arrange, Act, Assert)
  • Tests are independent
  • No shared state between tests
  • Edge cases covered
  • Error scenarios tested
  • Fast execution

CI/CD Checklist

  • Tests run on every PR
  • Code coverage enforced
  • Security scanning enabled
  • Linting required
  • Type checking (if TypeScript)
  • Build verification
  • Deployment automation

Code Review Checklist

  • New code has tests
  • Tests are meaningful
  • Coverage threshold met
  • No flaky tests
  • Performance acceptable
  • Security considerations

Community & Support

Forums & Communities:

Conferences:

  • TestJS Summit
  • SeleniumConf
  • Automation Guild

Quick Reference

Common Commands

Vitest:

vitest                    # Watch mode
vitest run                # Run once
vitest --coverage         # With coverage
vitest --ui               # UI mode

Playwright:

npx playwright test                  # Run all tests
npx playwright test --ui             # UI mode
npx playwright test --debug          # Debug mode
npx playwright show-report           # View report
npx playwright codegen               # Generate tests

Jest:

jest                      # Run all
jest --watch              # Watch mode
jest --coverage           # Coverage
jest --updateSnapshot     # Update snapshots

Coverage Thresholds

Good Starting Points:

  • Statements: 80%
  • Branches: 75%
  • Functions: 80%
  • Lines: 80%

Production Standards:

  • Statements: 90%+
  • Branches: 85%+
  • Functions: 90%+
  • Lines: 90%+

Navigation