Uživatelské akceptační testování
Uživatelské akceptační testování (zkráceně UAT, anglicky user 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.
- 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.[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í
Beta testování – zákazníci provádějí beta testování při vydání softwarového produktu[5]
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
- 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[8]
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í[8]
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.[9]
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.[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]
Unit testy | Integrační testy | Systémové testy | Akceptační testy | |
Cíle testování | Kontrola funkce, stavu každé jednotky. Test struktury dat a hodnot. | Test sestavených jednotek, testují se všechny moduly rozhraní. | Test funkčních a nefunkčních vlastností celého systému. | Demonstrační test, který hodnotí připravenost systému k použití. Test hlavních funkcí a rozhraní. |
Kritéria testování | Softwarová jednotka neobsahuje žádné defekty. | Softwarové jednotky bez defektů, software splňuje specifikované požadavky. | Rozsah softwaru odpovídá stanoveným požadavkům. | Rozsah softwaru odpovídá stanoveným požadavkům. Software splňuje očekávání uživatele. |
Strategie testování | White-box a black-box strategie. | Integrace modulů různými strategiemi. | Black-box strategie. | Black-box strategie. |
Testovací podmínky | Designový dokument. | Specifikace funkčních požadavků. | Specifikace systémových a funkčních požadavků. | Uživatelské požadavky, provozní postupy, manuál kvality. |
Testovací nástroje a prostředí | Nástroje pro kontrolu kódu, dokumentační nástroje, generátor testů. | Testovací generátor, simulátor, dokumentační nástroj. | Generátor testů, knihovna testů, simulátor, nástroj pro zátěžové testy, dokumentační nástroj; test na simulačním prostředí. | Dokumentační nástroj, test na provozní platformě. |
Zodpovědnost za testování | Vývojář. | Vývojář nebo testovací tým. | Testovací tým. | Uživatel. |
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.[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.
- Hambling, Brian Van Goethem, Pauline. (2013). User Acceptance Testing – A Step-by-Step Guide – The Costs and Benefits of UAT. BCS The Chartered Institute for IT. Retrieved from https://app.knovel.com/hotlink/pdf/id:kt00C4LNU4/user-acceptance-testing/costs-benefits-uat
- 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
- Hambling, Brian Van Goethem, Pauline. (2013). User Acceptance Testing – A Step-by-Step Guide – The Costs and Benefits of UAT. BCS The Chartered Institute for IT. Retrieved from https://app.knovel.com/hotlink/pdf/id:kt00C4LNU4/user-acceptance-testing/costs-benefits-uat
- Chemuturi, Murali. (2011). Mastering Software Quality Assurance – Best Practices, Tools and Techniques for Software Developers - 6.11.4 User Acceptance Testing. J. Ross Publishing, Inc. Retrieved from https://app.knovel.com/hotlink/pdf/id:kt00U47EQ1/mastering-software-quality/user-acceptance-testing
- BURDA, 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.
- (1997). Leung, H.K., Wong, P.W. A study of user acceptance tests. Software Quality Journal 6, 137–149 (1997) https://doi.org/10.1023/A:1018503800709
- 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]) ISBN 9788024755946
- 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. ISBN 8024711036
- 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 9788024741376
- 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) ISBN 9788027100750