Раздел 12 — Итоговый проект: автотесты своего проекта

Набор автотестов, который останется с вашим проектом после курса

Прогресс курса Раздел 12 из 12

Что вы покажете в итоговом проекте

6 академических часов практики — три пары. Задание с критериями оценивания — на портале. Здесь — что должно получиться и в каком порядке работать.
01

Какой проект брать

Свой: курсовой, дипломный, сайт или приложение, которое вы делали на других дисциплинах, — на любом языке. Цель курса — чтобы у вашего проекта остались тесты, которые запускаются одной командой.

Что есть в проектеКак быть
Веб-интерфейс и APIПолный объём: модульные, API, UI
Веб-интерфейс без APIAPI-тесты заменяются HTTP-проверками форм через requests (как регистрация в «Задачнике»)
Нет веб-интерфейса (консольная программа, библиотека)Вместо API и UI — больше модульных тестов и тесты запуска программы (subprocess: аргументы, вывод, код возврата)
Модульные тесты не на PythonПишутся на языке проекта (раздел 05), API и UI — на Python; в CI — два задания
Своего проекта нет«Задачник» 1.1: ваш набор из практик курса, доведённый до объёма ниже
Только свои проекты или проекты, владелец которых разрешил тестирование письменно. Автотесты против чужого работающего сайта — это обращения к чужой системе без разрешения; за неправомерный доступ к информации отвечают по ст. 272 УК РФ, даже если «просто проверял».
02

Минимальный объём

ЧастьМинимумРаздел курса
Модульные тесты5 тестов (параметризованный тест с вариантами считается одним); хотя бы один с заглушкой или подменой даты03–05
API-тесты10 тестов, из них не меньше 4 негативных; проверка структуры ответа; проверка доступа к чужим данным, если в проекте есть пользователи06–07
UI-тесты3 сценария через страницу-объект; вход через API, кроме теста самой формы входа08–09
ЗапускОдна команда из README; приложение для тестов поднимается само или описано, как поднять04, 10
ОтчётJUnit XML или HTML; снимки и трассы упавших UI-тестов09–10
CIФайл конвейера; зелёный прогон или объяснение, почему стенд недоступен, и прогон задания в контейнере10
СтратегияПолстраницы в README: что автоматизировано и на каком уровне, что оставлено вручную и почему01, 11

Найденные дефекты — отдельная ценность: каждый оформляется баг-репортом (в трекере проекта или файлом), а тест на него помечается xfail(strict=True) с номером.

03

Порядок работы

ПараЧто сделать к концу пары
1Стратегия в README; проект собран по структуре раздела 03 (tests/unit, tests/api, tests/ui), фикстуры запуска и входа; модульные тесты; API-тесты — позитивные
2API — негативные, схема ответа, доступ; страницы-объекты и UI-сценарии; все тесты проходят по одному и вместе
3Отчёт, снимки и трассы, файл CI и его прогон; README по шаблону; ревью своего набора по чек-листу раздела 11; защита

Проверка перед сдачей — запустить набор с нуля так, как это сделает преподаватель: новая папка, git clone, установка по README, одна команда. Если для этого нужно что-то, чего нет в README, — README неполон.

04

Шаблон README

# Автотесты проекта «…»

## Что проверяется
Стратегия: модульные — …; API — …; UI — …
Вручную (не автоматизировано): … — потому что …

## Установка
py -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
playwright install chromium

## Запуск
pytest              весь набор
pytest -m smoke     быстрая проверка

## Отчёты
report.xml — JUnit; report.html — для чтения;
test-results/ — снимки и трассы упавших UI-тестов

## Известные дефекты
BUG-1 … — тест tests/api/test_….py::test_… (xfail)
05

Что сдавать и защита

На портал — ссылка на репозиторий (GitFlic или другой, открытый для преподавателя) и HTML-отчёт последнего прогона. Если репозиторий закрыт — архив проекта без папок .venv, test-results, htmlcov.

Защита — 10 минут: прогон набора у вас на компьютере, ответы на вопросы по своему коду. Типичные вопросы:

Тест, ожидание которого студент не может объяснить, не засчитывается — даже если он зелёный.

Итог курса

Что вы теперь умеете

  • Решать, что автоматизировать и на каком уровне пирамиды
  • Писать модульные тесты с параметрами, фикстурами и заглушками
  • Проверять API: коды, тела, схемы, негативные случаи, права доступа
  • Писать стабильные UI-тесты на Playwright через страницы-объекты
  • Получать отчёты, покрытие и запускать набор в CI
  • Разбирать падения: дефект, устаревший тест или нестабильность
Практические задания — на учебном портале. Задания, критерии оценивания, сдача работ и оценки преподавателя — в курсе на portal.nevabit.ru. Учётную запись выдаёт преподаватель.
Раздел 11: Качество в команде Все разделы Все курсы