skip to content

When is a second runner alongside Cypress better than working around a misfit?

level: principalimportance: should knowfreq 36%

answer

  1. Count the misfitting flows first
  2. One flow, several flows, or most
  3. Two suites cost more than two configs
  4. Manual is a legitimate third answer
  5. A second suite needs a written charter

basics

~20 s

When the misfit is a bounded, named set of flows with an owner, a second tool can be cheaper than a workaround nobody trusts. When most journeys hit the limit, the answer is not two suites but one different primary tool.

solid answer

~50 s

Count the misfitting flows before you count the tools. If **one or two** journeys hit a Cypress boundary and the workaround is first-party and readable - a `cy.origin()` hop at sign-in, say - stay in one suite; a second harness costs more than the awkwardness it removes. If **most** journeys hit the boundary, two suites is the wrong answer as well: Cypress is simply not the right primary, and you should choose once rather than run a permanent split. The narrow middle is where a second tool earns its place: a bounded set of flows Cypress cannot reach at all, such as a real-device or Safari sign-off or a genuine two-browser scenario, with a **written charter** saying what may live there and a **named owner**. Without those two, a temporary second suite becomes a duplicate one.

go deeper

for a junior

Know that teams sometimes run more than one test tool, and that it is a deliberate decision with a cost, not a convenience.

for a middle

Be ready to name the Cypress constraints that trigger this conversation - one browser at a time and one superdomain per test - and what a workaround looks like for each.

for a senior

Show that you price the second harness honestly: extra CI wiring, extra failure triage, split skills, drifting coverage. Then argue for one option rather than listing them.

for a principal

Own the boundary itself. Write the charter, name the owner, state the collapse condition, and set the date you revisit it, so the split does not become permanent by accident.

## Count the misfits before you count the tools The question is not *"can Cypress do this?"* but *"how much of our product does Cypress not fit, and what does each option cost?"*. Two constraints do most of the work here, and both are permanent by design rather than gaps awaiting a release: Cypress drives **one open browser at a time**, and each test is bound to **one superdomain**, crossed deliberately with `cy.origin()`. Everything else in the argument is downstream of how often your journeys collide with those two. That gives three cases, and they have different answers. - **A handful of flows, first-party workaround available.** Stay in one suite. A sign-in hop written inside `cy.origin()` is a seam a reader can follow. A second harness introduced for two specs will cost more in a year than the awkwardness it removed. - **Most journeys collide with the boundary.** Do not run two suites. If every journey in the product crosses an identity boundary, or the release cannot ship without a Safari and real-device sign-off, Cypress is the wrong *primary* tool and the honest move is to choose once. - **A bounded, nameable set Cypress cannot reach at all.** This is the only case where a second tool is genuinely the cheaper answer, and it needs to be run deliberately. ## What each option actually costs | Option | What you pay | |---|---| | Work around it inside Cypress | Specs that carry more than one execution model; readers who must hold two mental models; a growing pile of exceptions the team stops trusting | | Add a second tool for a slice | Two vocabularies and two sets of conventions; two CI wirings and two artefact stores; two failure streams to triage; split skills; coverage that drifts into duplication | | Leave those flows manual | A recurring cost per release, and a check that quietly stops happening under deadline | | Replace Cypress entirely | A rewrite, plus the loss of whatever made the team pick it - usually the in-browser debugging loop | The line most teams get wrong is the third row. *Manual* is a legitimate answer for a small, low-frequency sign-off, and pretending otherwise is how a second automation stack gets adopted to cover two checks a year. ## The conditions that make a second suite defensible 1. **The boundary is written down.** A one-paragraph charter saying exactly which flows may live in the second suite - and that everything else belongs in Cypress. Without it, the second suite grows by convenience rather than by rule. 2. **It has a named owner.** Not a team; a person who is accountable for it being green and for telling you when it should be folded back. 3. **It has a collapse condition.** Write down what would end it: the flows being retired, the coverage moving down a level, or the primary tool gaining the capability. 4. **Its results land in the same place.** If the second suite reports somewhere nobody looks, it is not a second suite, it is a second opinion nobody asked for. ## The failure mode to name in an interview The predictable failure is the *temporary* second suite. It starts with three specs for the one flow Cypress cannot reach, and eighteen months later it holds forty, overlapping the Cypress suite, owned by whoever last touched it, with its own flaky set and its own conventions. Nobody decided that; it accumulated because nothing said where the boundary was. The second failure is subtler and more common: the team that never admits the misfit at all, and instead grows an ever-larger scaffold of workarounds inside one suite until the specs are no longer about the product. Both failures come from the same missing act - somebody naming, out loud, the thing the tool does not do. ## What an interviewer is listening for They want to hear you weigh **coherence** against **coverage**. One suite in one vocabulary is worth real money: shared conventions, one CI story, one place to look when something is red. Coverage of a flow you cannot otherwise reach is worth real money too. A senior answer picks one and prices the other; a strong answer also says what would make it revisit the decision, and puts a date on it.

  • How do you stop a small second suite from growing into a duplicate of the Cypress suite?
    Give it a charter that names the flows it may hold, a person who owns it, and a stated condition under which it collapses back. Review it on a fixed date rather than on demand. Growth happens by convenience, so the boundary has to be a rule somebody enforces, not a shared intention.
  • The misfit is a once-a-release Safari check. Automate it elsewhere or keep it manual?
    Usually keep it manual, at least at first. One low-frequency check does not repay a second automation stack, its CI wiring and its ongoing upkeep. Write the manual script down, put it in the release checklist with an owner, and revisit if the check gets more frequent or starts finding real defects.

saying these in an interview costs you the question

  • Adds a second tool for a single awkward flow
  • Assumes two suites cost only two config files
  • Never considers leaving the flow manual
  • Treats any workaround as free once it passes
  • Starts a temporary suite with no owner or boundary