Новая версия пришла в пятницу вечером. Что проверять, сколько это займёт и когда сказать «выпускаем»
До этого раздела вы отрабатывали отдельные умения. В работе они складываются в цепочку, которая повторяется для каждой версии программы:
| Этап | Что делаем | Результат | Где в курсе |
|---|---|---|---|
| Анализ | Читаем требования и список изменений, задаём вопросы | Вопросы к требованиям, критерии приёмки | 03 |
| Планирование | Решаем, что и как тестируем, оцениваем время | Тест-план | 11 |
| Проектирование | Придумываем проверки техниками тест-дизайна | Чек-лист, тест-кейсы | 04–06 |
| Подготовка | Стенд, учётные записи, тестовые данные | Готовое окружение | 10 |
| Прогон | Выполняем проверки, отмечаем статусы | Заполненная таблица прогона, баг-репорты | 07–10 |
| Повторная проверка и регресс | Проверяем исправления и то, что могло сломаться | Закрытые или переоткрытые дефекты | 02, 11 |
| Отчёт | Подводим итог и даём рекомендацию | Тест-отчёт | 11 |
В маленькой команде всё это делает один человек за пару дней, и документы помещаются на одну-две страницы. Объём бумаг подбирают под проект: тест-план на 40 страниц для сайта-визитки никто не прочитает, а без плана вовсе команда узнаёт о том, что регресс не успели, в день выпуска.
Тест-план отвечает на вопросы руководителя и команды до начала работы: что проверяем, что нет, как, где, когда закончим и что может помешать. В шаблоне курса десять пунктов. Пример для версии 2.4 «Записи к врачу»:
| Пункт | Пример |
|---|---|
| 1. Объект | «Запись к врачу» 2.4, стенд test.example.ru. Изменения: отмена записи теперь не позже чем за 3 часа (было 2), новый календарь выбора даты, исправлено 6 дефектов |
| 2. Что тестируем | Запись (4.1), отмена (4.2), уведомления (4.5); повторная проверка 6 исправлений |
| 3. Что не тестируем | Нагрузку — нет стенда; оплату — не менялась, только smoke |
| 4. Подход | Smoke; тест-кейсы по требованиям 4.1, 4.2, 4.5; граничные значения для срока отмены; исследовательский проход нового календаря 1 час; регресс высокого приоритета |
| 5. Окружение | Chrome и Firefox последних версий, телефон на Android (Chrome); учётные записи patient1, patient2, admin; сброс данных — скрипт на стенде |
| 6. Критерии входа | Версия 2.4 установлена на стенд, список изменений получен, smoke пройден |
| 7. Критерии выхода | Все тест-кейсы высокого приоритета выполнены; нет открытых критических и серьёзных дефектов |
| 8. Сроки | 3 рабочих дня, 23 часа (расчёт — ниже), тестировщик Петрова |
| 9. Риски | Сборка опоздала — сокращаем регресс до высокого приоритета; стенд недоступен — сообщаем руководителю в тот же час |
| 10. Результаты | Чек-лист, тест-кейсы, баг-репорты в трекере, тест-отчёт |
Пункт 3 «Что не тестируем» важнее, чем кажется: он заранее договаривается о рисках. Если оплата сломается, а в плане написано «оплату проверяем только smoke, потому что она не менялась», — это решение команды, а не промах тестировщика.
Тест-план согласуют до начала прогона: показывают руководителю или разработчикам и правят по замечаниям. Меняется объём работы — меняется и план.
Вопрос «сколько займёт тестирование» задают всегда. Ответ «не знаю» не годится, «пару дней» — тоже: через пару дней спросят снова. Оценку собирают из частей:
| Этап | Расчёт | Часы |
|---|---|---|
| Изучение требований и изменений | 3 требования и список изменений | 2 |
| Чек-лист и тест-кейсы | 24 тест-кейса × 15 мин | 6 |
| Прогон | 24 тест-кейса × 10 мин | 4 |
| Баг-репорты | около 8 дефектов × 20 мин | 3 |
| Повторная проверка и регресс | 6 исправлений и регресс высокого приоритета | 3 |
| Тест-отчёт | 1 | |
| Итого | 19 ч + 20% запаса | 23 |
23 часа — примерно три рабочих дня одного тестировщика: в дне не 8 часов проверок, остальное съедают встречи и переписка. Оценку называют вместе с условиями: «три дня, если сборка будет на стенде в понедельник утром». Когда срок жёстче оценки, сокращают объём — и это решение записывают в пункт 3 тест-плана.
Критерии входа — условия, без которых прогон начинать бессмысленно. Если smoke не прошёл (не открывается страница входа), три дня по плану уйдут на ожидание исправлений. Версию возвращают разработчикам с одним баг-репортом, а не начинают прогон.
Критерии выхода — когда тестирование версии закончено. Их пишут измеримыми, чтобы спор «готово или нет» решался проверкой, а не мнением:
| Плохо | Хорошо |
|---|---|
| Всё протестировано | Все тест-кейсы высокого приоритета выполнены, остальные — не меньше 80% |
| Нет серьёзных багов | Нет открытых дефектов критической и серьёзной серьёзности |
| Регресс пройден | Регрессионный набор выполнен, все повторные проверки исправлений закрыты |
| Заказчик доволен | Критерии приёмки требований 4.1, 4.2, 4.5 выполнены |
Есть и критерий остановки по времени: срок вышел, а критерии выхода не выполнены. Тогда тестирование не продлевают молча — пишут отчёт с тем, что успели, и решение о выпуске принимает руководитель.
Прогон — выполнение набора проверок на конкретной версии в конкретном окружении. Для прогона копируют таблицу тест-кейсов или чек-лист и заполняют столбец «Статус» (в шаблонах курса — выпадающий список):
| Статус | Когда ставить |
|---|---|
| прошла | Фактический результат совпал с ожидаемым |
| не прошла | Не совпал; в столбце «Дефект» — номер баг-репорта |
| заблокирована | Проверку нельзя выполнить: мешает другой дефект или нет окружения. Указать, чем заблокирована |
| не проверялась | Сознательно пропущена: не хватило времени или исключена из прогона |
Правила, которые экономят время при отчёте:
Итог прогона — несколько чисел. Пример: из 24 тест-кейсов прошли 17, не прошли 4, заблокированы 2, не проверялся 1. Выполнено 21, из них прошли 17 — 81%. Число без контекста мало что говорит: 4 не прошедших тест-кейса могут быть опечатками, а могут — невозможностью записаться к врачу. Поэтому в отчёте рядом с числами — список открытых дефектов по серьёзности.
Покрытие требований видно по листу «Трассировка» шаблона тест-кейсов: у каждого требования — тест-кейсы и итог. Требование без тест-кейсов — пробел в плане или требование, которое нельзя проверить.
С новой версией приходит список изменений (release notes): что исправлено и что добавлено. По нему составляют два набора проверок (понятия — из раздела 02):
Полный регресс — все тест-кейсы — обычно не помещается в срок. Набор выбирают по анализу влияния: для каждого изменения спрашивают «что ещё использует то, что поменяли?».
| Изменение в 2.4 | Повторная проверка | Регресс рядом |
|---|---|---|
| Отмена записи — не позже чем за 3 часа (было 2) | Новые границы: 3 ч 01 мин, 3 ч 00 мин, 2 ч 59 мин. Старые тест-кейсы с границей 2 часа переписать | Уведомление об отмене; интервал снова свободен; отмена администратором |
| Исправлен BUG-31 (кнопка отмены видна, когда отменять уже нельзя) | Шаги BUG-31 | Остальные случаи отмены — правка была в том же месте |
| Новый календарь выбора даты | — | Все формы с датой: запись, перенос, фильтр истории; телефон; второй браузер; клавиатура |
| Оплата не менялась | — | Только smoke: одна успешная оплата |
К набору по анализу влияния добавляют постоянную часть: smoke и тест-кейсы высокого приоритета. Они ловят регрессии там, куда список изменений не указывает: разработчик мог поменять общий код и не упомянуть это, потому что «ничего не должно было измениться».
Тест-отчёт отвечает на вопрос «можно выпускать?» и объясняет ответ. Его читают руководитель, разработчики, иногда заказчик, поэтому главное — в начале. Пункты шаблона курса и пример:
| Пункт | Пример |
|---|---|
| 1. Что тестировали | «Запись к врачу» 2.4, 10–12 ноября, Chrome 130, Firefox 132, Android 14 |
| 2. Итог одной фразой | Выпускать после исправления BUG-44: пациенты не смогут отменить запись с телефона |
| 3. Результаты прогона | 24 тест-кейса: прошли 17, не прошли 4, заблокированы 2, не проверялся 1 |
| 4. Найденные дефекты | Найдено 7: серьёзный 1 (BUG-44), средних 4, незначительных 2. Открыт серьёзный BUG-44 |
| 5. Что не проверено | Перенос записи в Firefox — заблокирован BUG-41; уведомления по SMS — стенд не отправляет SMS |
| 6. Повторная проверка и регресс | Исправлений 6: подтверждено 5, BUG-31 исправлен частично (возвращён). Регрессия: BUG-44 |
| 7. Риски выпуска | Без исправления BUG-44 пациенты с телефона звонят в регистратуру, чтобы отменить запись; SMS-уведомления не проверены |
Рекомендация — работа тестировщика, решение о выпуске — работа руководителя. Отчёт даёт ему факты для решения: что сломано, чем это грозит пользователям, что не проверено.
Руководителю, который не будет открывать трекер, пишут короче и без техники — через последствия для пользователей и бизнеса:
Тема: Запись к врачу 2.4 — готова к выпуску после одного исправления
Проверили версию 2.4 за три дня. Новый срок отмены и календарь работают.
Мешает выпуску одна ошибка: с телефона нельзя отменить запись — пациенты
будут звонить в регистратуру. Разработчики оценили исправление в полдня,
повторная проверка — час. Не проверены SMS-уведомления: на тестовом стенде
они не отправляются, проверим в первый день после выпуска.
Подробный отчёт — во вложении.
Таблицы курса — рабочий инструмент для одного тестировщика и одного проекта. Когда тестировщиков несколько, прогонов много и нужна их история, переходят на систему управления тестированием (TMS, test management system):
| Система | Что важно знать |
|---|---|
| Test IT | Российская; есть облако и установка на свой сервер — частый выбор компаний, которым нужен отечественный софт |
| Qase | Облачная, есть бесплатный тариф для небольшой команды |
| TestRail | Давно на рынке, часто встречается в вакансиях; платная |
Для зарубежных облачных сервисов проверяйте, доступны ли регистрация и оплата из России и можно ли хранить там данные проекта. Поля в любой TMS те же, что в шаблонах курса: предусловия, шаги, ожидаемый результат, приоритет, статус прогона. Тот, кто умеет вести прогон в таблице, освоит любую из них за день.