Skip to content
qa-screenshot-management logo

QA Screenshot Management Skill

qa-screenshot-management

Screenshot capture, organization, and comparison for QA testing. Use when taking screenshots during test execution to ensure proper naming, organization, and traceability back to test cases.

jpoutrin/product-forge0installs16stars

SKILL.md

Full skill instructions

QA Screenshot Management Skill

Standardize screenshot capture and organization during QA testing.

Directory Structure

qa-tests/
├── draft/                           # QA test documents by status
├── active/
├── executed/
├── archived/
└── screenshots/
    ├── {test-id}/                   # e.g., QA-20250105-001
    │   ├── 01-initial-state.png     # Numbered sequence
    │   ├── 02-form-filled.png
    │   ├── 03-success-state.png
    │   └── elements/                # Extracted UI elements
    │       ├── login-button.png
    │       ├── email-field.png
    │       └── password-field.png
    ├── baseline/                    # Reference screenshots for comparison
    │   └── {feature}/
    │       └── {state}.png
    └── failures/                    # Failed test evidence
        └── {date}/
            └── {test-id}-{timestamp}.png

Key: Screenshots are stored in qa-tests/​screenshots/​{test-id}/ where {test-id} matches the QA test document name (e.g., QA-20250105-001).

Naming Convention

Format

{sequence}-{state-description}.{png|jpeg}

Sequence Numbers

  • 01- through 99- for ordered steps
  • Preserves execution order in file listings

State Descriptions

Use descriptive, kebab-case names:

StateExample Filename
Initial page load01-initial-state.png
After form fill02-form-filled.png
Validation error03-validation-error.png
Success message04-success-message.png
Modal open05-modal-open.png
Dropdown expanded06-dropdown-expanded.png

Bad vs Good Names

BadGood
screenshot1.png01-login-page-loaded.png
test.png02-credentials-entered.png
error.png03-invalid-password-error.png
final.png04-dashboard-after-login.png

When to Capture Screenshots

Always Capture

  1. Initial State - Before any test actions
  2. After Critical Actions - Form submissions, navigation
  3. Error States - Any validation or system errors
  4. Success States - Confirmation messages, completed flows
  5. Final State - End of test case

Conditional Capture

  • Unexpected behavior (document with timestamp)
  • Performance issues (loading spinners, delays)
  • UI anomalies (layout issues, missing elements)

Screenshot Metadata

Include metadata in test documentation:

### Screenshots

| # | Filename | Description | Step |
|---|----------|-------------|------|
| 1 | 01-initial-state.png | Login page before input | TC-001 Step 1 |
| 2 | 02-credentials-entered.png | Form with test credentials | TC-001 Step 2 |
| 3 | 03-dashboard-loaded.png | Dashboard after successful login | TC-001 Step 3 |

Playwright Screenshot Commands

Basic Capture

// Full viewport
await page.screenshot({ path: 'screenshots/​01-initial-state.png' });

// Full page (scrollable)
await page.screenshot({
  path: 'screenshots/​02-full-page.png',
  fullPage: true
});

Element Screenshot

// Specific element only
const element = page.locator('.error-message');
await element.screenshot({ path: 'screenshots/​03-error-detail.png' });

With Timestamp

const timestamp = new Date().toISOString().replace(/[:.]/​g, '-');
await page.screenshot({
  path: `screenshots/​failure-${timestamp}.png`
});

Visual Comparison Strategy

Baseline Management

  1. Create Baseline

    • Capture reference screenshots on approved build
    • Store in screenshots/​baseline/​{feature}/
    • Version control baselines
  2. Compare During Testing

    • Capture current state
    • Compare against baseline
    • Document differences

Acceptable Differences

TypeAction
Dynamic content (dates, times)Mask or ignore region
User-specific dataUse consistent test data
AnimationsWait for stable state
Random elements (ads)Exclude from comparison

Failure Documentation

When a test fails, capture:

screenshots/​failures/​2025-01-05/
├── QA-20250105-001-TC-002-1704456789.png  # Actual state
├── QA-20250105-001-TC-002-expected.png    # Expected (if applicable)
└── QA-20250105-001-TC-002-diff.png        # Visual diff (if generated)

Failure Screenshot Checklist

  • Capture full page showing context
  • Capture specific element with issue
  • Note browser console errors
  • Record timestamp
  • Link to test case and step

Cross-Browser Screenshots

Organize by browser when testing multiple browsers:

screenshots/​{test-id}/
├── chrome/
│   ├── 01-initial-state.png
│   └── 02-final-state.png
├── firefox/
│   └── ...
└── safari/
    └── ...

Responsive Screenshots

Capture at standard breakpoints:

DeviceWidthSuffix
Mobile375px-mobile
Tablet768px-tablet
Desktop1280px-desktop
Wide1920px-wide

Example:

01-homepage-mobile.png
01-homepage-tablet.png
01-homepage-desktop.png

Screenshot Cleanup

Retention Policy

CategoryRetention
Passing testsDelete after test run
Failing testsKeep until issue resolved
BaselinesKeep in version control
Regression evidenceKeep 30 days minimum

Cleanup Command

# Remove screenshots older than 30 days from failures
find qa-tests/​screenshots/​failures -mtime +30 -delete

Integration with Test Reports

Reference screenshots in test execution logs:

## Test Execution Log

| Date | Tester | Result | Evidence |
|------|--------|--------|----------|
| 2025-01-05 | Jane | FAIL | [Screenshots](./​screenshots/​QA-20250105-001/) |

Accessibility Screenshot Guidelines

When documenting accessibility issues:

  1. Highlight Problem Area

    • Use browser dev tools to highlight element
    • Capture with focus indicator visible
  2. Include Context

    • Show surrounding elements
    • Capture screen reader output if relevant
  3. Document Fix Verification

    • Before screenshot
    • After screenshot
    • Side-by-side comparison

More skills from jpoutrin

mcp-security logo
jpoutrin/product-forge

mcp-security

Use when securing MCP servers, preventing prompt injection, implementing authorization, validating user input, or building secure multi-agent pipelines. Provides 5-layer defense architecture patterns.

16 0
View
create-skill logo
jpoutrin/product-forge

create-skill

Create a new Claude Code agent skill with proper folder structure and SKILL.md format. Use when the user wants to add a model-invoked skill that Claude uses autonomously based on context. Handles skill folder creation with SKILL.md and optional reference files.

16 0
View
design-system logo
jpoutrin/product-forge

design-system

Design system management for building and reusing UI components, tokens, and patterns. Use when working with component libraries, design tokens, style guides, or reusable UI patterns to ensure consistency and promote component reuse.

16 0
View
fastmcp logo
jpoutrin/product-forge

fastmcp

FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.

16 0
View
portman logo
jpoutrin/product-forge

portman

Port management for local development with git worktrees. Use when setting up local development environments, booking ports for services to avoid collisions between parallel worktrees, or configuring docker-compose with dynamic ports.

16 0
View
qa-test-management logo
jpoutrin/product-forge

qa-test-management

Automatic QA test lifecycle management, naming conventions, and directory structure. Use when creating, organizing, or tracking QA tests to ensure proper naming, directory structure, and status transitions.

16 0
View
create-command logo
jpoutrin/product-forge

create-command

Create a new Claude Code slash command with proper YAML frontmatter structure. Use when the user wants to add a custom slash command to a plugin. Handles command file creation with description, argument hints, allowed tools, and all advanced features.

16 0
View
dependency-alignment logo
jpoutrin/product-forge

dependency-alignment

Dependency version alignment and conflict resolution for parallel development. Use when extracting dependencies from Tech Specs to ensure version compatibility with existing project dependencies and transitive dependencies.

16 0
View
code-review logo
jpoutrin/product-forge

code-review

Review code changes between commits for security, logic, performance, and style issues

16 0
View
create-persona logo
jpoutrin/product-forge

create-persona

Create detailed user persona with guided questions

16 0
View
bl-undo logo
jpoutrin/product-forge

bl-undo

Undo git-branchless operations - recover from mistakes interactively

16 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View