Validace je proces hodnocení systému nebo jeho komponenty s cílem zjistit, zda splňuje zadané požadavky a zda jsou výsledky správné. V IT praxi se nejčastěji setkáváme se dvěma typy: validací dat (vstupů) a validací modelu (v umělé inteligenci).
Zatímco verifikace se ptá: „Stavíme produkt správně?“, validace se ptá: „Stavíme správný produkt?“ (tedy zda výsledek odpovídá potřebám uživatele).
V strojovém učení je validační sada dat „prostředníkem“ mezi trénovacími a testovacími daty.
Pokud máme málo dat, používá se technika K-fold cross-validation. Data se rozdělí na $k$ částí. Model se trénuje $k$-krát, přičemž pokaždé je jiná část použita jako validační a zbytek jako trénovací. Výsledná přesnost je pak průměrem všech pokusů.
Zajišťuje, že data vstupující do systému jsou logicky správná, bezpečná a v očekávaném formátu.
| Typ validace | Popis | Příklad |
|---|---|---|
| Datový typ | Kontrola, zda jde o číslo, text, datum. | Pole „Věk“ nesmí obsahovat písmena. |
| Rozsah (Range) | Ověření, zda je hodnota v povolených mezích. | Sleva nesmí být vyšší než 100 %. |
| Formát | Kontrola pomocí regulárních výrazů (Regex). | Ověření správného tvaru e-mailu nebo PSČ. |
| Konzistence | Porovnání s jinými daty v systému. | Datum odjezdu nesmí být dřívější než datum příjezdu. |
V moderních webových aplikacích probíhá validace na dvou úrovních:
Pravidlo „Never Trust User Input“: Základní programátorské pravidlo říká, že jakýkoliv vstup od uživatele nebo externího systému musí být považován za nepřátelský, dokud neprojde důkladnou validací.