Michal Jirka
Test Automation Engineer
Blog
Michal Jirka
Test Automation Engineer
V tomto článku se podíváme na problematiku automatizace testování softwaru. Ačkoliv se nejedná o žádnou převratnou novinku posledních měsíců, existuje stále mnoho týmů a projektů, které potřebují automatizaci nastartovat. Proto rozhodně není na škodu toto téma shrnout.
Začněme první a klíčovou otázkou, kterou si možná mnoho z vás klade: „Jaké výhody mi (mému týmu) automatizace testů přinese?“ Tyto benefity bych rozdělil do dvou kategorií:
Zde bych zmínil především ušetření času exekuce, zvyšování procenta pokrytí systému testy, eliminování lidských pochybení a samozřejmě finanční úspory. K těmto důvodům a výhodám zřejmě není třeba dodávat mnoho detailů. Jedná se o zcela jasné a logicky zdůvodnitelné faktory, které podobně definuje i samotná ISTQB.
Tyto výhody nazývám bonusové, protože ne každou z nich si člověk uvědomí hned „na první dobrou.“ Jako první bych zmínil, že automatizací můžeme pokrýt i testy, které manuálně provést nelze. Jedná se například o složitější performance testy, případně frontendové testy na různých typech zařízení (pokud nechci mít ve skříni desítky až stovky fyzických zařízení různých velikostí, či operačních systémů).
Z vlastní zkušenosti vím, že zavedení automatizace může pozitivně ovlivnit i náladu celého týmu. Členové týmu získávají více zkušeností, mají možnost uplatnit své kreativní myšlení a tým je také efektivnější. Může totiž věnovat část své práce i jiným aspektům vývoje softwaru, např. test analýze, byznys analýze, tvorbě dokumentace a dalším. Celková kvalita produktu tímhle „nenuceným“ způsobem roste. Zpravidla také kreativnější a zábavnější činnost přináší celkové zlepšení spokojenosti jednotlivých členů týmu.
Existuje jeden mýtus, který se s automatizací testování pojí. Budou manuální testeři zbaveni své práce? Dle mého názoru ne. Jejich náplň práce se pouze posune „o trochu dále.“ Namísto dlouhých hodin strávených exekuováním manuálních scénářů, budou moci nyní tento čas věnovat implementaci skriptů, udržování kódu, analýze výsledků automatizovaných testů a podobně. Navíc by se jim měly také uvolnit ruce pro celkové zlepšování testovacích procesů, jak už jsem zmiňoval v předchozích odstavcích.
Co je tedy klíčové pro úspěšné zavedení automatizace do provozu?
Zde si dovolím poznament, že kategorie Nelze může být již v příštím roce 2024 alespoň částečně pokryta AI technologiemi, kde opět očekáváme velký vzestup.
Jak už je zvykem, jedním z nejdůležitějších parametrů při rozhodování o automatizaci jsou samozřejmě finance. Náklady na automatizaci můžeme rozdělit do dvou kategorií.
S těmito položkami je nutné počítat v úplném začátku. Spadá sem investice do zvolených nástrojů, školení členů týmu, již zmíněné důležité konzultace s odborníky a také to může být třeba server, kde poběží CI/CD nástroj (Jenkins, Gitlab). Je třeba počítat s tím, že jednorázové náklady budou v počátečním období vyšší než náklady na manuální testing. To můžete vidět znázorněné v grafu níže.
Jak již bylo napsáno v předchozích odstavcích, automatizace bude vždy vyžadovat i určitou dávku manuální podpory. Jedná se o aktivity spojené s implementací nových skriptů (neboli pokrývání dalších částí SW testy), dále také údržbou skriptů stávajících a analýzou výsledků. Je třeba počítat s tím, že vždy po doběhnutí sady automatizovaných testů je třeba prozkoumat každý „FAIL“. Z toho typicky vedou 2 cesty – buď reportujeme defekt nebo vylepšujeme automatizovaný skript.
Zde přikládám orientační schéma, které popisuje vývoj finančních nákladů v čase:
Nyní bych chtěl zmínit pár slov o jedné ze základních metod, se kterou jsem se při zavádění automatizovaných testů setkal. Jedná se o tzv. metodu PoC. Spočívá v tom, že investujeme jednotky MDs do průzkumu. Během této doby zjišťujeme, jak dobře je (či není) automatizace aplikovatelná na tento konkrétní projekt. Snažíme se tzv. „prokopnout“ pár základních průchodů aplikací, v ideálním případě zautomatizovat nějaký „happy scénář“. Na základě těchto zjištění pak sestavíme vstupní analýzu, která by měla obsahovat návrh na použití nástrojů, časový/cenový odhad nákladů na automatizaci jednotlivých komponent systému a také doporučení, jak dále pokračovat. Důležité je uvědomit si, které části aplikace jsou pro byznys stěžejní, a kde nám automatizace přinese největší benefit. Zkuste najít určitou win-win situaci a tím začít – důležitá část systému, která lze poměrně rychle zautomatizovat. Na tom všem se dá následně dobře stavět.
Ze svého pohledu vnímám, že začátek s automatizací je v kariéře testera poměrně velkým milníkem. Přecejen náplň práce v porovnání s manuálním testingem je rozdílná. Myslím si ale, že posouvání vlastních dovedností je to, co nás v pracovní kariéře naplňuje. Práce automatizéra vám nabídne nový rozměr, kdy budete muset zapojit kreativitu, občas přicházet s inovativními řešeními a neustále se učit, učit a učit. Na druhou stranu určitě není třeba se bát, vždy vám určitě bude k dispozici zkušený mentor/konzultant, který vás bude trpělivě na této cestě provázet. Jako člověk se zkušeností v automatizaci budete daleko lépe uplatnitelný na trhu práce. Dnešní testing se výrazně posouvá do technického směru, pokud tedy chcete udržet krok, zkuste svou kariéru nakopnout tímto směrem. Odměnou vám může být i dobrý pocit, že odvedená práce opravdu dává smysl, a že celková kvalita produktu má díky Vám vzestupnou tendenci.
Kontaktujte nás a společně si domluvíme konzultaci.
O tom, jak začít automatizovat v testingu, jsem mluvil také v našem předešlém, úspěšném webináři, který spolu s mnoha dalšími videi ze světa testingu najdete na našem YouTube kanále: