Acceptance testing & UAT testing

V tomto článku sa dozvieš, čo je acceptance testing a UAT testovanie, aké sú jeho výhody a nevýhody, aké typy poznáme a aké tipy pomôžu efektívnejšiemu UAT procesu.

Akceptačné testovanie – definícia (acceptance testing – definition)

Akceptačné testovanie je proces zabezpečenia kvality (QA), ktorý určuje, do akej miery aplikácia spĺňa požiadavky koncových používateľov. Ide o proces testovania čiernej skrinky (black box testing). Akceptačné testovanie umožňuje zapojiť koncových používateľov do procesu testovania a zhromažďovať ich spätnú väzbu.

Tím QA vykonáva akceptačné testy s cieľom zabezpečiť, aby softvér alebo aplikácia zodpovedali obchodným požiadavkám a potrebám koncových používateľov. Výsledok akceptačného testu je buď kladný, alebo záporný (pass/fail). Neúspešný výsledok naznačuje, že je prítomná chyba a softvér by sa nemal dostať do produkcie.

Význam akceptačného testovania

Význam akceptačného testovania

ZDROJ: guru99.com/user-acceptance-testing.html

Význam akceptačného testovania je obrovský a ak testovací tím akceptačné testovanie vynechá, je pravdepodobné, že softvér nebude v súlade s pôvodnými požiadavkami. Po úspešnom ukončení testovania systému v rámci SDLC musia testeri vykonať akceptačný test:

  • Aby sa uistili, že softvér funguje požadovaným spôsobom.
  • Aby potvrdili, že softvér zodpovedá súčasným trhovým štandardom a konkuruje podobným produktom v odvetví.
  • Aby získali dôveru v softvér, ktorý sa nasadí do produkcie.
  • Aby našli chyby, ktoré boli vynechané počas fázy funkčného testovania.
  • Aby minimalizovali alebo odstránili problémy vznikajúce pri výrobe produktu.

Akceptačné testovanie zahŕňa tieto fázy: plánovanie, testovanie, záznam, porovnanie a výsledok.

Po napísaní testu podľa plánu koncoví používatelia interagujú so softvérom, aby posúdili jeho použiteľnosť. Softvér by mal spĺňať očakávania, ktoré definoval objednávateľ v požiadavkách. Keď testy prinesú výsledky, IT oddelenie by malo nahlásiť a opraviť všetky nedostatky, ktoré sa objavia. Ak výsledky zodpovedajú akceptačným kritériám pre každý testovací prípad, test prebehne úspešne. Ak však testovacie prípady prekročia neprijateľnú hranicu, zlyhajú.

Výhody akceptačného testovania

  • Prináša dôveru a spokojnosť klientom, pretože sú priamo zapojení do procesu testovania.
  • Používatelia môžu ľahšie opísať svoje požiadavky.
  • Informácie získané prostredníctvom akceptačného testovania využívajú zainteresované strany na lepšie pochopenie požiadaviek cieľovej skupiny.

Nevýhody akceptačného testovania

  • Používatelia by mali mať aspoň základné znalosti o produkte alebo aplikácii.
  • Spätná väzba na testovanie trvá dlho, pretože sa na ňom zúčastňuje veľa používateľov a názory jednotlivých používateľov sa môžu líšiť.

