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

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

Alexander Levin

Data Scientist

Почему тестирование так важно?

Распространённые проблемы:

  • Ошибки и баги
  • Сбои оборудования
  • Неожиданное или непредсказуемое поведение

Всё это может привести к значительному росту затрат на исправление.

Тестирование помогает:

  • Выявлять дефекты, баги и ошибки
  • Снижать риски сбоев программного обеспечения
  • Повышать надёжность, функциональность и производительность ПО
Введение в тестирование на Python

Что такое тестирование?

  • Тестирование — процесс оценки системы или программного обеспечения
  • Оно нужно, чтобы убедиться в соответствии заявленным требованиям

  • Тест — процедура проверки корректности работы приложения или системы

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

Предварительные требования

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

Тестирование в реальной жизни

Представьте самолёт перед вылетом:

  • Визуальный осмотр
  • Проверка электроники и механики
  • Проверка топлива
  • Проверка пассажиров
  • Проверка погоды
  • Разрешение на взлёт от диспетчера

Всё это — тесты! И они нужны для безопасности.

самолёт перед взлётом

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

Assert в Python

  • assert condition — проверяет, является ли condition истинным (True).
  • Если condition равно False, Python выбросит AssertionError.
Введение в тестирование на Python

Тестирование с pytest — простой пример

pytest — популярный фреймворк для тестирования на Python, предоставляющий простой способ написания тестов.

Пример теста с assert, написанного с помощью pytest:

import pytest

# A function to test
def squared(number):
    return number * number

# A test function always starts with "test"
def test_squared():
    assert squared(-2) == squared(2)
Введение в тестирование на Python

Менеджеры контекста: краткое повторение

  • Менеджер контекста — объект Python, используемый с оператором with
  • Применяется для настройки и завершения временного контекста
# Writing to file example
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Введение в тестирование на Python

Знакомство с pytest: raises

pytest.raises — используется, когда тест должен вызвать исключение (Exception)

import pytest

# A function to test
def division(a, b):
    return a / b

# A test function
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...