КОНСПЕКТ ПРЕПОДАВАТЕЛЯ · C23

Тесты и отладка

Формат и цель

Практику с файлами, окружением, модулями и pytest проверяем в локальной папке проекта. Браузерный редактор подходит для отдельных фрагментов логики. Консольная программа на Python. Ученик пишет код, запускает его и проверяет текстовый результат. На занятие можно отвести 45–60 минут; темп меняется по опыту группы.

Автоматический тест сравнивает фактическое поведение с ожидаемым. Начнём с assert, научимся выбирать граничные случаи и разберём, как повторять проверки после каждого изменения.

Подготовка и демонстрация

Открой урок и заранее запусти пример в браузере. Для локального проекта подготовь Python 3 и редактор. Покажи входные данные и ожидаемый вывод, затем измени один параметр и попроси предсказать результат.

Порядок занятия

  1. 5 минут: покажи итог «Тесты для своего проекта» и обсуди, какие данные нужны программе.
  2. 15 минут: разбери блоки теории, после каждого попроси объяснить одну строку своими словами.
  3. 15 минут: самостоятельные задачи во вкладке «Задачи», затем сравнение подходов.
  4. 15–20 минут: мини-проект, проверка обычных и граничных случаев.
  5. 5 минут: сохранение main.py и README, короткая демонстрация решения.

Учебные темы

  • 1. assert показывает несовпадение
  • 2. Обычный случай, граница, ошибка
  • 3. Входные данные не должны портиться
  • 4. pytest и поиск причины

Вопрос группе

Какие значения проверят обе границы допуска 15–35?

Ориентир для обсуждения

Как минимум 14, 15, 35, 36: сразу снаружи и прямо на каждой границе.

Типичные трудности

  • Проверить только один удобный пример.
  • Повторить формулу реализации в расчёте ожидаемого ответа.
  • Считать зелёный тест доказательством всех возможных свойств программы.

Критерии готового проекта

Добавь набор проверок к двум уже написанным функциям и исправь найденную ошибку.

  • Хотя бы один тест падает при намеренной ошибке.
  • После возврата правильной реализации все тесты проходят.
  • README объясняет установку pytest и запуск проверок.

Проси показать результат и объяснить ключевое решение. Совпадение одного примера вывода не заменяет проверку остальных случаев.

Задание мини-проекта и пример результата →