Files
superset2/docs/developer_docs_versioned_docs/version-6.1.0/testing/overview.md
Claude Code 4ee42fe5b8 docs: cut 6.1.0 versions for user_docs, admin_docs, developer_docs, components
Snapshots all four versioned Docusaurus sections at v6.1.0, cut from
master after the version-cutting tooling (#39837), broken-internal-
links fix (#40102), and user_docs rename (#40171) all landed. With
the rename in place, all four sections now produce parallel-named
files at the docs/ root (no more bare `versioned_docs/` outlier).

Versioning behavior: lastVersion stays at current for every section,
so the canonical URLs (/user-docs/..., /admin-docs/...,
/developer-docs/..., /components/...) continue to render content
from master. The current version is consistently labeled "Next"
with an unreleased banner, and 6.1.0 is a historical pin accessible
only via its explicit version segment.

Component playground: previously disabled: true in versions-config.json,
now enabled and versioned.

Snapshot includes:
- All MDX content for the four sections.
- Auto-gen captured fresh: 74 database pages (engine spec metadata),
  ~1,800 API reference files (openapi.json), 59 component pages
  (Storybook stories).
- Data imports frozen at cut time into snapshot-local _versioned_data/
  dirs:
    user_docs_versioned_docs/version-6.1.0/_versioned_data/src/data/databases.json
      (canonical 80-database diagnostics from master, preserved by the
      generator's input-hash cache)
    admin_docs_versioned_docs/version-6.1.0/_versioned_data/data/countries.json
    admin_docs_versioned_docs/version-6.1.0/_versioned_data/static/feature-flags.json
    developer_docs_versioned_docs/version-6.1.0/_versioned_data/static/data/components.json
- Import paths in deeply-nested files rewritten so they still resolve
  from one directory deeper inside the snapshot.
- developer_docs/extensions/overview.md snapshot has the FIXED
  ./mcp.md form (from #40102), so the SPA-nav 404 isn't baked into
  the 6.1.0 version.

Verified via full yarn build: exit 0, no broken links surfaced by
onBrokenLinks: throw.
2026-05-15 22:36:30 -07:00

5.7 KiB

title, sidebar_position
title sidebar_position
Overview 1

Overview

Apache Superset follows a comprehensive testing strategy that ensures code quality, reliability, and maintainability. This section covers all aspects of testing in the Superset ecosystem, from unit tests to end-to-end testing workflows.

Testing Philosophy

Superset embraces a testing pyramid approach:

  • Unit Tests: Fast, isolated tests for individual components and functions
  • Integration Tests: Tests that verify component interactions and API endpoints
  • End-to-End Tests: Full user journey testing in browser environments

Testing Documentation

Frontend Testing

  • Frontend Testing - Jest, React Testing Library, and component testing strategies

Backend Testing

End-to-End Testing

  • E2E Testing - Playwright testing for complete user workflows

CI/CD Integration

  • CI/CD - Continuous integration, automated testing, and deployment pipelines

Testing Tools & Frameworks

Frontend

  • Jest: JavaScript testing framework for unit and integration tests
  • React Testing Library: Component testing utilities focused on user behavior
  • Playwright: Modern end-to-end testing for web applications
  • Storybook: Component development and visual testing environment

Backend

  • pytest: Python testing framework with powerful fixtures and plugins
  • SQLAlchemy Test Utilities: Database testing and transaction management
  • Flask Test Client: API endpoint testing and request simulation

Best Practices

Writing Effective Tests

  1. Test Behavior, Not Implementation: Focus on what the code should do, not how it does it
  2. Keep Tests Independent: Each test should be able to run in isolation
  3. Use Descriptive Names: Test names should clearly describe what is being tested
  4. Arrange, Act, Assert: Structure tests with clear setup, execution, and verification phases

Test Organization

  • Colocation: Place test files near the code they test
  • Naming Conventions: Use consistent naming patterns for test files and functions
  • Test Categories: Organize tests by type (unit, integration, e2e)
  • Test Data Management: Use factories and fixtures for consistent test data

Running Tests

Quick Commands

# Frontend unit tests
npm run test

# Backend unit tests  
pytest tests/unit_tests/

# End-to-end tests
npm run playwright:test

# All tests with coverage
npm run test:coverage

Test Development Workflow

  1. Write Failing Test: Start with a test that describes the desired behavior
  2. Implement Feature: Write the minimum code to make the test pass
  3. Refactor: Improve code quality while keeping tests green
  4. Verify Coverage: Ensure adequate test coverage for new code

Testing in Development

Test-Driven Development (TDD)

  • Write tests before implementation
  • Use tests to guide design decisions
  • Maintain fast feedback loops

Continuous Testing

  • Run tests automatically on code changes
  • Integrate testing into development workflow
  • Use pre-commit hooks for test validation

Getting Started

  1. Set up Testing Environment: Follow the development setup guide
  2. Run Existing Tests: Familiarize yourself with the test suite
  3. Write Your First Test: Start with a simple unit test
  4. Learn Testing Patterns: Study existing tests for patterns and conventions

Topics to be covered:

  • Testing strategy and pyramid
  • Test-driven development (TDD) for plugins
  • Continuous integration and automated testing
  • Code coverage and quality metrics
  • Testing tools and frameworks overview
  • Mock data and test fixtures
  • Performance testing and benchmarking
  • Accessibility testing automation
  • Cross-browser and device testing
  • Regression testing strategies

Testing Levels

Unit Testing

  • Component testing - Individual React components
  • Function testing - Data transformation and utility functions
  • Hook testing - Custom React hooks
  • Service testing - API clients and business logic

Integration Testing

  • API integration - Backend service communication
  • Component integration - Multi-component workflows
  • Data flow testing - End-to-end data processing
  • Plugin lifecycle testing - Installation and activation

End-to-End Testing

  • User workflow testing - Complete user journeys
  • Cross-browser testing - Browser compatibility
  • Performance testing - Load and stress testing
  • Accessibility testing - Screen reader and keyboard navigation

Testing Tools

  • Jest - Unit and integration testing framework
  • React Testing Library - Component testing utilities
  • Playwright - End-to-end testing (replacing Cypress)
  • Storybook - Component development and testing

This documentation is under active development. Check back soon for updates!