Курс: Тестирование программного обеспечения
Целевая аудитория
Обучающиеся по направлению подготовки 09.03.04 «Программная инженерия», знакомые
с основами программирования, Git и устройством веб-приложений. Примеры автоматизации
выполняются на Python 3.11+ с использованием pytest.
Цель курса
Сформировать системное представление о тестировании программного обеспечения и научить проектировать проверки, документировать результаты, автоматизировать модульные и интеграционные тесты, тестировать HTTP API и запускать проверки в CI.
Формат
Курс включает 6 лекций и 6 лабораторных работ. Каждая лекция рассчитана на одну академическую пару. Лабораторная работа закрепляет материал соответствующей лекции и завершается отчётом и ссылкой на Git-репозиторий.
Тематический план лекций
- Основы тестирования программного обеспечения — качество, дефект, отказ, верификация и валидация, уровни и виды тестирования, принципы тестирования, жизненный цикл дефекта.
- Тестовая документация и методы тест-дизайна — требования, тест-план, чек-лист, тест-кейс, отчёт о дефекте, классы эквивалентности, граничные значения, таблицы решений и переходы состояний.
- Модульное тестирование — структура теста, Arrange–Act–Assert,
pytest, fixtures, параметризация, исключения и покрытие кода. - Изоляция и интеграционное тестирование — test doubles, моки, внедрение зависимостей, тестирование базы данных и файловой системы, контрактные тесты, тестовая пирамида.
- Тестирование веб-приложений и REST API — HTTP, позитивные и негативные сценарии, схемы данных, авторизация, Postman и автоматизация API-тестов.
- Автоматизация тестирования и CI — организация тестового проекта, регрессионный набор, CI/CD, отчёты, нестабильные тесты, основы нагрузочного тестирования и тестирования безопасности.
Форма контроля
Текущий контроль проводится по результатам лабораторных работ. Итоговый результат определяется качеством репозитория, полнотой тестовой документации, корректностью автоматизированных проверок и способностью обучающегося объяснить выбранную стратегию тестирования.