Модульне тестування з pytest

Вступ до тестування в Python

Alexander Levin

Data Scientist

Що таке модульний тест

Модуль — найменша робоча частина, яку можна протестувати.

  • Приклади модулів: функції, методи, класи, модулі тощо.

$$

Модульне тестування — метод тестування ПЗ.

  • Дає змогу перевірити коректність окремого модуля.

$$

Тест-кейс — набір вхідних даних модуля та очікуваних результатів.

  • Тест-кейс узагальнює конкретний аспект задачі.
Вступ до тестування в Python

Навіщо використовувати модульні тести

Модульні тести — основа для перевірки «загальної картини» роботи ПЗ.

Коли застосовувати:

  • Коли знайдено баги
  • Під час розробки
  • Після внесення змін
Вступ до тестування в Python

Як створити модульний тест

Покроково:

  1. Визначте, які модулі тестувати
  2. Сформулюйте тест-кейси (творча частина):
    • «Якими можуть бути результати модуля?»
    • «Як можуть використовувати модуль?»
    • «Як модуль має поводитись у всіх цих випадках?»
  3. Напишіть код для кожного тест-кейсу
  4. Запустіть тести та проаналізуйте результати
Вступ до тестування в Python

Створення модульного тесту: приклад

Модуль для тестування:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

Тест-кейси:

  1. Вхід — список чисел (як очікується) — має повернути sum
  2. Вхід — порожній список — має повернути 0
  3. Вхід — список з одним number — має повернути цей number
Вступ до тестування в Python

Створення модульного тесту: код

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Вступ до тестування в Python

Підсумок

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

Тест-кейс — вхідні та вихідні дані, що узагальнюють конкретний аспект задачі.

Коли застосовувати:

  • Коли знайдено баги
  • Під час розробки
  • Після внесення змін

Формулювання тест-кейсів вимагає творчості.

Вступ до тестування в Python

Давайте потренуємось!

Вступ до тестування в Python

Preparing Video For Download...