Tvorba internetových aplikací

Jakub Klinkovský

:: České vysoké učení technické v Praze
:: Fakulta jaderná a fyzikálně inženýrská
:: Katedra softwarového inženýrství

Akademický rok 2023-2024

Testování (webových) aplikací

Testování je důležitá součást vývoje každého software, která má zajistit správnost implementace a použitelnost v praxi. Může probíhat různými způsoby:

  • analýza z hlediska úplnosti a použitelnosti zadaných požadavků
  • analýza z hlediska výkonnosti, bezpečnosti, kompatibility apod.
  • analýza kvality kódu
  • analýza chování aplikace při spuštění v různých prostředích
  • monitorování aplikace a její interakce s jinými systémy
  • a další...

Úvod do automatického testování

Manuální testování je časově náročné a nespolehlivé:

  • pro rozsáhlejší aplikace roste počet míst, kde se může projevit malá změna v kódu
  • ověřovat všechny případy ručně po každé změně není časově možné
  • navíc lidský faktor vede k nespolehlivosti pro opakující se činnost

Automatické testování řeší tyto problémy a přináší další výhody:

  • ověření testů je mnohem rychlejší a spolehlivější → lze provádět častěji
  • v případě selhání testu je okamžitě vidět, která část kódu nefunguje správně
  • testy slouží jako první uživatel vašeho kódu, často jsou základem pro psaní dokumentace nebo vytváření příkladů
  • existují vývojové techniky přímo založené na testech (viz dále)

Metodiky testování software

Další typy testů: black box, white box, canary, smoke, conformance, acceptance, functional, performance, load a stress testy.

Unit testing

  • slouží k testování jednotlivých částí kódu (units) – funkce, třídy, struktury
  • každý projekt by měl mít sadu testů, které pokrývají celou funkčnost projektu
  • jednotlivé testy by měly být izolované – pokud nějaký test selže, mělo by být snadné dohledat problematickou část kódu