Úvod do testování

Úvod do testování v Javě

Maria Milusheva

Senior Software Engineer

Co je testování?

Softwarové testování:

  • Proces hodnocení softwaru za účelem ověření, zda splňuje stanovené požadavky

Testování může být:

  • Manuální – nezbytné, ale omezené a méně spolehlivé
  • Automatizované – efektivní způsob, jak spustit stovky testů během sekund

Pro automatizované testování budeme používat JUnit 5

Grafika programátora

Úvod do testování v Javě

Hraniční případy

"Pokud to není otestováno, je to rozbité."$^1$

Hraniční případ – vstup nebo podmínka na krajní hranici toho, co je považováno za typické nebo očekávané

Příklady: proměnné na maximální kapacitě, nulové nebo prázdné proměnné, záporné hodnoty

Grafika symbolizující test

1 Quote originally by Bruce Eckel
Úvod do testování v Javě

Příklad neočekávaného chování v hraničním případě

Uvažujme následující kód:

public int addTwoNumbers(int a, int b) {
    return a + b;
}

⚠ Uvažujme vstupy 2147483647 (maximální hodnota int) a 1

➡ Výstup je -2147483648 (minimální hodnota int)

Úvod do testování v Javě

Připomenutí: Velikosti proměnných – primitivní typy mají omezenou velikost

Tabulka shrnující primitivní typy – byte, short, int, long, float, double, char a boolean

Úvod do testování v Javě

Příklad: start rakety Ariane 5

První let rakety Ariane 5 v roce 1996:

  • Vývoj trval přes 8 let
  • Náklady přesáhly 370 milionů dolarů
  • Explodovala 37 sekund po startu
  • Příčinou výbuchu byla softwarová chyba: přetečení short

Raketa Ariane 5 Evropské kosmické agentury při startu.

Úvod do testování v Javě

Přínosy testování

  • Chrání před chybami v hraničních případech
  • Vede k lepšímu porozumění projektu a jeho požadavkům
  • Dlouhodobě urychluje vývoj
  • Automatizuje ověřování požadavků
  • Chrání před lidskou chybou

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Úvod do testování v Javě

Pojďme si procvičit!

Úvod do testování v Javě

Preparing Video For Download...