Testowanie funkcjonalności z pytest

Wprowadzenie do testowania w Pythonie

Alexander Levin

Data Scientist

Czym jest test funkcjonalności

Funkcjonalność

  • element działania systemu oprogramowania.
  • spełnia określone wymaganie użytkownika.

Funkcjonalności

  • są szersze niż jednostki.
  • Użytkownik końcowy może z nich korzystać.

Testowanie funkcjonalności

  • metoda testowania oprogramowania.
  • weryfikuje zachowanie konkretnej funkcjonalności.
  • Przykłady:
    • Kontrola rozkładu danych
    • Przygotowanie raportu
Wprowadzenie do testowania w Pythonie

Jednostki a funkcjonalności: komputer osobisty

Jednostki:

  • Każdy pojedynczy przycisk
  • Piksele na ekranie
  • Diody LED
  • Bloki na dysku

Funkcjonalności:

  • Klawiatura
  • Ekran
  • Podświetlenie
  • System plików
Wprowadzenie do testowania w Pythonie

Dlaczego stosujemy testy funkcjonalności

Testowanie funkcjonalności pomaga:

  • Testować w zakresie interakcji użytkownika z systemem.

Zakres jest szerszy niż jednostki:

  • Awaria jednej jednostki nie oznacza błędu funkcjonalności.

I odwrotnie:

  • Poprawne działanie wszystkich jednostek nie oznacza, że funkcjonalność działa prawidłowo.
Wprowadzenie do testowania w Pythonie

Przykład testu funkcjonalności: konfiguracja

Konfiguracja i definicja kodu funkcjonalności:

# Setup
import pandas as pd
import pytest

df = pd.read_csv('laptops.csv')

# Filter feature
def filter_data_by_manuf(df, manufacturer_name):
    filtered_df = df\
        [df["Manufacturer"] == manufacturer_name]
    return filtered_df
Wprowadzenie do testowania w Pythonie

Przykład testu funkcjonalności: testowanie

Kod testowy:

# Feature test function
def test_unique():
    manuf_name = 'Apple'
    filtered = filter_data_by_manuf(df, manuf_name)
    assert filtered\
        ['Manufacturer'].nunique() == 1
    assert filtered\
        ['Manufacturer'].unique() == [manuf_name]
Wprowadzenie do testowania w Pythonie

Podsumowanie

Testowanie funkcjonalności – metoda testowania oprogramowania weryfikująca zachowanie konkretnej funkcjonalności.

Funkcjonalności są szersze niż jednostki:

  • Jeśli przycisk to jednostka, klawiatura to funkcjonalność.

Testowanie funkcjonalności zapewnia, że użytkownicy otrzymują dokładnie to, czego oczekują.

Aby tworzyć testy funkcjonalności, należy przygotować przypadki testowe.

Klucz do projektowania testów funkcjonalności – zrozumienie, czym są funkcjonalności w danym systemie.

Wprowadzenie do testowania w Pythonie

Czas na ćwiczenia!

Wprowadzenie do testowania w Pythonie

Preparing Video For Download...