Introduktion till testning i Python

Introduktion till testning i Python

Alexander Levin

Data Scientist

Varför är testning så viktigt?

Vanliga problem:

  • Buggar och fel
  • Hårdvarufel
  • Oväntat eller oförutsägbart beteende

Alla dessa problem kan leda till betydande kostnader för åtgärder.

Testning hjälper till att:

  • Identifiera defekter, buggar och fel
  • Minska risken för programvarufel
  • Förbättra mjukvarans tillförlitlighet, funktionalitet och prestanda
Introduktion till testning i Python

Vad är testning?

  • Testning – en process för att utvärdera ett system eller en programvara
  • Testning säkerställer att kraven uppfylls

  • Test – ett förfarande för att verifiera att en programvara eller ett system fungerar korrekt

Introduktion till testning i Python

Förkunskaper

  • Avancerad Python-programmering
  • assert-satser
  • Dekoratorer
  • OOP-koncept (klasser, metoder, arv)
Introduktion till testning i Python

Testning i verkligheten

Tänk på flygplan:

  • Visuell inspektion
  • Kontroll av elektronik och mekanik
  • Bränslecheck
  • Kontroll av passagerare
  • Vädercheck
  • Starttillstånd från flygledare

Allt ovan är tester! Och vi behöver dem för säkerhetens skull.

flygplan inför start

Introduktion till testning i Python

Assert i Python

  • assert condition – testar om condition är True.
  • Om condition är False kastar Python ett AssertionError.
Introduktion till testning i Python

Testning med pytest – ett enkelt exempel

pytest – ett populärt testramverk i Python med ett enkelt sätt att skriva tester.

Exempel på ett "assert"-test skrivet med pytest i Python:

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)
Introduktion till testning i Python

Repetition: kontexthanterare

  • Kontexthanterare – ett Python-objekt som används via en with-sats
  • Vi använder kontexthanterare för att sätta upp och riva ned ett tillfälligt sammanhang
# Writing to file example
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Introduktion till testning i Python

pytest.raises

pytest.raises – används när testet förväntas kasta ett 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)
Introduktion till testning i Python

Sammanfattning

Testning är:

  • En process för att utvärdera att programvaran fungerar som förväntat
  • Något som förekommer i vardagen
  • Avgörande för att hantera utmaningar i mjukvaruutveckling
  • Ett sätt att säkerställa att problem hanteras korrekt

Testimplementering:

  • pytest – ett kraftfullt Python-ramverk som förenklar testprocessen
  • assert – ett Python-nyckelord som används i pytest för att skapa enkla tester genom att validera ett villkor
  • pytest.raises – en kontexthanterare för att skapa ett test som förväntas resultera i ett Exception
Introduktion till testning i Python

Nu kör vi en övning!

Introduktion till testning i Python

Preparing Video For Download...