Uživatelské akceptační testování (zkráceně UAT, anglickyuser acceptance testing) 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.[1] 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.[2] Zpravidla ho totiž není možné provádět automaticky.[3]
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.
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.[4]
Úč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í
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.[6]
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ů.[7]
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
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.
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.[10]
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.[10]
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.[10]
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.
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.[12]
Odkazy
Reference
↑HLAVA, Tomáš. Fáze a úrovně provádění testů [online]. testovanisoftwaru.cz. Dostupné online.
↑ŠTRBÁK, Martin. Jak psát srozumitelné testovací případy pro akceptační testy [online]. Blog o testování, 2011-04-11. Dostupné online.
↑DEDÍK, Václav. Testování software [PDF]. [cit. 2015-08-26]. S. 3. Zápočtový dokument pro obor Fakulty informatiky MU Brno. Dostupné v archivu pořízeném dne 2015-09-24.
↑K. V. Jeeva Padmini, I. Perera and H. M. N. Dilum Bandara, "Applying agile practices to avoid chaos in User Acceptance Testing: A case study," 2016 Moratuwa Engineering Research Conference (MERCon), 2016, pp. 96-101, doi: 10.1109/MERCon.2016.7480122
↑A. Pandey and S. Banerjee, “Search based software testing: An emerging approach for automating the software testing phase of SDLC,” in Proc. ICRCWIP, 2015
↑Z. He, C. Liu, and H. Yan, “Software testing evolution process model and growth of software testing quality,” Science China Information Sciences, vol. 58, no. 3, 2015, doi: 10.1007/s11432-015-5284-z
↑ abcBURDA, Tomáš. Testování softwaru [online]. Hradec Králové, 2017 [cit. 2021-12-04]. Dostupné z: https://theses.cz/id/dsbtq2/. Bakalářská práce. Univerzita Hradec Králové, Fakulta informatiky a managementu. Vedoucí práce doc. RNDr. Petra Poulová, Ph.D.
↑SCHWAGER, Michal. Automatizace funkčních testů (HP QuickTest Professional) [online]. Brno, 2010 [cit. 2021-12-04]. Available from: https://is.muni.cz/th/j1vi0/. Master's thesis. Masaryk University, Faculty of Informatics. Thesis supervisor Václav MATYÁŠ.
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]) ISBN9788024755946
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. ISBN8024711036
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) ISBN9788027100750