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
- Testing JavaScript - Kent C. Dodds
- Playwright with TypeScript
- TDD Course
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
- Previous: Assessment
- Back to Workshop Overview