Tutorial

Od user story po Cypress test za 60 sekund

Priemerný QA engineer napíše Cypress test za 2–4 hodiny. S dobre postaveným AI workflow to ide za 60–90 sekúnd. Nie preto, že AI je rýchlejšia než tester — ale preto, že odstrauje opakujúcu sa boilerplate prácu.

Tento článok je hands-on návod. Použijeme Claude Code, ale princíp funguje aj s Cursor alebo Copilot Chat.

Predpoklady

  • Existujúci Cypress + TypeScript projekt
  • Page Object pattern (Claude sa ním riadi)
  • CLAUDE.md s projekt konvenciami (pozrite predošlý článok)
  • Jasne napísaná user story

Krok 1: Priprav user story

Zlá user story = zlý test. Toto je formát, ktorý funguje:

AKO registrovaný používateľ
CHCEM pridať produkt do obľúbených
ABY som ho vedel nájsť pri ďalšej návšteve.

Acceptance:
- Klik na srdiečko v produkt detail pridá produkt do obľúbených
- Návrat na /favorites zobrazí pridaný produkt
- Klik znovu na srdiečko produkt odstráni
- Neprihlásený používateľ dostane modal "prihláste sa"

Keď má AI konkrétne acceptance criteria, vie napísať 4 test prípady — nie 1 generický.

Krok 2: Prompt

> Napíš Cypress test pre túto user story.

[paste user story sem]

Context:
- Test go do cypress/e2e/favorites/
- Použij existujúci productPage a favoritesPage (ak existujú, inak
  ich vygeneruj v cypress/support/pages/)
- Testuj aj scenar neprihláseného používateľa (očakávaj modal s
  data-qa="auth-required-modal")
- Pre login použij custom command cy.loginAs('standard')

Krok 3: Validuj výstup (60 sekúnd)

AI má byť rýchle, nie neobmedzene dôverčivé. Tieto 3 kontroly urobí juniorný reviewer za minútu:

  1. Spustenienpx cypress run --spec 'cypress/e2e/favorites/*.spec.ts'. Ak padne na selektor, AI halucinovala.
  2. Pokrytie acceptance — otvor spec a spočítaj: má 4 it() bloky pre 4 acceptance kritériá? Ak nie, dopýtaj.
  3. Negative cases — testuje scenár neprihláseného používateľa? Testuje double-click (odstránenie)?

Bežné chyby AI pri generovaní testov

  • Vymyslené selektory — AI vidí data-qa="login-btn" v predchádzajúcom teste a predpokladá, že aj produkt stránka má rovnaký pattern. Validácia = skutočne otvoriť stránku a pozrieť DOM.
  • Chýbajúce beforeEach() — AI niekedy vynechá cleanup, čo vedie k flaky testom pri paralelnom spúšťaní.
  • Hardcoded cy.wait(2000) — klasika. Aj s dobrým CLAUDE.md občas vyskočí. Stop & fix.
  • Tested happy path only — ak acceptance obsahuje negatívnu vetvu, AI ju občas zamlčí. Explicitne si pýtaj.

Meta-prompt, ktorý vylučuje 80 % problémov

Toto prilep na začiatok každého generation promptu:

Pravidlá:
- Pred napísaním testu otvor relevantné page objects a over selektory
- Žiadne cy.wait(ms). Používaj cy.intercept() alebo .should()
- Pre každé acceptance kritérium 1 it() blok
- Zahŕň negatívne scenáre, ak sa logicky ponúkajú
- Použi existujúce factories a fixtures namiesto inline dát
- Ak niečo nevieš z kódu, pýtaj sa — nehalucinuj

Rozdiel v kvalite výstupu je citeľný.

Keď AI nestačí

Ak user story popisuje flow s kritickou biznisovou logikou (platby, regulácia, GDPR), nepoužívaj AI ako autora testu — použij ju ako pomocníka. Napíšte kostru sám, AI doplní Page Object volania a assertions.


Chcete rovnaký prístup u vás? Napište nám — dohodneme 30minutový discovery call.