Úvod do testování v Pythonu

Úvod do testování v Pythonu

Alexander Levin

Data Scientist

Proč je testování tak důležité?

Běžné problémy:

  • Chyby a bugy
  • Selhání hardwaru
  • Neočekávané nebo nepředvídatelné chování

Všechny tyto problémy mohou výrazně zvýšit náklady na opravu.

Testování pomáhá:

  • Odhalovat nedostatky, bugy a chyby
  • Snižovat riziko selhání softwaru
  • Zlepšovat spolehlivost, funkčnost a výkon softwaru
Úvod do testování v Pythonu

Co je testování?

  • Testování – proces hodnocení systému nebo softwaru
  • Je potřebné k ověření, že splňuje stanovené požadavky

  • Test – postup pro ověření správnosti softwarové aplikace nebo systému

Úvod do testování v Pythonu

Předpoklady kurzu

  • Pokročilé programování v Pythonu
  • Příkazy assert
  • Dekorátory
  • Koncepty OOP (třídy, metody, dědičnost)
Úvod do testování v Pythonu

Testování v reálném životě

Představte si letadla:

  • Vizuální kontrola
  • Kontrola elektroniky a mechaniky
  • Kontrola paliva
  • Kontrola cestujících
  • Kontrola počasí
  • Povolení ke vzletu od řídícího letového provozu

Vše výše uvedené jsou testy! A potřebujeme je pro bezpečnost.

letadlo před vzletem

Úvod do testování v Pythonu

Assert v Pythonu

  • assert condition – ověřuje, zda je condition pravdivá (True).
  • Pokud je condition nepravdivá (False), Python vyvolá AssertionError.
Úvod do testování v Pythonu

Testování s pytest – jednoduchý příklad

pytest – oblíbený testovací framework v Pythonu, který zjednodušuje psaní testů.

Příklad testu s assert napsaného pomocí pytest:

import pytest

# A function to test
def squared(number):
    return number * number

# A test function always starts with "test"
def test_squared():
    assert squared(-2) == squared(2)
Úvod do testování v Pythonu

Opakování: kontextové manažery

  • Kontextový manažer – objekt Pythonu, který se používá příkazem with
  • Slouží k nastavení a ukončení dočasného kontextu
# Writing to file example
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Úvod do testování v Pythonu

Seznámení s pytest: raises

pytest.raises – použijte, když test má vyvolat výjimku (Exception)

import pytest

# A function to test
def division(a, b):
    return a / b

# A test function
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Úvod do testování v Pythonu

Shrnutí

Testování je:

  • Proces ověřování, že software funguje podle očekávání
  • Součástí každodenního života
  • Nezbytné pro zvládání výzev softwarového vývoje
  • Pomáhá zajistit, že problémy jsou řádně řešeny

Implementace testů:

  • pytest – výkonný framework, který zjednodušuje testování
  • assert – klíčové slovo Pythonu pro vytváření základních testů ověřením podmínky
  • pytest.raises – kontextový manažer pro testy, které mají vyvolat Exception
Úvod do testování v Pythonu

Pojďme si procvičit!

Úvod do testování v Pythonu

Preparing Video For Download...