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.mds 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:
- Spustenie —
npx cypress run --spec 'cypress/e2e/favorites/*.spec.ts'. Ak padne na selektor, AI halucinovala. - Pokrytie acceptance — otvor spec a spočítaj: má 4
it()bloky pre 4 acceptance kritériá? Ak nie, dopýtaj. - 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.