Wprowadzenie do testowania w Pythonie

Wprowadzenie do testowania w Pythonie

Alexander Levin

Data Scientist

Dlaczego testowanie jest tak ważne?

Typowe problemy:

  • Błędy i usterki
  • Awarie sprzętu
  • Nieoczekiwane lub nieprzewidywalne zachowanie

Wszystkie te problemy mogą prowadzić do znacznego wzrostu kosztów naprawy.

Testowanie pomaga:

  • Wykrywać defekty, błędy i usterki
  • Zmniejszać ryzyko awarii oprogramowania
  • Zwiększać niezawodność, funkcjonalność i wydajność oprogramowania
Wprowadzenie do testowania w Pythonie

Czym jest testowanie?

  • Testowanie – proces oceny systemu lub oprogramowania
  • Stosowane w celu weryfikacji zgodności z wymaganiami

  • Test – procedura weryfikująca poprawność działania aplikacji lub systemu

Wprowadzenie do testowania w Pythonie

Wymagania wstępne kursu

  • Zaawansowane programowanie w Pythonie
  • Instrukcje assert
  • Dekoratory
  • Koncepcje OOP (klasy, metody, dziedziczenie)
Wprowadzenie do testowania w Pythonie

Testowanie w życiu codziennym

Przykład samolotu:

  • Inspekcja wizualna
  • Kontrola elektroniki i mechaniki
  • Kontrola paliwa
  • Odprawa pasażerów
  • Sprawdzenie pogody
  • Zezwolenie na start od kontrolera ruchu lotniczego

Wszystko powyższe to testy! Są niezbędne dla bezpieczeństwa.

samolot przed startem

Wprowadzenie do testowania w Pythonie

Assert w Pythonie

  • assert condition - sprawdza, czy condition jest True.
  • Jeśli condition jest False, Python zgłasza AssertionError.
Wprowadzenie do testowania w Pythonie

Testowanie z pytest – prosty przykład

pytest - popularny framework testowy w Pythonie, oferujący prosty sposób pisania testów.

Przykład testu "assert" napisanego z pytest w Pythonie:

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)
Wprowadzenie do testowania w Pythonie

Powtórzenie: menedżery kontekstu

  • Menedżer kontekstu – obiekt Pythona używany przez instrukcję with
  • Służy do konfigurowania i zwalniania tymczasowego kontekstu
# Writing to file example
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Wprowadzenie do testowania w Pythonie

Poznaj pytest: raises

pytest.raises – stosowany, gdy test powinien zgłosić 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)
Wprowadzenie do testowania w Pythonie

Podsumowanie

Testowanie to:

  • Proces weryfikacji, czy oprogramowanie działa zgodnie z oczekiwaniami
  • Element codziennego życia
  • Kluczowy element procesu wytwarzania oprogramowania
  • Pomaga upewnić się, że problemy są właściwie rozwiązywane

Implementacja testów:

  • pytest – potężny framework Pythona upraszczający testowanie
  • assert – słowo kluczowe Pythona używane w pytest do tworzenia podstawowych testów
  • pytest.raises – menedżer kontekstu do testów oczekujących Exception
Wprowadzenie do testowania w Pythonie

Czas na ćwiczenia!

Wprowadzenie do testowania w Pythonie

Preparing Video For Download...