Тестування фіч із 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...