Typy akceptačného testovania (acceptance testing types)

  • Akceptačné testovanie používateľov (UAT – User Acceptance Testing definition): Používateľské akceptačné testovanie sa používa na zistenie, či produkt funguje pre používateľa správne. Na účely testovania sa vyberajú predovšetkým špecifické požiadavky, ktoré zákazníci pomerne často používajú. Označuje sa aj ako testovanie koncového používateľa.
  • Obchodné akceptačné testovanie (BAT – Business Acceptance Testing definition): BAT sa používa na určenie, či produkt spĺňa obchodné ciele. BAT sa zameriava najmä na obchodné zisky, ktoré sú pomerne náročné vzhľadom na meniace sa podmienky na trhu a nové technológie, takže súčasnú implementáciu môže byť potrebné zmeniť, čo má za následok dodatočné výdavky.
  • Akceptačné testovanie zmluvy (CAT – Contract Acceptance Testing): CAT je zmluva, ktorá stanovuje, že po uvedení produktu do prevádzky sa musí vo vopred stanovenej lehote vykonať akceptačný test, ktorý by mal vyhovieť všetkým akceptačným prípadom použitia. Tu je zmluva označovaná ako dohoda o úrovni služieb (SLA), ktorá obsahuje podmienky, v ktorých sa platba uskutoční len vtedy, ak sú služby produktu v súlade so všetkými požiadavkami.
  • Predpisy preberacieho testovania (RAT – Regulations Acceptance Testing ): RAT sa používa na určenie, či produkt neporušuje pravidlá a predpisy, ktoré definuje vláda krajiny, v ktorej sa nasadzuje. Môže to byť neúmyselné, ale bude to mať negatívny vplyv na podnikanie. Všeobecne platí, že výrobok alebo aplikácia, ktorá sa má uviesť na trh, musí prejsť testom RAT, pretože rôzne krajiny alebo regióny majú rôzne pravidlá a predpisy definované ich riadiacimi orgánmi.
  • Prevádzkové akceptačné testovanie (OAT – Operational Acceptance Testing): OAT sa používa na určenie prevádzkovej pripravenosti výrobku a je to nefunkčné testovanie. Zahŕňa najmä testovanie obnovy, kompatibility, udržateľnosti, spoľahlivosti atď. OAT zabezpečuje stabilitu produktu pred jeho nasadením do produkcie.
  • Alfa testovanie: Alfa testovanie sa používa na určenie produktu vo vývojovom testovacom prostredí špecializovaným tímom testerov, ktorí sa zvyčajne nazývajú alfa testeri.
  • Beta testovanie: Beta testovanie sa používa na posúdenie produktu jeho vystavením skutočným koncovým používateľom, zvyčajne nazývaným beta testeri, v ich prostredí. Od používateľov sa získava spätná väzba a odstraňujú sa chyby.

Proces akceptačného testovania (acceptance testing process)

Proces akceptačného testovania je rozdelený do piatich etáp:

  • analýza požiadaviek,
  • vytvorenie plánu testovania,
  • návrh testovacieho prípadu,
  • vykonanie testu,
  • potvrdenie cieľa.

Proces akceptačného testovania

  1. Analýza požiadaviek

Počas tejto fázy testovací tím najprv analyzuje dokument s požiadavkami, a potom na základe týchto požiadaviek určí ciele vyvíjaného softvéru. Používajú sa dokumenty požiadaviek, vývojové diagramy a prípady použitia v podnikaní.

  1. Vytvorenie plánu testovania

Plánovanie testov načrtáva celú stratégiu akceptačného testovania. Táto stratégia zabezpečuje a overuje, či softvér spĺňa špecifikované požiadavky, ciele, harmonogram, odhady, termíny a zdroje potrebné na úspešné dokončenie projektu.

  1. Návrh testovacích prípadov

Počas tejto fázy sa navrhujú testovacie prípady, ktoré pokrývajú väčšinu scenárov na základe dokumentu plánu testovania.

  1. Vykonávanie testovacích prípadov

Počas tejto fázy sa realizujú všetky akceptačné testovacie prípady so vstupnými hodnotami. Tester zhromažďuje a vykonáva všetky vstupné hodnoty používateľa, aby sa uistil, že softvér v scenároch funguje správne.

  1. Potvrdenie cieľov

Po vykonaní všetkých predchádzajúcich krokov testovací tím potvrdí, že softvér neobsahuje chyby alebo nedostatky a je pripravený na odovzdanie klientovi.

UAT v softvérovom testovaní (UAT in software testing)

Používateľské akceptačné testovanie (UAT), ktoré sa vykonáva pri väčšine projektov UIT, niekedy nazývané beta testovanie alebo testovanie koncovým používateľom, je fáza vývoja softvéru, v ktorej je softvér testovaný v „reálnom svete“ určeným publikom alebo obchodným zástupcom. Tento typ testovania nemá byť menu-driven (využíva štruktúrované rozhranie založené na menu na sprevádzanie používateľov procesom testovania), ale majú ho skôr vykonávať obchodní používatelia, aby sa overilo, že aplikácia bude spĺňať potreby koncového používateľa, pričom scenáre a údaje reprezentujú skutočné používanie v praxi.

