Тестирование функций с помощью pytest

Введение в тестирование на Python

Alexander Levin

Data Scientist

Что такое тест функции

Функция

  • функциональная возможность программной системы.
  • удовлетворяет конкретное требование пользователя.

Функции

  • шире, чем модули.
  • конечный пользователь работает с функциями.

Тестирование функций

  • метод тестирования программного обеспечения.
  • проверяет поведение конкретной функции.
  • Примеры:
    • Проверка распределения данных
    • Подготовка отчёта
Введение в тестирование на Python

Модули и функции: персональный компьютер

Модули:

  • Каждая отдельная кнопка
  • Пиксели на экране
  • Светодиоды
  • Блоки на диске

Функции:

  • Клавиатура
  • Экран
  • Подсветка
  • Файловая система
Введение в тестирование на Python

Зачем использовать тесты функций

Тестирование функций позволяет:

  • Проверять поведение системы на уровне взаимодействия с пользователем.

Охват шире, чем у модульных тестов:

  • Неисправность одного модуля не означает, что функция работает неверно.

И наоборот:

  • Корректная работа всех модулей не гарантирует правильность функции.
Введение в тестирование на Python

Пример теста функции: настройка

Настройка и определение кода функции:

# 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
Введение в тестирование на Python

Пример теста функции: тестирование

Код тестирования:

# 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]
Введение в тестирование на Python

Итоги

Тестирование функций — метод тестирования ПО, позволяющий проверить поведение конкретной функции.

Функции шире, чем модули:

  • Если кнопка — это модуль, то клавиатура — это функция.

Тестирование функций помогает убедиться, что пользователь получает именно то, что ожидает.

Для создания тестов функций необходимо разработать тестовые сценарии.

Ключ к проектированию тестов функций — понять, какие функции существуют в конкретной системе.

Введение в тестирование на Python

Давайте потренируемся!

Введение в тестирование на Python

Preparing Video For Download...