Fairlead SelectIn development

Smart test selection

Run only the tests a change can touch.

Shift left: select and run only the tests affected by each code change, directly in CI/CD. Instant per-commit feedback instead of hours-long suites, so bugs are caught in minutes, not days.

Fairlead Select is on the roadmap and not yet generally available. Join the waitlist to get early access and shape it with us.

Example: one pull request, every test level
End to endUIAPIIntegrationThe suite · 9,850End to end34 of 2,370UI78 of 2,760API12 of 3,500Integration29 of 1,220153run in CI
  • Changed in the pull request
  • Reached by tests that run
  • Not run

A sample change. The other 9,697 tests cannot reach it, so they do not run.

Of 9,850 tests run for one pull request
153
Cheaper to fix a defect at the pull request than at integration
~12×
Full-suite runs per pull request
0

How it works

Where the footprints come fromYour servicesinstrumented by our agentYour testsautomated and manualx-fairlead-* headers credit each method hit to its testWhat it checksThe pull requesteach change, against its baseCompared method by methodfairleadSELECTYour teamas your tests runon every pull requestParsemethods per commitRecordwhich test hit whatMapmethod to testsDiffagainst the baseMatchtests that reach itDeliverto CI and QAEvery stageend to endstagingUIstagingAPIstagingintegrationCImanualQA~ modified− deleted+ addedImpacted, per stageend to end34UI78API12integration29153 of 9,850 testsmanual4 of 60 casesno testreaches itUntested change: to fairleadTESTthe samefootprints,as coveragePull requesta check in CIImpacted tests153 of 9,850, every stageSkipped testsnone reach the changeresult in minutesQAthe manual test planCases to recheck4 of 60 reach the changeWhy each onethe changed code it hitsbefore releaseCoverageAPI and control planeunitend to endmanualUntested changeswhat no test reachesper stage, per commit
Illustrative workflow. Footprints build up as your tests run, in CI, in staging and in manual QA, so each pull request is matched against what every test actually executed. A new method no test reaches is flagged as an untested change and goes to Fairlead Test when it is enabled. The same footprints give coverage per stage, over the API and in the control plane.
Where the footprints come fromYour servicesinstrumented by our agentYour testsautomated and manualx-fairlead-* headers credit eachmethod hit to the test behind itfairleadSELECTParsemethods per commitRecordwhich test hit whatMapmethod to testsDiffagainst the base~ modified− deleted+ addedPull requesteach changeUntestedto fairleadTESTMatchtests that reach itend to end34UI78API12integration29153 of 9,850 testsmanual4 of 60 casesDeliverto CI and QAas coverageYour teamPull requesta check in CIImpacted tests153 of 9,850, every stageSkipped testsnone reach the changeresult in minutesQAmanual planRecheck4 of 60 casesSkipthe other 56before releaseCoverageover the API and in the control planeunitend to endmanualUntested changeswhat no test reachesper stage, per commit
Illustrative workflow. Footprints build up as your tests run, in CI, in staging and in manual QA, so each pull request is matched against what every test actually executed. A new method no test reaches is flagged as an untested change and goes to Fairlead Test when it is enabled. The same footprints give coverage per stage, over the API and in the control plane.
Without Fairlead SelectToday
Minutes after the push
  • Unit
  • Integration
  • Lint
  • Static analysis
Hours or days later, in staging
  • End to end suitefull run
  • API suitefull run

Full signal, hours or days after the push

With Fairlead SelectMatched to each change
Minutes after the push
  • Unit
  • Integration
  • Lint
  • Static analysis
  • End to endimpacted
  • APIimpacted

Full signal, minutes after the push

Hours or days later, in staging

Nothing waits for staging

  • Runs in CI at the pull request
  • Impacted end to end and API, pulled in by Select
  • Deferred to a later environment
The end to end and API suites are the slow ones, so teams defer them. Select runs the part of them a change can reach, at the pull request, and the full signal arrives hours earlier.

What it does

  • Change-impact mapping

    Records which methods every test executes, in every stage, so it knows exactly which tests a given change can affect.

  • Relevant subset per commit

    Runs only the affected tests at the right time, directly in the CI pipeline.

  • Shift left

    Brings expensive end to end and integration tests into CI without the hours-long wait.

  • Lower cost and time

    Cuts both the cost and the time to resolve defects by catching them per commit.

The later a defect escapes, the more it costs

Swipe the diagram

Cost to resolve one defect, against catching it locally100×1×Local1×Pull request5×Master12×QA28×Integration60×Production100×where the slow suites find itSelect pulls detection back herethe impacted tests run at the pull request, not at integration
A defect found at integration costs about twelve times what the same defect costs at the pull request. Running the impacted tests per commit is worth what it is worth because of this curve, not because the suite runs faster.
Cost to resolve one defect, against catching it locallyLocal1×Pull request5×Master12×QA28×Integration60×Production100×Integration is where the slow suites find it.Select pulls detection back to the pull request.About twelve times cheaper to resolve, at these ratios.
A defect found at integration costs about twelve times what the same defect costs at the pull request. Running the impacted tests per commit is worth what it is worth because of this curve, not because the suite runs faster.

Target outcomes

  • Feedback on every commit, in minutes rather than hours of CI.
  • Lower CI cost, and less time to resolve a defect.

Hear when Fairlead Select is ready

Fairlead Select is in development. Leave an address and a line about your stack, and we will write when it can run on it.

Use your company email address so we can reply about your request.

Include your languages, repository host and team size.