Всё, что было в курсе, — на программе, которую вы знаете лучше всех и поэтому хуже всех видите
Лучше всего — свой: сайт, веб-приложение, бот, курсовая или дипломная работа, проект из другого курса nevabit. Подойдёт проект одногруппника, если он согласен отвечать на вопросы о требованиях и принимать баг-репорты. Если своего проекта нет — «Задачник» 1.1.
Проект подходит, если в нём есть:
Если проект — одна статичная страница, для итоговой работы его мало: техникам из разделов 05–06 не на чем работать.
У «Задачника» были требования Т1–Т9. У студенческого проекта их обычно нет: автор держит всё в голове. Тестировать «на глаз» нельзя — без ожидаемого результата нет дефекта, есть только мнение. Требования восстанавливают:
NOT NULL, уникальность).Восстановленные требования — уже результат: половина вопросов к ним обычно оказывается дефектами, которые автор «и не думал проверять».
Вымышленный студенческий проект: веб-приложение для учёта своих книг, Python и SQLite, есть JSON API. README: «Добавляйте книги, отмечайте прочитанные, ищите по названию и автору». Других документов нет. Ниже — фрагменты итоговой работы по нему. Ваша задача — сделать то же для своего проекта, а не повторить образец.
Карта функций (фрагмент):
| Функция | Поля и действия | Источник правил |
|---|---|---|
| Добавить книгу | Название, автор, год издания, статус «Хочу прочитать / Читаю / Прочитана» | Подсказки формы, столбцы базы |
| Поиск | Строка поиска по названию и автору | README |
| Статусы | Кнопки «Начать», «Прочитана» | Интерфейс |
| API | GET/POST /api/books, PATCH/DELETE /api/books/{id} | Код сервера, описания нет |
Требования-ориентиры (фрагмент):
VARCHAR(200) NOT NULL; обрезка — предложено.Тест-кейс по технике граничных значений для Б1.2:
| Поле | Значение |
|---|---|
| ID, название | TC-BOOK-06. Год издания: нижняя граница 1450 принимается, 1449 — нет |
| Требование, техника, приоритет | Б1.2; граничные значения; средний |
| Предусловия | Пользователь вошёл; база после сброса |
| Шаги | 1. «Добавить книгу»: название «Тест год 1449», год 1449, «Сохранить». 2. То же с названием «Тест год 1450» и годом 1450. |
| Ожидаемый результат | 1. Сообщение «Год издания — от 1450 до …», книга не добавлена. 2. Книга добавлена, в списке год 1450. |
Баг-репорты (заголовки — по правилу «что — где — при каком условии»):
Итог тест-отчёта: «Не выпускать: через API любой пользователь может удалить чужие книги. После исправления — выпускать, остальные дефекты на удобство».
| Пара | Что делаете | Разделы |
|---|---|---|
| 1 | Карта функций, требования-ориентиры, вопросы автору; тест-план; чек-лист | 03, 04, 11 |
| 2 | Тест-кейсы техниками тест-дизайна; прогон в браузере, через API, по базе; баг-репорты | 05–10 |
| 3 | Повторная проверка, если автор успел исправить; тест-отчёт; защита | 07, 11 |
Между парами работа продолжается дома. Если тестируете проект одногруппника — отдавайте баг-репорты сразу, не копите к концу: на третьей паре он успеет исправить, а вы — перепроверить.
Автор знает, как программой «правильно» пользоваться, и бессознательно обходит её слабые места. Несколько приёмов против этого:
| Ошибка | Как должно быть |
|---|---|
| Чек-лист из пунктов «Проверить форму», «Проверить поиск» | Одна проверка — одно действие и один ожидаемый результат: «Поиск по части фамилии автора находит книгу» |
| Все тест-кейсы позитивные | Классы и границы, таблица решений, переходы состояний — у каждого тест-кейса указана техника |
| Ожидаемый результат «работает корректно» | Конкретно: текст сообщения, число в списке, состояние в базе |
| Баг-репорт «не работает поиск» | Шаги с данными, факт и ожидание, требование, окружение, серьёзность |
| Тест-отчёт — пересказ того, что делали | Рекомендация в начале, числа прогона, открытые дефекты, что не проверено и чем это грозит |
| Статусы прогона расходятся с трекером | У каждого «не прошла» — номер баг-репорта, числа отчёта сходятся с таблицей |