UAT –  definícia (UAT – definition)

Používateľské akceptačné testovanie (UAT – user acceptance testing), nazývané aj testovanie aplikácie alebo testovanie koncovým používateľom, je fáza vývoja softvéru, v ktorej je softvér testovaný v reálnom svete jeho cieľovou skupinou. UAT je často poslednou fázou procesu testovania softvéru a vykonáva sa pred releasnutím testovaného softvéru do produkcie. Cieľom UAT je zabezpečiť, aby softvér zvládal úlohy v reálnom svete a fungoval podľa špecifikácií.

V rámci UAT majú používatelia možnosť komunikovať so softvérom pred jeho oficiálnym releasom, aby zistili, či neboli prehliadnuté nejaké požadované  funkcie alebo či neobsahuje nejaké chyby. UAT sa môže vykonávať interne, platenými testovacími subjektmi alebo sprístupnením testovacej verzie na stiahnutie pre kohokoľvek. Feedback od testerov sa následne posunie vývojárom, ktorí vykonajú konečné zmeny pred záverečným releasnutím softvéru.

UAT význam (UAT meaning)

Významom užívateľského akceptačného testovania (UAT) je, že overuje dva kritické aspekty:

  • Požiadavky používateľov. Spĺňa aplikácia očakávania používateľov? Je jej navigácia a používanie jednoduché?
  • Obchodné požiadavky. Dokáže aplikácia efektívne a účinne spracovať skutočné prípady použitia (use cases)?

Inými slovami, softvér by mal používateľom pomáhať vykonávať reálne úlohy bez prekážok. Overenie týchto požiadaviek zvyčajne prichádza vo forme podpisu alebo schválenia zainteresovanými stranami („akceptačné kritériá“).

Vstupné kritériá UAT testov (entry acceptance testing criteria)

Nižšie sú uvedené podmienky, ktoré musia byť splnené pred spustením UAT testovania:

  • Obchodné požiadavky by mali byť jasné a dostupné.
  • Fáza systémového a regresného testovania by mala byť ukončená.
  • Všetky kritické, hlavné a menej závažné chyby by mali byť opravené a uzavreté (akceptované menej závažné chyby sú najmä kozmetické chyby, ktoré nenarušujú používanie produktu).
  • Mal by sa vytvoriť zoznam známych problémov a rozoslať zainteresovaným stranám.
  • Fáza testovania systému by mala byť ukončená, čím sa umožní prechod produktu do fázy AT (zvyčajne sa vykonáva prostredníctvom e-mailovej komunikácie).

Výstupné kritériá UAT testov (exit acceptance criteria)

Existujú určité podmienky, ktoré musí AT splniť, aby sa produkt mohol pustiť do produkcie.

Sú to tieto podmienky:

  • Mali by sa vykonať akceptačné testy a všetky testy by mali byť úspešné.
  • Žiadne kritické/významné chyby nesmú zostať otvorené. Všetky chyby by mali byť okamžite odstránené a overené.
  • AT by mal byť podpísaný všetkými zúčastnenými stranami s rozhodnutím o schválení/neschválení produktu.

UAT test – príklad (UAT test – example)

Internetový predajca spúšťa novú mobilnú aplikáciu, ktorá umožňuje ľuďom objednávať produkty z ich mobilných zariadení. Spoločnosť zadala vývoj aplikácie vývojárskej spoločnosti, ktorá sa špecializuje na tento typ aplikácie na mobilných zariadeniach.

Testeri, ktorí pracujú pre predajcu, budú vykonávať akceptačné testovanie používateľov. Testeri definovali najbežnejšie scenáre a tiež alternatívne a výnimočné scenáre. Taktiež boli definované rôzne profily používateľov spolu s rôznymi typmi objednávok.

