Uživatelské akceptační testování
Uživatelské akceptační testování (zkráceně UAT, ) je poslední stupeň testování softwaru před jeho definitivním převzetím zákazníkem, tedy v podstatě přejímací zkouška softwaru. Probíhá již na zařízení zákazníka, který zpravidla uplatňuje své předpřipravené procedury s cílem objevit chyby softwaru; dodavatel je pak v dohodnuté lhůtě odstraňuje. Těmto procedurám se zpravidla říká akceptační testy a jejich příprava je odbornou činností, jejich provedení pak ale je přenecháno běžným uživatelům. Zpravidla ho totiž není možné provádět automaticky.

Akceptační testování je jedna z fází testování, ve které se ověřuje, zda systém přináší očekávané obchodní přínosy, když s ním pracují koncoví uživatelé.

Charakteristika 
Akceptační testy se provádí jako poslední fáze testování softwaru.

 fáze - unit testy
 fáze - integrační testy
 fáze - systémové testy
 fáze - akceptační testy

Základním principem akceptačního testování je odpověď na otázku, zda je software vhodný pro daný účel, pro který byl vytvořen. Neznamená to pouze náhodné nebo strukturované testování systému, ale zejména testování použití systému k umožnění obchodních procesů, které přinášejí přidanou hodnotu, s využitím realistických testovacích scénářů, dat a operací. UAT je ze všech druhů testování nejblíže k reálnému stavu. Je to test, který umožňuje racionálně posoudit, zda riskovat uvedení systému do provozu.

Účelem UAT je zajistit, aby systém vyhovoval jeho obchodním potřebám.

Alpha testování – celý proces alpha testování je prováděn vývojáři v klientském prostředí

Beta testování – zákazníci provádějí beta testování při vydání softwarového produktu

Testování obecně je důležitou fází životního cyklu vývoje softwaru (SDLC – Software Development Life Cycle). Testování softwaru zvyšuje jeho kvalitu a zlepšuje spolehlivost, použitelnost, efektivitu, udržovatelnost, funkčnost a přenositelnost. V mnoha projektech je 50 % celkových nákladů na software vynaloženo na testování softwaru.

Přestože je testování nákladné, mělo by se provádět v každé fázi životního cyklu vývoje softwaru kvůli měnícím se požadavkům uživatelů a opravě defektů.

Přínosy 
Mezi přínosy provádění UAT můžeme uvést:

 Řízení rizik – UAT pomáhá předcházet nákladným selháním systému
 Dosažení očekávaných obchodních přínosů
 Hodnocení správného nastavení podnikových procesů
 Posouzení připravenosti na nový systém

Náklady 
Mezi největší náklady pro provádění UAT patří:

 Náklady na odklonění pracovníků (koncových uživatelů) od jejich běžné práce, aby byli k dispozici k plánování a provádění UAT
 Náklady na školení týmu
 Náklady na testovací prostředí

Postup pro provedení UAT 

Postupy pro provedení UAT se mohou různit. Průběh může být následující:

 Na základě uživatelských požadavků je navržen plán testů a testovací případy.
 Zákazník schvaluje či doplňuje plán testů a testovací případy poskytnuté dodavatelem.
 Naplánování provedení UAT.
 UAT je prováděno obvykle v prostorách dodavatele za účasti zástupců zákazníka, kteří dohlíží, aby testovací prostředí a testování odpovídalo plánu testování a testovacím případům navržených pro UAT.
 Zaznamenání výsledků testů a případné řešení odhalených závad.
 Zástupce zákazníka potvrzuje, že softwarový produkt prošel UAT.

Na obrázku je zobrazen příklad procesního toku defektů.

Porovnání UAT s dalšími fázemi testování

Unit testy 
Testování jednotek lze chápat jako proces testování nejmenších testovatelných součástí softwaru – tzv. jednotek. Nejčastěji testování provádí sám programátor, který si ověří správnost své implementace.

Integrační testy 
Cílem integračního testování je nacházet chyby vzniklé propojením a následnou interakcí jednotlivých jednotek (tzv. modulů). Integrace probíhá tak, že do systému jsou postupně přidávány další moduly, které musí být jednotkově otestovány, a zároveň nesmí narušit stabilitu dosud fungujícího celku.

