Tutorial

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.md s 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:

  1. Spustenienpx cypress run --spec 'cypress/e2e/favorites/*.spec.ts'. Ak padne na selektor, AI halucinovala.
  2. Pokrytí acceptance criteria — otevřete spec a spočítejte: má čtyři bloky it() pro čtyři kritéria? Pokud ne, doptejte se.
  3. 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.