Príklady testovacích scenárov zahŕňajú:

  • Nový zákazník si objedná produkty v hodnote nižšej ako 20€ v rámci jednej objednávky (malá objednávka, bez dopravy zdarma).
  • Existujúci zákazník objedná za menej ako 20€ výrobkov v jednej objednávke (malá objednávka, bez dopravy zdarma).
  • Nový zákazník objedná za viac ako 20€, ale menej ako 50€ výrobkov v jednej objednávke (stredná objednávka, bez dopravy zdarma).
  • Existujúci zákazník objedná za viac ako 20€, ale menej ako 50€ výrobkov v jednej objednávke (Stredná objednávka, bez dopravy zdarma).
  • Nový zákazník objedná za viac ako 50€ v jednej objednávke (veľká objednávka, s dopravou zdarma).
  • Existujúci zákazník objedná za viac ako 50€ v jednej objednávke (veľká objednávka, s dopravou zdarma).

Plán akceptačných testov – atribúty

Nižšie sú uvedené niektoré z kľúčových atribútov ATP:

  • Úvod: V tejto časti sa uvádza prehľad projektu, testovaného softvéru a účel.
  • Kategória akceptačného testu: V tejto časti sa uvádzajú typy akceptačného testovania, ktoré sa vykonajú, ako napríklad používateľské akceptačné testovanie, systémové akceptačné testovanie a integračné testovanie.
  • Prevádzkové prostredie: V tejto časti sa opisuje hardvérové a softvérové prostredie, v ktorom sa bude vykonávať akceptačné testovanie.
  • ID testovacieho prípadu: Toto je rozlišovací identifikátor pre každý testovací prípad.
  • Názov testu: Toto je stručný opis testovacieho prípadu.
  • Cieľ testu: Táto časť opisuje, čo má testovací prípad overiť.
  • Postup testu: Táto časť opisuje kroky pri vykonávaní testovacieho prípadu.
  • Plán testovania: Táto časť špecifikuje dátumy a časy, kedy sa budú testovacie prípady vykonávať.
  • Zdroje: V tejto časti sa uvádzajú zdroje potrebné na vykonanie akceptačného testovania, ako napríklad ľudské zdroje, vybavenie a softvér.

Osvedčené postupy používateľského akceptačného testovania (user acceptance testing best practices)

Identifikuj svoje publikum – Predtým, ako začneš s používateľským testovaním, je dôležité najprv identifikovať typ používateľov, ktorí budú používať tvoj/váš produkt alebo službu. To sa dá dosiahnuť vykonaním prieskumu tvojho cieľového trhu a následným vytvorením dotazníka, ktorý ti pomôže pochopiť, aké typy používateľov v súčasnosti používajú podobné produkty alebo služby. Keď budeš mať tieto informácie, ľahko vytvoríš scenáre akceptačných testov na základe toho, aké typy používateľov by si chcel vidieť.

Navrhni akceptačné testy – Keď si identifikoval cieľových používateľov a navrhol scenáre akceptačných testov, je čas začať ich testovať! Najlepší spôsob, ako to urobiť, je použiť kontrolované                                       prostredie, v ktorom môžeš presne zmerať, ako rôzne skupiny používateľov interagujú s tvojim produktom alebo službou. To ti pomôže identifikovať všetky problémy, ktoré sa môžu vyskytnúť počas bežného používania a poskytne ti to informácie potrebné na ich odstránenie.

Monitoruj svoje akceptačné testy – Po dokončení akceptačných testov je dôležité sledovať a kontrolovať ich výsledky, aby si mohol vykonať potrebné zmeny.

Používaj správny nástroj – Ak chceš dosiahnuť efektívne výsledky akceptačného testovania, použi správny súbor nástrojov, ktoré uľahčia tvoj existujúci pracovný postup a celý proces.

Priprav prostredie na testovanie – Spusti testy v bezpečnom prostredí. Staging je dokonalá kópia tvojej produkcie, ideálne ihrisko na hranie pre alfa a beta testerov.

Priprav návrh testovacích prípadov – Pri rozsiahlom a beta testovaní navrhni testovacie prípady, ktoré budú všetci používatelia sledovať a hlásiť. Spomeň aspoň kroky testovania prípadov a očakávané výsledky.

Udržuj pripravené normy a protokoly – Je vhodné uviesť zoznam pravidiel, predpisov a súladov a mať pripravené ich príslušné akceptačné kritériá. Môžeš ich tiež zdieľať so skupinou používateľov pre akceptačné testovanie, aby mali jasnejšiu predstavu o akceptačných kritériách.

