Od user story po Cypress test za 60 sekund
Průměrný QA inženýr napíše Cypress test za 2–4 hodiny. S dobře postaveným AI workflow to jde za 60–90 sekund. Ne proto, že by AI byla rychlejší než tester — ale proto, že odbourá opakující se boilerplate.
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)- Jasně napsaná user story
Krok 1: Priprav user story
Špatná user story = špatný test. Tenhle formát 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"
Když má AI konkrétní acceptance criteria, napíše čtyři testovací případy — ne jeden obecný.
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á být rychlá, ne slepě důvěřivá. Tyhle tři kontroly zvládne juniorní reviewer za minutu:
- Spustenie —
npx cypress run --spec 'cypress/e2e/favorites/*.spec.ts'. Ak padne na selektor, AI halucinovala. - Pokrytí acceptance criteria — otevřete spec a spočítejte: má čtyři bloky
it()pro čtyři kritéria? Pokud ne, doptejte se. - Negativní případy — testuje scénář nepřihlášeného uživatele? Testuje dvojklik (odebrání)?
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. - Chybějící
beforeEach()— AI někdy vynechá úklid, což vede k flaky testům při paralelním běhu. - 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, který odstraní 80 % problémů
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ý.
Kdy 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 stejný přístup u vás? Napište nám — domluvíme 30minutový discovery call.