Python_tutorial
  • Вступление
  • Web
    • Введение в web-программирование
  • Основы программирования
    • Файл-менеджмент
    • Алгоритм. Блок-схема
    • Обзор языков программирования
  • Введение в Python
    • Особенности языка Python
    • Установка. Использование
    • Основные определения. Простые типы данных
    • Переменные*
    • Встроенные функции. f-строки
    • Ошибки
    • Основы командной строки
  • Операторы ветвлений, циклы, исключения
    • Условные конструкции и их синтаксис
    • Циклы
    • Обработка исключений
  • Строки. Списки
    • Строки
    • Регулярные выражения (regex)*
    • Списки
    • Изменяемые и неизменяемые объекты в Python*
    • Практика
  • Функции
    • Введение в функции. Модули
    • Функции. Продолжение
    • Функциональное программирование
    • Замыкания. Карринг. Декораторы.
    • Практика
  • Практика программирования
    • Стандарты написания кода
    • Основы тестирования*
    • Аннотации типов*
  • Основы алгоритмов
    • Введение
    • Алгоритмы поиска
    • Алгоритмы сортировки
  • Коллекции
    • Введение
    • Кортежи
    • Словари
    • Множества
    • Практика
  • Файлы
    • Введение
    • Работа с файлами в Python
  • Системы контроля версий
    • Введение в Git
  • Проект 1: Десктопное приложение
    • План работы
  • Основы ООП
    • Введение в ООП
  • Последние обновления
  • Обратная связь
    • Связаться с нами
Powered by GitBook
On this page
  • Введение
  • Модульное тестирование
Edit on GitHub
  1. Практика программирования

Основы тестирования*

PreviousСтандарты написания кодаNextАннотации типов*

Last updated 1 year ago

Введение

  • Для того чтобы убедиться, что что-то в нашем мире работает, это нужно протестировать

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

  • Протестировать можно всё, что угодно:

Тестирование карандаша

  • Тестирование бывает разных типов, мы остановимся на том, которым занимается каждый разработчик: модульное тестирование

Модульное тестирование

  • Модульное тестирование (unit-тестирование) — тип тестирования, при котором проверяются отдельные компоненты программы: функции и модули

# рассмотрим пример тестирования функции
def multiply_numbers(a, b):
    return a * b
    
print(multiply_numbers(2, 3)) # тестируем функцию multiply_numbers

print(multiply_numbers(2, 4) == 8) # тоже тестируем

print("test ok" if multiply_numbers(2, 5) == 10 else "test fail") # тоже тестируем

def test_multiply_numbers(): # и так тестируем
    print(multiply_numbers(2, 6) == 12)
    print(multiply_numbers(2, 4) == 8)
    print(multiply_numbers(2, 5) == 10)
    print(multiply_numbers(0, 0) == 0)
    print(multiply_numbers(-4, -5) == 20)
    
    
def test_multiply_numbers(): # и так тоже
    print("test 1 ok" if multiply_numbers(2, 6) == 12 else "test 1 fail")
    print("test 2 ok" if multiply_numbers(2, 4) == 8 else "test 2 fail")
    print("test 3 ok" if multiply_numbers(2, 5) == 10 else "test 3 fail")
    print("test 4 ok" if multiply_numbers(0, 0) == 0 else "test 4 fail")
    print("test 5 ok" if multiply_numbers(-4, -5) == 20 else "test 5 fail")
    
  • Одна из популярных практик программирования называется Test Driven Development (TDD), когда сначала пишутся тесты, а потом код. Такой подход сокращает общее время разработки и уменьшает зависимость от отладки

  • Практика: напишите функцию сложения двух чисел. Сначала напишите тесты, а затем саму функцию.