Lucie Lavičková
Senior Test Automation Engineer
Blog
Lucie Lavičková
Senior Test Automation Engineer
DevOps a Continuous Integration se spolu s Agile stávají standardem IT odvětví . Mnohým firmám se CI/CD Pipelines podařilo začlenit do cyklu vývoje softwaru a vývojáři si bez nich snad už ani neumí svou práci představit. Jak to ale funguje ve světě testingu? Na to si posvítíme na následujících řádcích. Seznámíme se s tématem a postupně představíme hlavní přínosy Continuous testingu, mezi které patří:
Vzrůstající potřeba rychlé zpětné vazby tlačí na testery, aby čím dál více svých testů automatizovali. A když už jsou testovací skripty automatizované, je vhodné jejich potenciál využít maximálně. Už je nestačí spouštět jen lokálně na svém počítači a výsledky posílat nadřízeným e-mailem. Výsledky testů musí být dostupné všem a hlavně rychle! Ale jak toho dosáhnout? Odpověď přináší přístup zvaný Continuous testing.
Díky začlenění Continuous testingu do CI/CD Pipeline, lze testy automaticky spustit po každém sestavení aplikace. Následně je tak možné ihned ověřit, že spolu s provedenými změnami kódu nevznikly chyby nové. Pokud tedy náhodou vznikne chyba, test by ji měl odhalit co nejrychleji po sestavení aplikace. Okamžitě tím můžeme zjistit, jaká změna kódu chybu způsobila a opravení chyby je tak rychlejší a bezpečnější.
Hlavní myšlenkou Continuous testingu je začlenění automatizovaných testů do CI/CD Pipeline testovaného softwaru.
Hlavní výhodou Continuous testingu je zrychlení celého procesu dodávky softwaru. Testing tak zde není úzkým hrdlem na cestě k releasu, protože je kontinuálně začleněn do celého procesu vývoje softwaru. Exekuce regresních testů, která je časově nejnáročnější, je díky tomu přenechána automatizovaným skriptům. Manuální testování je tedy zredukováno na únosnou mez a testeři se mohou věnovat především vysoce efektivnímu Exploratory testingu a testování uživatelské přívětivosti.
Celkový čas potřebný k otestování aplikace před releasem, je díky Continuous testingu mnohonásobně kratší, než v případě čistě manuálního testování.
Další nespornou výhodou Continuous testingu je snížení rizika chyb v cílovém prostředí. Díky tomuto přístupu jsou kritické chyby v aplikaci odstraněny rychle, respektive vůbec nevznikají. Pokud totiž test integrovaný do CI/CD Pipeline skončí chybou, zastaví se celý proces nasazení aplikace. Zabrání se tak tomu, aby se kód s chybou dostal na testovací, nebo dokonce produkční prostředí. Tato informace je navíc okamžitě dostupná všem. Kdokoli z týmu má tak aktuální informace o momentálním stavu aplikace a může na základě toho činit rozhodnutí o dalším postupu. Testovaný systém je tedy stabilní, spolehlivý a přináší kýženou byznysovou hodnotu.
Díky Continuous testingu jsou kritické chyby v aplikaci odstraněny rychle, respektive vůbec nevznikají.
Agilní způsob vývoje klade důraz na týmovou spolupráci a nejinak je tomu v Continuous testingu. Na automatizovaných testech by testeři měli pracovat spolu s vývojáři, protože z nich profitují obě strany. Testerům automatizované skripty ulehčují od nezáživného regresního testování. Naopak vývojářům poskytují rychlou zpětnou vazbu o funkčnosti aplikace.
Vytváření automatizovaných testů není nic jiného, než programování. Rozdíly mezi testerem a vývojářem se tak čím dál více stírají, což je dle filosofie Agile jen a jen správně. Všichni členové týmu jsou tedy rovnocennými partnery a mají společný cíl – fungující software, který zákazníkovi přináší hodnotu.
V Continuous testingu, stejně jako v Agile, by testeři měli pracovat spolu s vývojáři na automatizovaných testech, protože z nich profitují obě strany.
Automatizované testy, začleněné do cyklu vývoje softwaru v rámci Continuous testingu, vývojářům dokážou poskytnout informaci o stavu aplikace ve velmi krátkém čase. Vývojáři si tak mohou dovolit experimentovat a zjednodušovat kód, aniž by negativně ovlivnili funkčnost celého systému. Výsledkem je optimalizovaný a přehledný kód, který se snadno udržuje. Také samotný vývoj nové funkcionality je mnohem rychlejší a snazší. Aplikace má tedy díky rychlejšímu vývoji kratší odezvu na nové požadavky zákazníka a poskytuje tím konkurenční výhodu.
Díky Continuous testingu mohou vývojáři optimalizovat a zefektivňovat svůj kód, aniž by negativně ovlivnili funkčnost celého systému.
Continuous testing je moderní a vysoce efektivní způsob, jak zvládnout proces testování v prostředí agilního vývoje softwaru.
Poskytuje řešení častých problémů, jako pomalý a netransparentní testovací proces, nefungující vývojový tým a zoufalá kvalita kódu.
Skvěle doplňuje Agile a DevOps metodologie. Spolu tak vytvářejí efektivní prostředí pro moderní a fungující proces vývoje softwaru a dokáží tím naplnit potřeby zákazníků a uživatelů.