Menu

Akceptační testování, aneb Jak včas odhalit chyby na webu

Jak nevypustit do éteru webovou aplikaci, která uživatele odradí zbytečnými chybami? Jednou z možností je akceptační testování.

Akceptační testování, aneb Jak včas odhalit chyby na webu

Akceptační testování pomáhá ověřit kvalitu programu, která bývá klíčová pro jeho užívání. Umožňuje jasně definovat, co má vlastně aplikace umět a jaké jsou jednoznačné cíle uživatelů, kteří s ní pracují. Například při tvorbě e-shopu pomáhají zjistit, zda nemůže nastat problém při uskutečnění nákupu, přihlášení k uživatelskému účtu nebo třeba změně hesla. Vývojáři mohou díky akceptačním testům snáze nahlédnout na výsledný produkt z pohledu koncového uživatele.

Někdy se setkáte také s označením „black box testy” – jejich předmětem totiž není vlastní proces fungování produktu, ale pouze to, jak s ním pracuje uživatel. V článku se budu věnovat akceptačním testům pro softwarové produkty, jakými jsou webové aplikace, weby nebo e-shopy. Klíčem ke všemu jsou testovací scénáře.

Jak vypadá testovací scénář?

Pomocí testovacích scénářů se akceptační testy definují. Každý scénář obnáší stanovení cíle, kterého má uživatel dosáhnout, a sled akcí, které k tomu vedou. Proto se zde simulují pozdější kroky uživatele při používání aplikace. Pokud se kteroukoliv z uvažovaných akcí uživateli nepodaří provést, je test vyhodnocen jako neúspěšný.

Jako příklad si můžeme uvést scénář pro ověření, zda se uživatel dokáže přihlásit do webové aplikace. Jednoznačně stanovený cíl by tedy mohl znít: „Nepřihlášený registrovaný uživatel se do aplikace může přihlásit.” Jednotlivé akce v testovacím scénáři pak budou vypadat nějak takto:

  1. Uživatel zobrazí domovskou stránku.
  2. Uživatel klikne na tlačítko „Přihlásit se” v pravém horní rohu stránky.
  3. Uživatel vyplní svůj e-mail a heslo do zobrazeného formuláře pro přihlášení.
  4. Uživatel odešle formulář kliknutím na tlačítko „Odeslat”, které je umístěno pod formulářem.
  5. Uživatel klikne na odkaz „Můj profil” v pravém horním rohu stránky, čímž dojde k ověření úspěšného přihlášení.

Proč akceptační testy?

Jelikož se akceptační testy píší srozumitelně pro běžné uživatele, mohou se využívat při komunikaci mezi různými osobami ve vývojovém procesu. Klient ví, co by jeho aplikace měla umět, vývojáři poznávají, jaké další funkce aplikaci schází, a projektový manažer získává nástroj, o který se může opřít při komunikaci na obě strany.

Kromě definování cílů aplikace poslouží akceptační testy technické specifikaci webu, kde mohou nahradit zdlouhavé slovní popisy. Jednotlivé kroky testů jsou názornější a pro člověka, který se neorientuje ve vývojářské terminologii, mnohem snáze pochopitelné.

Velkou výhodou je, že pro vytvoření testovacího scénáře není potřeba znát nijak podrobně interní mechanismy testované aplikace. Proto zvládne tvorbu v podstatě každý, kdo má alespoň základní přehled o její funkcionalitě. Dá se tak ušetřit za část nákladů na tvorbu scénářů, jejichž příprava by jinak vyžadovala práci odborníka.

Náročnost sníží automatizace. Ne vždy se ale vyplatí

Právě na lidské zdroje může být manuální provádění akceptačních testů nákladné. V případě webových aplikací se proto nabízí možnost automatizace, kdy celý proces spustí jedno kliknutí. Bez další snahy testující osoby se dá nasimulovat pohyb myši, stisky kláves a tlačítek nebo přímo jednotlivé kroky scénáře. Automatizovat lze zavírání oken či záložek prohlížeče, zachycení snímků obrazovky i spouštění vlastního JavaScript kódu.

Nejpoužívanější pro tyto účely je v současnosti open-source nástroj Selenium pracující v prostředí prohlížečů, které uživatelé běžně sami používají. Podporu mají třeba Google Chrome, Mozilla Firefox, Safari nebo Microsoft Edge a také mnoho prohlížečů pro mobilní zařízení s Androidem nebo iOs.

U propracovaných testovacích scénářů je určitou nevýhodou časová náročnost při jejich vytváření. Další čas navíc zabere pracovníkům údržba v případě, že se aplikace změní. Automatizované testy může ovlivnit i změna HTML kódu, a pokud se HTML struktura webu mění často, mohou si neustálé opravy testů vyžádat nečekaně vysoké náklady. Žádný akceptační test navíc nepokryje veškeré situace, které při práci s aplikací mohou nastat, jelikož při psaní testu tvůrce uvažuje pouze nad dosud známými situacemi.

Je to vhodné i pro náš produkt?

Aby byly pokryty alespoň nejkritičtější funkce, měl by nějaké akceptační testy využívat každý on-line produkt. Pro projekty, které jsou malé nebo mají omezený časový či finanční rozpočet, ovšem není úplně vhodné využívat automatizaci. V těchto případech většinou stačí manuální testy. Automatizace také není vhodná, pokud produkt často mění uživatelská rozhraní. Následkem opakovaných změn HTML struktury totiž bývají další finanční výdaje na údržbu testů.

Zvážit, zda vynaložené náklady přinesou odpovídající přidanou hodnotu, byste tedy měli před každým použitím akceptačních testů. Pokud se pro ně rozhodnete, mohou vám ve většině případů ušetřit hodně problémů. Pomohou vám získat důležité informace o vlastnostech a fukčnosti aplikace a předávat je dál vašim klientům.

Jestliže produkt projde testováním, vyvolává v koncovém zákazníkovi větší důvěru. Člověk pak ví, že kupuje něco, co splňuje určitá kritéria. Sám zhotovitel tímto způsobem získává určitý důkaz, že je jeho tvorba dostatečně kvalitní. Nejen při využití automatizace vám tak testování dává do rukou mocný nástroj, který vám může pomoct obstát před konkurencí.

Jakub Štefan 22.05.2018