Generovanie test dát pomocou AI — od fixtures po E2E scenáre
Kde nájdeš reálne používateľské dáta na testovanie, ktoré nie sú GDPR nočnou morou? Nikde. Buď ich máte anonymizované (drahé, prácne), alebo si ich vygeneruješ. AI urobila syntetické dáta prakticky použiteľnými.
Tento článok pokrýva 3 úrovne generovania: fixtures, factory patterns a E2E dátové scenáre.
Úroveň 1: Fixtures s AI
Fixture je statický JSON súbor v cypress/fixtures/, ktorý test volá. AI zvláda generovať konzistentné, schema-aware fixtures za sekundy.
> Vygeneruj cypress/fixtures/users/premium-users.json
obsahujúci 20 používateľov s nasledujúcou schemou:
{
id: UUID v4,
email: unikátny gmail,
name: { first, last } — slovenské mená,
subscription: { plan: "premium", validUntil: ISO date in future },
preferences: { language: "sk" | "en", marketing: boolean }
}
Dátum validity rozlož od 30 do 400 dní od dnes.
Claude vygeneruje validný JSON, ktorý môžeš okamžite použiť v teste: cy.fixture('users/premium-users.json').
Úroveň 2: Factory patterns
Factory vygeneruje používateľa s override v test time. Použi @faker-js/faker + AI na metódy:
// cypress/support/factories/userFactory.ts
import { faker } from '@faker-js/faker/locale/sk';
export const userFactory = {
build(overrides = {}) {
return {
id: faker.string.uuid(),
email: faker.internet.email({ provider: 'example.sk' }),
firstName: faker.person.firstName(),
lastName: faker.person.lastName(),
phone: faker.phone.number('+421 9## ### ###'),
address: {
street: faker.location.streetAddress(),
city: faker.location.city(),
zip: faker.location.zipCode(),
},
...overrides,
};
},
buildPremium(overrides = {}) {
return this.build({
subscription: {
plan: 'premium',
validUntil: faker.date.future({ years: 1 }).toISOString(),
},
...overrides,
});
},
};
// Use in test:
const user = userFactory.build({ email: 'test@example.sk' });
AI pri písaní test scenára rozumie userFactory.buildPremium() a použije ho spontánne.
Úroveň 3: E2E dátové scenáre (náročnejšie)
Zložitý E2E test potrebuje konzistentné dáta cez 3+ entity: používateľ + jeho objednávky + payment history + refund scenáre. Manuálne písanie = hodiny. AI to vygeneruje z vysokej úrovne promptu:
> Vygeneruj seed dáta pre E2E scenár "refund process": Scenár potrebuje: - 1 používateľ (premium plan, valid payment method) - 3 objednávky za posledných 30 dní (rôzne statusy: delivered, in-transit, cancelled) - 1 objednávka s poškodeným produktom, vhodná na refund - Admin používateľ s refund permissions Výstup: - cypress/fixtures/scenarios/refund.json — dáta - cypress/support/scenarios/refund.ts — setup helper (API calls na seednutie)
Výstup je kompletný setup, ktorý v teste zavoláte cez cy.setupScenario('refund').
GDPR-safe patterns
Zvlášť kritické v poisťovníctve, zdravotníctve, bankovníctve:
- Nikdy nepoužívať produkčné dáta. Aj anonymizované môžu byť deanonymizovateľné.
- Locale-respecting data. Slovenské meno, slovenská adresa, slovenské rodné číslo (s validným check digit).
- Rodné čísla generované syntheticky — faker.cz má RČ generator, pre SK postavíme helper, ktorý dodrží formát
RRMMDD/XXXXs validnou kontrolnou číslicou. - Avoid real emails. Používaj domény ako
example.sk,test.local. Ak potrebujete doručiteľnosť, Mailgun má sandbox doménu.
Schema-aware AI: inšpirácia z OpenAPI
Ak máte OpenAPI spec svojho backendu, AI môže vygenerovať fixtures pre každý endpoint automaticky:
> Pozri na api/openapi.yaml. Pre každý GET endpoint vygeneruj 1 fixture súbor v cypress/fixtures/api/ s realistickou odpoveďou podľa schémy. Použij sk locale, GDPR-safe dáta.
Claude prečíta YAML, pochopí schémy, vygeneruje konzistentné JSON odpovede. 20+ fixtures za 60 sekúnd.
Multi-tenant patterns
SaaS aplikácie potrebujú izolovať dáta medzi tenant-mi. Factory má byť tenant-aware:
export const orderFactory = {
buildForTenant(tenantId: string, overrides = {}) {
return {
id: `${tenantId}-${faker.string.uuid()}`,
tenantId,
// ... ostatné fields
...overrides,
};
},
};
Pri E2E teste, ktorý volá AI generátor, dajte vždy tenant kontext: „seeduj dáta pre tenant 'acme-corp' aby boli izolované od ostatných testov". AI to rešpektuje.
Praktický ROI
- Čas na napísanie seed súboru: z priemeru 45 min → 4 min.
- Konzistencia fixtures medzi testami: vyššia (AI dodržuje konvenciu).
- GDPR compliance: nedotýkame sa produkčných dát.
Chcete rovnaký prístup u vás? Napíšte nám — dohodneme 30-minútový discovery call.