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

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

Alexander Levin

Data Scientist

Чому тестування таке важливе?

Поширені проблеми:

  • Баги й помилки
  • Збої обладнання
  • Неочікувана або непередбачувана поведінка

Усе це може суттєво збільшити витрати на усунення.

Тестування допомагає:

  • Виявляти дефекти, баги та помилки
  • Зменшувати ризики збоїв ПЗ
  • Підвищувати надійність, функціональність і продуктивність ПЗ
Вступ до тестування в Python

Що таке тестування?

  • Тестування — це процес оцінювання системи або ПЗ
  • Воно потрібне, щоб перевірити відповідність вимогам

  • Тест — процедура перевірки правильності роботи застосунку чи системи

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

Необхідні знання курсу

  • Просунуте програмування на Python
  • Оператор assert
  • Декоратори
  • Поняття ООП (класи, методи, наслідування)
Вступ до тестування в Python

Тестування в реальному житті

Згадайте про літаки:

  • Візуальний огляд
  • Перевірка електроніки й механіки
  • Перевірка пального
  • Перевірка пасажирів
  • Перевірка погоди
  • Дозвіл на зліт від диспетчера

Усе це — тести! Вони потрібні для безпеки.

літак перед зльотом

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

Assert у Python

  • assert condition — дозволяє перевірити, чи condition є True.
  • Якщо conditionFalse, Python згенерує AssertionError.
Вступ до тестування в Python

Тестування з pytest — простий приклад

pytest — популярний фреймворк тестування в Python, що спрощує написання тестів.

Приклад тесту з «assert», написаного з pytest у Python:

import pytest

# Функція для тестування
def squared(number):
    return number * number

# Функція тесту завжди починається з "test"
def test_squared():
    assert squared(-2) == squared(2)
Вступ до тестування в Python

Повторимо менеджери контексту

  • Менеджер контексту — об'єкт Python, який використовують у блоці with
  • Менеджери контексту застосовують для підготовки й очищення тимчасового середовища
# Приклад запису у файл
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Вступ до тестування в Python

Знайомство з pytest: raises

pytest.raises — коли очікуєте, що тест згенерує Exception

import pytest

# Функція для тестування
def division(a, b):
    return a / b

# Функція тесту
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Вступ до тестування в Python

Підсумок

Тестування — це:

  • Процес перевірки, що ПЗ працює як очікується
  • Притаманне щоденному життю
  • Важливе для подолання викликів розробки ПЗ
  • Допомагає належно вирішувати проблеми

Реалізація тестів:

  • pytest — потужний фреймворк Python, що спрощує тестування
  • assert — ключове слово Python, яке в pytest використовують для базових перевірок умов
  • pytest.raises — менеджер контексту для тестів, де очікується Exception
Вступ до тестування в Python

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

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

Preparing Video For Download...