Kvality testerov UAT

Tester UAT by mal mať dobré znalosti o podnikaní. Mal by byť nezávislý a myslieť ako neznámy používateľ systému. Tester by mal mať analytické a otvorené myslenie a kombinovať všetky druhy údajov, aby bol UAT úspešný.

Nástroje používané pri akceptačnom testovaní (acceptance testing tools)

1. Testsigma

Testsigma je nástroj na automatizáciu akceptačných testov. Niektoré funkcie, vďaka ktorým je ideálny pre na automatizáciu testovania, sú tieto:

  • Je to nástroj na automatizáciu testov bez kódu, písanie testov je teda ako ich písanie v jednoduchej angličtine. Nemusíš byť expertom programovanie.
  • S automatizáciou testov začneš v priebehu niekoľkých minút.
  • Testsigma ti umožňuje automatizovať testy pre web, mobilné zariadenia, počítače a API z jedného miesta.
  • Testovacie prípady sa dajú aj veľmi jednoducho upravovať

2. Cucumber

Cucumber je framework, ktorý využíva prístup Behavior-Driven Development (BDD). Umožňuje testerom písať testovacie prípady vo formáte prirodzeného jazyka, čo uľahčuje ich pochopenie a údržbu.

Cucumber podporuje viacero programovacích jazykov vrátane Java, JavaScript, Python a Ruby.

3. Selenium WebDriver

Selenium WebDriver je výkonný  framework pre akceptačné testovanie aplikácií. Poskytuje platformu na automatizáciu interakcií s prehliadačom a overovanie správania aplikácie na základe definovaných akceptačných kritérií.

Selenium WebDriver podporuje viacero programovacích jazykov, ako sú Java, Python, C# a ďalšie, vďaka čomu je univerzálny a prispôsobiteľný rôznym projektom.

4. SpecFlow

Ide o ďalší populárny framework akceptačného testovania, ktorý využíva prístup BDD. Je podobný ako Cucumber, ale je špeciálne navrhnutý pre vývoj v prostredí .NET. SpecFlow podporuje viacero programovacích jazykov vrátane C#, F#, Visual Basic a .NET.

5. Robot Framework

Tento všeobecný framework akceptačného testovania sa dá použiť na testovanie akejkoľvek softvérovej aplikácie. Je to framework riadený kľúčovými slovami, čo znamená, že testovacie prípady používajú kľúčové slová špecifické pre testovanú aplikáciu. Robot Framework podporuje viacero programovacích jazykov vrátane jazykov Python, Java a JavaScript.

Bežné chyby, ktorým sa snaž vyhnúť

  • Nesprávni používatelia: Musíš si vybrať správnych účastníkov UAT. Stojí za to venovať čas hľadaniu vhodných testerov. Najlepšie by bolo vyhnúť sa používateľom, ktorí nemajú záujem o tvoju aplikáciu.
  • Nedostatočné plánovanie testovania: Poskytni používateľom usmernenia, aby bola aplikácia dôkladne otestovaná.
  • Nedostatok údajov: Musíš čo najviac podporiť účastníkov testovania. Umožni im používať živé údaje, aby si z akceptačných testov používateľov vyťažil čo najviac. Zabezpečíš tak, aby sa skúsenosti čo najviac približovali používaniu živého produktu.
  • Vyhýbanie sa negatívnym výsledkom: Testy sú často navrhnuté tak, aby hľadali pozitívne výsledky. Zváž zahrnutie prostredí, v ktorých produkt pravdepodobne zlyhá, aby si získal realistickejšiu spätnú väzbu.

Záver

Akceptačné testy sú neoddeliteľnou súčasťou vývoja riadeného správaním a hlavným nástrojom, ktorý máme k dispozícii na zabezpečenie splnenia našich obchodných cieľov. Kľúčom k akceptačnému testovaniu je dôverovať výsledkom všetkých už vykonaných testov softvéru, zamerať sa na testovanie nevyhnutného minima a opustiť predstavu, že ide o poslednú líniu obrany.

Ak vieš po nemecky a si IT tester, pozri si naše firemné benefity a reaguj na voľné pracovné miesta.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť