Skip to content

Set up automated cargo mutants testing with periodic reporting #29

@cfuehrmann

Description

@cfuehrmann

Background

Cargo mutants is an excellent tool for mutation testing that helps identify gaps in test coverage by introducing code mutations and verifying tests catch them. However, it has practical limitations for PR workflows:

  • Too slow for PR quality gates: Mutation testing takes significant time
  • Developer machine overhead: Running locally consumes CPU/time
  • Inconsistent usage: Developers may skip it due to performance impact

Proposed Solution

Set up automated, periodic mutation testing that runs on GitHub infrastructure and provides accessible reports.

Requirements

🕒 Periodic Execution

  • Run on schedule (e.g., nightly, weekly)
  • Triggered by significant changes to main branch
  • Not blocking PR merges (separate from quality gate)

📊 Report Generation & Storage

  • Generate mutation testing reports
  • Store reports somewhere accessible (GitHub Pages, artifacts, etc.)
  • Track trends over time if possible
  • Clear indication of test coverage gaps

Performance Considerations

  • Run on GitHub Actions runners (not developer machines)
  • Reasonable execution time limits
  • Potentially cache/incremental analysis

Implementation Ideas (to explore)

  • GitHub Actions workflow with scheduled triggers
  • GitHub Pages for hosting reports
  • Artifact storage for downloadable reports
  • Issue creation for significant coverage regressions
  • Badge/status showing current mutation test score

Benefits

  • Continuous quality monitoring without slowing development
  • Identifies test gaps that manual review might miss
  • No developer overhead - runs on CI infrastructure
  • Historical tracking of test quality trends
  • Actionable insights for improving test coverage

Acceptance Criteria

  • Automated cargo mutants runs periodically
  • Reports are generated and stored accessibly
  • Developers can easily view latest mutation test results
  • Process doesn't interfere with normal PR workflow
  • Clear documentation on interpreting results

This would provide the benefits of mutation testing without the performance impact on day-to-day development workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions