Skip to content

Early Adopter Offer:Get 40% off Core & Scale for your first year with code EARLYQFView pricing

Test Observability

CTRF

Also known as: Common Test Report Format

CTRF (Common Test Report Format) is a JSON schema for test results that treats retries, flakiness and per-attempt history as first-class fields rather than improvised conventions.

CTRF exists to fix what JUnit XML cannot express. A report carries a required results object holding tool, summary and tests, and each test may record a retries count, a retryAttempts array describing every earlier attempt, and a flaky boolean the spec defines precisely — a test is flaky only if its final status is passed and it failed at least once before passing.

It also normalises without destroying: statuses collapse to five values, but an optional rawStatus preserves whatever the producing tool originally reported, so outcomes like timeout or aborted remain recoverable. The trade-off against JUnit XML is reach — CI systems do not read CTRF natively, so it usually rides alongside a JUnit file rather than replacing one.

  • Requires three top-level fields: results, reportFormat and specVersion.
  • Status enum has exactly five values: passed, failed, skipped, pending, other.
  • Retries, retryAttempts and flaky are modelled fields, not property conventions.

Learn more

See it in your own test results

Qualflare detects flaky tests, clusters failures by root cause, and scores release risk from the test results you already produce in CI. Start free.

Start free with Qualflare

← Back to the testing & observability glossary.

Last reviewed September 9, 2026