Systémové testy 
Systémové testy jsou používány až v pozdějších úrovních vývoje. Hlavním úkolem je ověření, zda systém splňuje požadavky zákazníka. Jde o poslední možnost nalézt a opravit chyby dřív, než by je objevil zákazník.

Typy testů použitelných pro UAT 
Pro UAT mohou být použity různé typy specializovaných testů, například:

 Regresní testy – zjišťují, jestli chyby odhalené v předcházejících testech byly opravdu opraveny a zda důsledkem provedených změn nebyly do softwaru zaneseny nové chyby.
 Přírůstkové testy – ověřují, zda nově přidaný modul nezpůsobuje chyby při integraci se stávajícími moduly.
 Smoke testy – zajišťují připravenost softwaru na hloubkové systémové testy
 Zátěžové testy – testování chování systému pod zátěží. Neklade se důraz na funkčnost nebo správnost systému, ale na jeho rychlost a stabilitu při nadstandardní interní zátěži.
 Stresové testy – jistým způsobem zátěžové testy, nicméně zde se testovaná aplikace zatěžuje nedostatečným hardwarem. Například testujeme se slabou operační pamětí a pomalým procesorem.
 Zotavovací testy – testují rychlost obnovení aplikace po pádu systému, hardwarové chybě, výpadku proudu nebo jiných podobných problémech.
 Bezpečnostní testy – slouží k zajištění celkové bezpečnosti softwaru. Zjišťují jak se systém chrání před neautorizovaným přístupem, jak jsou ukládána hesla, jak je řízen přístup apod. Slouží k nalezení nežádoucího kódu, bezpečnostních chyb, zranitelností.
 Výkonnostní testy – sleduje se výkon aplikace při velkém počtu různých požadavků. Tímto testováním lze vysledovat, které části systému je potřeba věnovat vyšší pozornost a provést v ní příslušné optimalizace.
 Testy použitelnosti – testuje se uživatelské rozhraní, zda je intuitivní, konzistentní, flexibilní, užitečné, a především pohodlné pro uživatele.
 Instalační testy – testování průběhu instalování nebo odinstalování aplikace na dané platformě.
 Testy kompatibility – kontrolují, zda testovaný software korektně spolupracuje a sdílí informace s jiným softwarem, hardwarem, operačním systémem nebo síťovým prostředím.
 Srovnávací testy – porovnávají stabilitu i slabiny s předešlými verzemi softwaru nebo s podobnými produkty.
 Dlouhodobé testy – tyto testy hledají chyby, které se zpravidla vyskytnou až po delší době používání aplikace.

Odkazy

Reference

Literatura 

 Bureš, Miroslav. Efektivní testování softwaru: klíčové otázky pro efektivitu testovacího procesu / Miroslav Bureš, Miroslav Renda, Michal Doležel, Peter Svoboda, Zdeněk Grössl, Martin Komárek, Ondřej Macek, Radoslav Mlynář. První vydání. Praha: Grada Publishing, 2016. 229 stran brožováno (Profesional [edice]) 
 Vrana, Ivan. Zásady a postupy zavádění podnikových informačních systémů: praktická příručka pro podnikové manažery / Ivan Vrana, Karel Richta. 1. vyd.. Praha: Grada Publishing, 2005. 187 s. váz. 
 Provozujte IT jinak - agilní a štíhlý provoz, podpora a údržba informačních systémů a IT služeb / Jaroslav Procházka, Cyril Klimeš. 1. vyd.. Praha: Grada Publishing, 2011. 288 s. brož. (Průvodce [edice]) ISBN 978-80-247-4137-6
 Svozilová, Alena. Projektový management: systémový přístup k řízení projektů / Alena Svozilová. 3., aktualizované a rozšířené vydání. Praha: Grada Publishing, 2016. 421 stran vázáno (Expert)

Související články 
 testování softwaru
 přejímací zkouška a akceptační kritérium
 testovací případ
 unit testing
 regresní testování

Testování softwaru