Blog

Lucie Lavičková

Lucie Lavičková

Senior Test Automation Engineer

4 důvody, proč začít s Continuous testingem

Vzdělávání Přístupy k testování
Přečtěte si, proč Continuous testing představuje způsob, jak se vypořádat s dopadem lidských chyb na testování a jak zrychlit zpětnou vazbu testů k vývojářům, manažerům a všem dalším kolegům na projektu.

DevOpsContinuous 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ří:

  • Zrychlení vývojového procesu
  • Snížení rizika chyb
  • Zlepšení týmové spolupráce
  • Vyšší kvalita kódu

Continuous integration v testingu

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.

Zrychlení vývojového procesu

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 testingutestová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í.

Snížení rizika chyb 

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í.

Týmová spolupráce

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.

Vyšší kvalita kódu 

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.

Shrnutí 

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 AgileDevOps 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ů.