Back to Skills

test-automation-strategy

proffesor-for-testing
Updated Today
94 views
99
21
99
View on GitHub
Otherautomationtest-pyramidpage-objectfirst-principlesci-cdflaky-tests

About

This Claude Skill helps developers design and implement effective test automation frameworks by applying the test pyramid, F.I.R.S.T. principles, and design patterns like Page Object Model. It focuses on integrating automation into CI/CD for fast feedback and improved test efficiency. Use it when building new automation strategies or optimizing existing test suites.

Documentation

Test Automation Strategy

<default_to_action> When designing or improving test automation:

  1. FOLLOW test pyramid: 70% unit, 20% integration, 10% E2E
  2. APPLY F.I.R.S.T. principles: Fast, Isolated, Repeatable, Self-validating, Timely
  3. USE patterns: Page Object Model, Builder pattern, Factory pattern
  4. INTEGRATE in CI/CD: Every commit runs tests, fail fast, clear feedback
  5. MANAGE flaky tests: Quarantine, fix, or delete - never ignore

Quick Anti-Pattern Detection:

  • Ice cream cone (many E2E, few unit) → Invert to pyramid
  • Slow tests (> 10 min suite) → Parallelize, mock external deps
  • Flaky tests → Fix timing, isolate data, or quarantine
  • Test duplication → Share fixtures, use page objects
  • Brittle selectors → Use data-testid, semantic locators

Critical Success Factors:

  • Fast feedback is the goal (< 10 min full suite)
  • Automation supports testing, doesn't replace judgment
  • Invest in test infrastructure like production code </default_to_action>

Quick Reference Card

When to Use

  • Building new automation framework
  • Improving existing test efficiency
  • Reducing flaky test burden
  • Optimizing CI/CD pipeline speed

Test Pyramid

Layer%SpeedIsolationExamples
Unit70%< 1msCompletePure functions, logic
Integration20%< 1sPartialAPI, database
E2E10%< 30sNoneUser journeys

F.I.R.S.T. Principles

PrincipleMeaningHow
FastQuick executionMock external deps
IsolatedNo shared stateFresh fixtures per test
RepeatableSame result every timeNo random data
Self-validatingClear pass/failAssert, don't print
TimelyWritten with codeTDD, not after

Anti-Patterns

ProblemSymptomFix
Ice cream cone80% E2E, 10% unitInvert pyramid
Slow suite30+ min CIParallelize, prune
Flaky testsRandom failuresQuarantine, fix timing
Coupled testsOrder-dependentIsolate data
Brittle selectorsBreak on CSS changeUse data-testid

Page Object Model

// pages/LoginPage.js
class LoginPage {
  constructor(page) {
    this.page = page;
    this.emailInput = '[data-testid="email"]';
    this.passwordInput = '[data-testid="password"]';
    this.submitButton = '[data-testid="submit"]';
    this.errorMessage = '[data-testid="error"]';
  }

  async login(email, password) {
    await this.page.fill(this.emailInput, email);
    await this.page.fill(this.passwordInput, password);
    await this.page.click(this.submitButton);
  }

  async getError() {
    return this.page.textContent(this.errorMessage);
  }
}

// Test uses page object
test('shows error for invalid credentials', async ({ page }) => {
  const loginPage = new LoginPage(page);
  await loginPage.login('[email protected]', 'wrong');
  expect(await loginPage.getError()).toBe('Invalid credentials');
});

CI/CD Integration

name: Test Pipeline
on: [push, pull_request]

jobs:
  unit-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run test:unit -- --coverage
        timeout-minutes: 5
      - uses: codecov/codecov-action@v3

  integration-tests:
    needs: unit-tests
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:15
    steps:
      - run: npm run test:integration
        timeout-minutes: 10

  e2e-tests:
    needs: integration-tests
    runs-on: ubuntu-latest
    steps:
      - run: npx playwright test
        timeout-minutes: 15

Flaky Test Management

// Quarantine flaky tests
describe.skip('Quarantined - INC-123', () => {
  test('flaky test awaiting fix', () => { /* ... */ });
});

// Agent-assisted stabilization
await Task("Fix Flaky Tests", {
  tests: quarantinedTests,
  analysis: ['timing-issues', 'data-isolation', 'race-conditions'],
  strategies: ['add-waits', 'isolate-fixtures', 'mock-externals']
}, "qe-flaky-test-hunter");

Agent-Assisted Automation

// Generate tests following pyramid
await Task("Generate Test Suite", {
  sourceCode: 'src/',
  pyramid: { unit: 70, integration: 20, e2e: 10 },
  patterns: ['page-object', 'builder', 'factory'],
  framework: 'jest'
}, "qe-test-generator");

// Optimize test execution
await Task("Optimize Suite", {
  algorithm: 'johnson-lindenstrauss',
  targetReduction: 0.3,
  maintainCoverage: 0.95
}, "qe-regression-risk-analyzer");

// Analyze flaky patterns
await Task("Flaky Analysis", {
  testHistory: 'last-30-days',
  detectPatterns: ['timing', 'data', 'environment'],
  recommend: 'stabilization-strategy'
}, "qe-flaky-test-hunter");

Agent Coordination Hints

Memory Namespace

aqe/automation/
├── test-pyramid/*        - Coverage by layer
├── page-objects/*        - Shared page objects
├── flaky-registry/*      - Quarantined tests
└── execution-metrics/*   - Suite performance data

Fleet Coordination

const automationFleet = await FleetManager.coordinate({
  strategy: 'test-automation',
  agents: [
    'qe-test-generator',         // Generate pyramid-compliant tests
    'qe-test-executor',          // Parallel execution
    'qe-coverage-analyzer',      // Coverage gaps
    'qe-flaky-test-hunter',      // Flaky detection
    'qe-regression-risk-analyzer' // Smart selection
  ],
  topology: 'hierarchical'
});

Related Skills


Remember

Pyramid: 70% unit, 20% integration, 10% E2E. F.I.R.S.T. principles for every test. Page Object Model for E2E. Parallelize for speed. Quarantine flaky tests - never ignore them. Treat test code like production code.

With Agents: Agents generate pyramid-compliant tests, detect flaky patterns, optimize execution time, and maintain test infrastructure. Use agents to scale automation quality.

Quick Install

/plugin add https://github.com/proffesor-for-testing/agentic-qe/tree/main/test-automation-strategy

Copy and paste this command in Claude Code to install this skill

GitHub 仓库

proffesor-for-testing/agentic-qe
Path: .claude/skills/test-automation-strategy
agenticqeagenticsfoundationagentsquality-engineering

Related Skills

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill

Algorithmic Art Generation

Meta

This skill helps developers create algorithmic art using p5.js, focusing on generative art, computational aesthetics, and interactive visualizations. It automatically activates for topics like "generative art" or "p5.js visualization" and guides you through creating unique algorithms with features like seeded randomness, flow fields, and particle systems. Use it when you need to build reproducible, code-driven artistic patterns.

View skill

business-rule-documentation

Meta

This skill provides standardized templates for systematically documenting business logic and domain knowledge following Domain-Driven Design principles. It helps developers capture business rules, process flows, decision trees, and terminology glossaries to maintain consistency between requirements and implementation. Use it when documenting domain models, creating business rule repositories, or bridging communication between business and technical teams.

View skill

huggingface-accelerate

Development

HuggingFace Accelerate provides the simplest API for adding distributed training to PyTorch scripts with just 4 lines of code. It offers a unified interface for multiple distributed training frameworks like DeepSpeed, FSDP, and DDP while handling automatic device placement and mixed precision. This makes it ideal for developers who want to quickly scale their PyTorch training across multiple GPUs or nodes without complex configuration.

View skill