Introductie tot testen in Python

Introductie tot testen in Python

Alexander Levin

Data Scientist

Waarom is testen zo belangrijk?

Veelvoorkomende problemen:

  • Bugs en fouten
  • Hardwarestoringen
  • Onverwacht of onvoorspelbaar gedrag

Al deze problemen kunnen leiden tot aanzienlijke kosten voor herstel.

Testen helpt om:

  • Defecten, bugs en fouten te vinden
  • Risico op softwarestoringen te verkleinen
  • Betrouwbaarheid, functionaliteit en performance te verhogen
Introductie tot testen in Python

Wat is testen?

  • Testen - het beoordelen van een systeem of software
  • We testen om te garanderen dat het aan de eisen voldoet

  • Test - een procedure om de juistheid van software of een systeem te verifiëren

Introductie tot testen in Python

Cursusvereisten

  • Gevorderde Python-programmering
  • assert-statements
  • Decorators
  • OOP-concepten (classes, methods, inheritance)
Introductie tot testen in Python

Testen in het echte leven

Denk aan vliegtuigen:

  • Visuele inspectie
  • Controle elektronica en mechanica
  • Brandstofcontrole
  • Passagierscontrole
  • Weercheck
  • Toestemming om op te stijgen van de luchtverkeersleiding

Dit alles zijn tests! Nodig voor de veiligheid.

vliegtuig voor het opstijgen

Introductie tot testen in Python

Assert in Python

  • assert condition - test of condition True is.
  • Als condition False is, geeft Python een AssertionError.
Introductie tot testen in Python

Testen met pytest - een simpel voorbeeld

pytest - een populair testframework voor Python dat testen schrijven eenvoudig maakt.

Voorbeeld van een "assert"-test met pytest in Python:

import pytest

# Een te testen functie
def squared(number):
    return number * number

# Een testfunctie start altijd met "test"
def test_squared():
    assert squared(-2) == squared(2)
Introductie tot testen in Python

Contextmanagers: recap

  • Contextmanager - een Python-object dat je gebruikt met een with-statement
  • We gebruiken contextmanagers om tijdelijk context op te zetten en op te ruimen
# Voorbeeld: naar een bestand schrijven
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Introductie tot testen in Python

Maak kennis met pytest: raises

pytest.raises - gebruik je als je verwacht dat de test een Exception geeft

import pytest

# Een te testen functie
def division(a, b):
    return a / b

# Een testfunctie
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Introductie tot testen in Python

Samenvatting

Testen is:

  • Een proces om te beoordelen of software werkt zoals verwacht
  • Aanwezig in het dagelijks leven
  • Essentieel om uitdagingen in softwareontwikkeling aan te pakken
  • Helpt om problemen correct op te lossen

Tests implementeren:

  • pytest - een krachtig Python-framework dat testen vereenvoudigt
  • assert - een Python-trefwoord, gebruikt in pytest om basischecks te doen
  • pytest.raises - een contextmanager om te testen dat een Exception wordt opgegooid
Introductie tot testen in Python

Laten we oefenen!

Introductie tot testen in Python

Preparing Video For Download...