Управление релизами и тестирование digital-проектов
Ключевые тезисы
- Релиз-менеджмент — это процедура подготовки проекта к запуску для реальных пользователей.
- Тестирование — многошаговый процесс, который начинается с проверки макетов и продолжается на всех этапах разработки.
- Раннее и итерационное тестирование экономит время и ресурсы, значительно снижая стоимость исправления ошибок.
- Автоматизированное тестирование — мощный инструмент, но не панацея; его применение зависит от контекста проекта.
Цель тестирования для менеджера
Цель модуля — не сделать из вас тестировщиков, а развить внимательность к мелочам, критичную для управленца. Пример: некорректное поведение курсора в форме или уязвимость к XSS-атаке — это вопросы, о которых должен думать менеджер.
Многоэтапный процесс тестирования
Тестировать нужно не только готовый код, но и макеты, вёрстку, отдельные задачи (спринты). Тестировщик опирается на чек-листы, утверждённые ТЗ/прототипы и, что важно, на здравый смысл.
Проверка макетов
Задача — убедиться, что дизайн соответствует постановке, не утеряны и не добавлены лишние функции.
- Метод «Светофора»: Покраска постановки задачи цветами: красный (ошибка), жёлтый (незначительное расхождение), зелёный (всё верно), серый («вода» в ТЗ), белый (ещё не проверено). Проверять нужно слово за словом.
Тестирование вёрстки
Задача — убедиться, что вёрстка соответствует макетам на разных устройствах и в браузерах.
- Инструменты: Плагины для наложения макета на страницу (например, PerfectPixel).
- Проблема: На больших проектах с несколькими дизайнерами единообразие отступов маловероятно.
- Решение: Создать общий гайдлайн по основным элементам и отступам, а не требовать пиксель в пиксель. Итоговое решение в спорных случаях — за менеджером.
- Дополнительные проверки: Валидность HTML-кода, скорость загрузки на медленном канале, адаптивность.
Тестирование на этапе разработки
Это этап, где накапливаются ошибки со всех предыдущих стадий.
- Планирование спринта: Тестировщик должен участвовать в обсуждении задач (например, в Planning Poker). Это обеспечивает единое понимание и развивает навык декомпозиции.
- Тест-кейсы (Test Case): Критерии проверки готовности задачи. Их пишут совместно тестировщик и разработчик на основе общего чек-листа и контекста конкретной задачи. Это снижает риски:
- Включения в тесты несанкционированных функций.
- Пропуска важных сценариев.
Итерационное тестирование в спринте
Команда выполняет часть задач, выкладывает на тестовый сервер → тестировщик проверяет → разработчики сразу чинят баги → цикл повторяется.
- Преимущества:
- Экономия 20-50% времени на тестирование и исправление ошибок.
- Снижение количества регрессий (повторных ошибок).
- Раннее обнаружение багов резко снижает стоимость их исправления (метафора: от «дольки шоколадки» до «100 шоколадок»).
- Сокращение «пинг-понга» (долгого выяснения контекста) между тестировщиком и разработчиком.
Завершающие этапы перед релизом
- Итоговое тестирование спринта (Smoke-тест): Проверка ключевого функционала «взглядом сверху» — убедиться, что «проект не дымится».
- Исследовательское тестирование (Black Box): Проверка проекта человеком, не знакомым с ним (например, другим менеджером). Цель — получить вопросы, которые мог бы задать дотошный пользователь или заказчик.
- Деплоймент и финальные проверки: Перенос на боевой сервер и проверка на нём (PageSpeed, внутренние мониторы качества CMS и т.д.).
Автоматизированное тестирование: обзор
Автоматизированное тестирование — выполнение тестов программными средствами без участия человека.
- Компоненты: Инструмент (ПО), тест-скрипт (инструкции), тестовый набор (suite).
- Инструменты: PHPUnit (модульное тестирование), Selenium IDE (запись действий в браузере), Selenium WebDriver (управление браузерами из кода для сложных тестов).
- Плюсы: Быстрое выполнение, автоматические отчёты.
- Минусы: Высокие затраты на разработку и поддержку скриптов, пропуск некоторых ошибок, отсутствие вариативности.
- Когда полезно: Длинные однообразные сценарии, проверка точных расчётов, критическая инфраструктура с высокой ценой ошибки.
Виды тестирования (терминология)
- Функциональное: Проверка внешнего поведения системы (соответствие ТЗ).
- Нефункциональное: Проверка того, как система работает (нагрузка, безопасность, удобство).
- Связанные с изменениями: Проверка после внесения правок (регрессионное, smoke-тест).
Выводы
Представленный цикл тестирования рассчитан на крупные проекты. Для небольших задач его необходимо упрощать, адаптируя под реальные нужды. Однако понимание полного цикла даёт уверенность в управлении большими и сложными digital-проектами.