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

Всё, что было в курсе, — на программе, которую вы знаете лучше всех и поэтому хуже всех видите

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

Что вы делаете в этом разделе

6 академических часов практики. Теории в разделе нет: всё нужное — в разделах 03–11. Шаблоны — тест-план, чек-лист, тест-кейсы, баг-репорт, тест-отчёт.
01

Какой проект тестировать

Лучше всего — свой: сайт, веб-приложение, бот, курсовая или дипломная работа, проект из другого курса nevabit. Подойдёт проект одногруппника, если он согласен отвечать на вопросы о требованиях и принимать баг-репорты. Если своего проекта нет — «Задачник» 1.1.

Проект подходит, если в нём есть:

Если проект — одна статичная страница, для итоговой работы его мало: техникам из разделов 05–06 не на чем работать.

Тестируйте свою копию — локально или на своём стенде. Рабочий сайт с настоящими пользователями, чужие сервисы и проверки доступа к чужим данным на них — без письменного разрешения владельца нельзя: это может быть расценено как неправомерный доступ к компьютерной информации (ст. 272 УК РФ). Персональные данные в тестовой базе — только придуманные (раздел 10).
02

Если требований нет

У «Задачника» были требования Т1–Т9. У студенческого проекта их обычно нет: автор держит всё в голове. Тестировать «на глаз» нельзя — без ожидаемого результата нет дефекта, есть только мнение. Требования восстанавливают:

  1. Карта функций. Пройдите все экраны и запишите, что программа умеет: список функций, у каждой — поля, кнопки, сообщения.
  2. Источники. Задание на курсовую, описание в README, документация API (если есть), подписи и подсказки в интерфейсе, сообщения об ошибках, ограничения в базе данных (длина столбца, NOT NULL, уникальность).
  3. Требования-ориентиры. Запишите правила в том же виде, что Т1–Т9: номер, одна проверяемая фраза, конкретные числа. Где источники молчат, предложите разумное правило и пометьте «предложено».
  4. Согласование. Покажите список автору проекта (или себе в роли заказчика — тогда запишите решения письменно). Вопросы к требованиям — как в разделе 03.

Восстановленные требования — уже результат: половина вопросов к ним обычно оказывается дефектами, которые автор «и не думал проверять».

03

Образец: «Домашняя библиотека»

Вымышленный студенческий проект: веб-приложение для учёта своих книг, Python и SQLite, есть JSON API. README: «Добавляйте книги, отмечайте прочитанные, ищите по названию и автору». Других документов нет. Ниже — фрагменты итоговой работы по нему. Ваша задача — сделать то же для своего проекта, а не повторить образец.

Карта функций (фрагмент):

ФункцияПоля и действияИсточник правил
Добавить книгуНазвание, автор, год издания, статус «Хочу прочитать / Читаю / Прочитана»Подсказки формы, столбцы базы
ПоискСтрока поиска по названию и авторуREADME
СтатусыКнопки «Начать», «Прочитана»Интерфейс
APIGET/POST /api/books, PATCH/DELETE /api/books/{id}Код сервера, описания нет

Требования-ориентиры (фрагмент):

Тест-кейс по технике граничных значений для Б1.2:

ПолеЗначение
ID, названиеTC-BOOK-06. Год издания: нижняя граница 1450 принимается, 1449 — нет
Требование, техника, приоритетБ1.2; граничные значения; средний
ПредусловияПользователь вошёл; база после сброса
Шаги1. «Добавить книгу»: название «Тест год 1449», год 1449, «Сохранить».
2. То же с названием «Тест год 1450» и годом 1450.
Ожидаемый результат1. Сообщение «Год издания — от 1450 до …», книга не добавлена.
2. Книга добавлена, в списке год 1450.

Баг-репорты (заголовки — по правилу «что — где — при каком условии»):

Итог тест-отчёта: «Не выпускать: через API любой пользователь может удалить чужие книги. После исправления — выпускать, остальные дефекты на удобство».

04

Порядок работы на трёх парах

ПараЧто делаетеРазделы
1Карта функций, требования-ориентиры, вопросы автору; тест-план; чек-лист03, 04, 11
2Тест-кейсы техниками тест-дизайна; прогон в браузере, через API, по базе; баг-репорты05–10
3Повторная проверка, если автор успел исправить; тест-отчёт; защита07, 11

Между парами работа продолжается дома. Если тестируете проект одногруппника — отдавайте баг-репорты сразу, не копите к концу: на третьей паре он успеет исправить, а вы — перепроверить.

05

Свой проект глазами тестировщика

Автор знает, как программой «правильно» пользоваться, и бессознательно обходит её слабые места. Несколько приёмов против этого:

06

Типичные ошибки итоговых работ

ОшибкаКак должно быть
Чек-лист из пунктов «Проверить форму», «Проверить поиск»Одна проверка — одно действие и один ожидаемый результат: «Поиск по части фамилии автора находит книгу»
Все тест-кейсы позитивныеКлассы и границы, таблица решений, переходы состояний — у каждого тест-кейса указана техника
Ожидаемый результат «работает корректно»Конкретно: текст сообщения, число в списке, состояние в базе
Баг-репорт «не работает поиск»Шаги с данными, факт и ожидание, требование, окружение, серьёзность
Тест-отчёт — пересказ того, что делалиРекомендация в начале, числа прогона, открытые дефекты, что не проверено и чем это грозит
Статусы прогона расходятся с трекеромУ каждого «не прошла» — номер баг-репорта, числа отчёта сходятся с таблицей

Ключевые выводы курса

Запомните главное

  • Без ожидаемого результата нет дефекта — сначала требования, хотя бы восстановленные
  • Проверки придумывают техниками тест-дизайна, а не по вдохновению
  • Интерфейс — только одна сторона: API, база и журнал показывают то, что экран скрывает
  • Баг-репорт воспроизводится без автора; тест-отчёт ведёт к решению о выпуске
  • Тестируют свою копию; чужие системы — только с разрешения владельца
  • Дальше — курс QA: автоматизация тестирования: те же проверки, но выполняет их программа
Практические задания — на учебном портале. Задания, критерии оценивания, сдача работ и оценки преподавателя — в курсе на portal.nevabit.ru. Учётную запись выдаёт преподаватель.
Раздел 11: Тестовый процесс Все разделы Все курсы