Efektivní automatizované testy na platformě Selenium

Termíny:

Na vyžádání

Cena: 13.900 Kč 

Cíl školení:

Funguje automatizace testů založená na front-endovém rozhraní testované aplikace? Ano, pokud takové testy vhodně navrhneme a implementujeme, fungují velmi dobře. Na tomto školení si ukážeme jak na to.
Pokud se zeptáte kolegů, kteří mají předchozí zkušenost s automatizací testů „jaké jsou největší problémy této technologie“, odpověď bude velmi pravděpodobně „údržba“. Skutečně, je to tak. Nejvíce se potýkáme se změnami testované aplikace, které způsobí, že naše skripty přestanou být aktuální. Takové změny jsou přirozenou součástí vývoje softwaru, pro vývojáře testů ale představují problém: způsobují režii spojenou s údržbou testů. A tato režie, pokud je velká, může občas vést i k neúspěchu automatizace testování pro daný projekt.
Pokud automatizované testy vytváříme naivním způsobem, tato režie bude velká. Potřebujeme se naučit, jak ji snížit a proto, jakmile se na tomto kurzu naučíme základy, brzy přejdeme k pokročilejšímu strukturování testů. Spolu s tím se naučíme řadu postupů, pomocí kterých se dá tato režie snížit. Kombinací všech těchto postupů dohromady se naučíme psát dobře strukturovaný a ekonomicky efektivní kód, který výrazně přispěje k úspěchu automatizace vašich testů.
Na tomto kurzu budeme používat platformu Selenium WebDriver, spolehlivé open-source řešení pro automatizované testy. Kromě konceptů a postupů pro strukturování testů se samozřejmě také naučíme WebDriver API a vhodné postupy, jak zkombinovat WebDriver s frameworkem JUnit pro spouštění testů.
To vše se naučíme pomocí interaktivních praktických příkladů: účastníci kurzu budou programovat vlastní kód testů pomocí předpřipravených příkladů, za podpory dvou zkušených specialistů, kteří mají zkušenosti jak z řady projektů automatizace testů, tak z vývoje vlastních rozšíření platformy Selenium WebDriver a výzkumu a vývoje v této oblasti.

Na kurzu se budeme zabývat následujícími oblastmi:

  • Specifika, silné stránky a omezení automatizovaných testů
  • Ekonomika automatizace testů
  • Jaký je vhodný scope pro automatizaci testů? Má smysl automatizovat manuální testy 1:1?
  • První test: struktura arrange-act-assert
  • Znovupoužitelné objekty: začněme je používat rovnou od začátku
  • Objekt WebDriver, možnosti platformy, nejčastěji používané API
  • Ovládání různých prohlížečů, úvod do testování mobilních aplikací
  • Strategie pro lokalizaci elementů: co je vhodné a co ne, jak psát efektivní XPath výrazy
  • Synchronizace testů s testovanou aplikací (včetně AJAX a podobných složitějších prvků)
  • Propojení WebDriver s JUnit / TestNG: jak to udělat efektivně, limity xUnit frameworků a jak je obejít
  • Zpracování nalezených chyb, sestavování chybového reportu, screenshoty
  • Strukturování větší sady testů: vrstvená architektura
  • Návrhové vzory PageObject a PageFactory
  • Pokročilejší PageObject: více business logiky a flexibility při inicializaci elementů
  • Parametrizace testovacích dat, použití data grids
  • Větší sada testů: vytvoření jednotného úložiště testovacích dat?
  • Organizace větší sady testů: Test suites, subsety podle typů testu, znovupoužitelné testy
  • Implementace delších (E2E) testů: napojovací body, předávání testovacích dat
  • Pokročilejší koncepty: použití Java generics pro zrychlení vývoje, SmartDriver přístup
  • Spouštěcí plán testů, technické způsoby jak naplánovat a spouštět testy
  • Přehled quick-wins, dobrých a špatných postupů

Požadované vybavení: vlastní notebook s aktuálním IDE pro vývoj v Javě a podporou Maven a JUnit (doporučujeme IntelliJ IDEA, ale není podmínkou). Zbytek nainstalujeme pomocí Maven na začátku školení. Předpřipravené kódy automatických testů, které budou účastníci v průběhu kurzu dále rozvíjet, budou předány pomocí sdíleného webového adresáře.