Detail kurzu

Java tester - Základy testovania pre vývojárov: JUnit 5, Mockito, TDD, integračné testy a CI/CD automatizácia v praxi

IT LEARNING SLOVAKIA, s.r.o.

Popis kurzu

Predstavte si, že dokončíte funkcionalitu, ktorá vám zabrala niekoľko dní práce. Nasadíte ju do produkcie a o pár hodín prichádza chyba. Nie preto, že by ste nevedeli programovať – ale preto, že kód nemal ochranu. Automatizované testy dnes nie sú doplnok, ale štandard profesionálneho vývoja. Vývojár, ktorý netestuje, pracuje naslepo. Tento kurz vás naučí, ako písať automatizované testy v jazyku Java tak, aby ste mali nad svojim kódom kontrolu. Nejde o teóriu ani o QA procesy – ide o prax, ktorú využijete okamžite vo svojom projekte. Naučíte sa vytvárať testy, ktoré zachytia chyby ešte pred nasadením, ochránia vás pri refaktoringu a zároveň slúžia ako živá dokumentácia vášho kódu. Začnete od základov testovania a pochopíte, prečo testy existujú – nie ako formalita, ale ako nástroj na bezpečnú zmenu kódu. Prejdete si testovaciu pyramídu, princípy kvalitných testov (F.I.R.S.T.) a naučíte sa pracovať s prístupom TDD (Test Driven Development), ktorý mení spôsob, akým premýšľate nad kódom. V praktickej časti si osvojíte framework JUnit 5 – od základných anotácií až po parametrizované testy a organizáciu testovacích scenárov. Naučíte sa písať čitateľné a udržiavateľné testy pomocou knižnice AssertJ a pochopíte, ako efektívne pracovať s mockovaním závislostí cez Mockito. Vďaka tomu budete vedieť testovať business logiku izolovane, bez potreby reálnej databázy či externých služieb. Kurz ide ďalej než len unit testy. Naučíte sa písať integračné testy, pracovať s nástrojmi ako Testcontainers (spustenie databázy v Dockeri počas testovania) alebo WireMock (simulácia HTTP služieb). Získate prehľad o tom, ako testovať reálne scenáre v aplikácii a ako nastaviť testovacie prostredie tak, aby bolo spoľahlivé a reprodukovateľné. Dôležitou súčasťou je aj meranie kvality – naučíte sa pracovať s code coverage pomocou JaCoCo, nastavovať minimálne prahové hodnoty a interpretovať výsledky. Testy následne zapojíte do build procesu pomocou Maven alebo Gradle a uvidíte, ako ich automaticky spúšťať v CI/CD pipeline cez GitHub Actions. Pochopíte, ako nastaviť procesy tak, aby sa chybný kód jednoducho nedostal do produkcie. Po absolvovaní kurzu budete vedieť navrhnúť testovaciu stratégiu pre svoju aplikáciu, písať kvalitné unit aj integračné testy a automatizovať ich spúšťanie. Získate istotu pri úpravách kódu a výrazne znížite riziko regresií. Kurz je určený pre Java vývojárov, ktorí chcú pracovať profesionálnejšie a mať svoj kód pod kontrolou. Vhodný je pre juniorov, ktorí si chcú osvojiť správne návyky od začiatku, aj pre skúsenejších vývojárov, ktorí doteraz testovanie riešili len okrajovo. Podmienkou je základná znalosť jazyka Java (triedy, metódy, výnimky, OOP). Tento kurz sa nezameriava na manuálne testovanie, QA procesy ani penetračné testy. Jeho cieľom je naučiť vás písať automatizované testy priamo ako súčasť vývojárskej práce.

Obsah kurzu

Princípy a filozofia testovania
  • Prečo testujeme – bezpečná zmena kódu, regresia, dokumentácia
  • Pyramída testovania: jednotkové, integračné, end-to-end testy
  • Princípy: F.I.R.S.T. (Fast, Isolated, Repeatable, Self-validating, Timely)
  • TDD (Test Driven Development) – Red, Green, Refactor cyklus
JUnit 5 – jednotkové testy
  • Architektúra JUnit 5: Platform, Jupiter, Vintage
  • Základné anotácie
  • Assertions
  • Parametrizované testy
  • Organizácia testov
Testovacie nástroje
  • DevTools prehliadačov
  • terminálové nástroje xh, curl
  • Yaak API client
AssertJ – fluent assertions
  • Výhody AssertJ oproti vstavaným JUnit Assertions
  • Reťazenie podmienok
  • Assertions pre kolekcie, reťazce, výnimky a čísla
Mockito – mockovanie závislostí
  • Čo je mock, stub, spy – rozdiely a kedy čo použiť
  • Vytvorenie mocku a definovanie správanie
  • Verifikácia volaní
Integračné testy
  • Rozdiel medzi jednotkovým a integračným testom
  • Testcontainers – spustenie databázy / brokera v Dockeri počas testov
  • Testovanie SQL vrstvy s reálnou databázou
  • Testovanie HTTP klientov a serverov: WireMock
Pokrytie kódu (Code Coverage)
  • Čo meria code coverage – riadky, vetvy, metódy
  • JaCoCo – nastavenie v Maven/Gradle, generovanie HTML reportu
  • Minimálne prahové hodnoty pokrytia (coverage threshold) v CI
Testovanie v Maven a Gradle
  • Maven Surefire plugin – jednotkové testy
  • Maven Failsafe plugin – integračné testy
  • Gradle Test task – filtrovanie testov podľa @Tag
  • Paralelné spustenie testov
CI/CD s GitHub Actions
  • Čo je CI/CD – Continuous Integration a Continuous Delivery/Deployment
  • GitHub Actions – koncepty: workflow, job, step, runner; skladba YAML súboru
  • Automatické spustenie testov (Maven/Gradle) pri každom push a pull requeste
  • Branch protection rules – blokovanie merge pri neúspešných testoch; deployment
  • pipeline so staging/production a manuálnym schválením

 

Hodnotenie




Organizátor