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

Курс: Тестирование программного обеспечения

Целевая аудитория

Обучающиеся по направлению подготовки 09.03.04 «Программная инженерия», знакомые с основами программирования, Git и устройством веб-приложений. Примеры автоматизации выполняются на Python 3.11+ с использованием pytest.

Цель курса

Сформировать системное представление о тестировании программного обеспечения и научить проектировать проверки, документировать результаты, автоматизировать модульные и интеграционные тесты, тестировать HTTP API и запускать проверки в CI.

Формат

Курс включает 6 лекций и 6 лабораторных работ. Каждая лекция рассчитана на одну академическую пару. Лабораторная работа закрепляет материал соответствующей лекции и завершается отчётом и ссылкой на Git-репозиторий.

Тематический план лекций

  1. Основы тестирования программного обеспечения — качество, дефект, отказ, верификация и валидация, уровни и виды тестирования, принципы тестирования, жизненный цикл дефекта.
  2. Тестовая документация и методы тест-дизайна — требования, тест-план, чек-лист, тест-кейс, отчёт о дефекте, классы эквивалентности, граничные значения, таблицы решений и переходы состояний.
  3. Модульное тестирование — структура теста, Arrange–Act–Assert, pytest, fixtures, параметризация, исключения и покрытие кода.
  4. Изоляция и интеграционное тестирование — test doubles, моки, внедрение зависимостей, тестирование базы данных и файловой системы, контрактные тесты, тестовая пирамида.
  5. Тестирование веб-приложений и REST API — HTTP, позитивные и негативные сценарии, схемы данных, авторизация, Postman и автоматизация API-тестов.
  6. Автоматизация тестирования и CI — организация тестового проекта, регрессионный набор, CI/CD, отчёты, нестабильные тесты, основы нагрузочного тестирования и тестирования безопасности.

Форма контроля

Текущий контроль проводится по результатам лабораторных работ. Итоговый результат определяется качеством репозитория, полнотой тестовой документации, корректностью автоматизированных проверок и способностью обучающегося объяснить выбранную стратегию тестирования.