Как стать автором
Обновить
SL Soft
Разработчик российских бизнес-приложений

Все намного проще! Пять легких шагов по оптимизации регресса

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.3K

Будем честны, регрессионное тестирование — не самая увлекательная часть работы. От спринта к спринту его объем растет, а время на прохождение увеличивается. Но необходимость регресса очевидна — достаточно взглянуть постфактум на все «криты и неотложки», от которых мы уберегли пользователей в своем последнем релизе. Оптимизация (пока вынесем автоматизацию за скобки и вернемся к ней позже) кажется логичным решением, но перспектива пересмотра сотен или тысяч кейсов может отпугнуть.

Меня зовут Михайлов Михаил, я работаю руководителем отдела тестирования в команде Polymatica BI. Недавно мне пришлось привести в порядок регрессионное тестирование, что позволило сделать его компактным и эффективным. Оказалось, что несколько простых действий кратно сократят время, необходимое на приведение в порядок регрессионного прогона. В этой статье разберем пять ключевых шагов.

С чего начать?

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

  • Классификация кейсов (по критичности, функциональным модулям и т. д.). Как распределены кейсы в регрессионной библиотеке?

  • Полнота покрытия (какие сценарии есть, а каких не хватает?).

  • Обновляемость (какие тест‑кейсы устарели или дублируются?).

Это позволит наметить себе конечную цель по всем улучшениям.

На примере Polymatica:

  • оказалось, что ~ 30% кейсов нам в принципе не нужны, еще небольшой процент пора актуализировать;

  • по итогу количество кейсов сократилось в два раза и стало оптимальнее;

  • исходя из того, как мы выстроили проверки, время на прохождение полного регресса стало более гибким — но об этом чуть позже:)

Шаг 1. Mind map: карты не врут

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

Mind map — незаменимый инструмент в оптимизации регрессии. Если вы еще не использовали их в тестировании — рекомендую. В двух словах — это визуальное представление приложения и его функциональности в виде блок‑схемы.

Независимо от размеров и сложности проекта (даже если вы знаете продукт досконально), mind map поможет:

  • выявить слабые места в тестовом покрытии,

  • наглядно увидеть связи между модулями,

  • структурировать регрессионные тесты, убрав дубли и неактуальные кейсы.

Я не считаю, что рационально ставить себе цель «зафиксировать на схеме каждый чих», достаточно переноса основных зависимостей, чтоб упростить дальнейшую оптимизацию регресса и (почти наверняка) открыть для себя новые сценарии и кейсы.

Без фанатизма: можно использовать чистую mind map или гибрид с пользовательскими флоу (особенно полезно для тестирования UX). Вести карту постоянно или обновлять раз в несколько спринтов — зависит от динамики изменений в продукте.

В нашей команде используем Figma, но для этой задачи подойдет любой редактор, в котором можно строить блок‑схемы (например, Miro, app.diagrams.net и тд). Поддерживать в актуальном состоянии желательно от релиза к релизу.

Пример карты для продукта Polymatica Analytics
Пример карты для продукта Polymatica Analytics

Шаг 2. Анализ падений: кто не падал, тот не вставал

Анализ частых падений — один из самых важных этапов оптимизации регрессии. Идея проста: выявляем наиболее проблемные места, которые чаще всего «сыпятся», и адаптируем тестовую стратегию.

  1. Выбираем N прошлых версий (лучше 3–5 последних, но можно варьировать в зависимости от релизного цикла).

  2. Проходимся по каждому регрессионному прогону, фиксируем все проваленные тест‑кейсы.

  3. Падения, встретившееся более одного раза, считаем постоянным и отмечаем у себя, чтобы учесть в дальнейшем.

  4. Дополнительно анализируем пропущенные тест‑кейсы (по тому же принципу) — так вы отсортируете часть неактуальных проверок или проверок, требующих доработки в предисловиях, шагах или где‑то еще.

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

Регулярно проводить такой анализ сложно, но даже разовая проверка поможет сделать регресс более точным и эффективным. Анализ частых падений — это маст‑хэв.

В Polymatica мы ведем кейсы в Test‑it и раз в спринт обновляем регресс на основе этого анализа.

Шаг 3. Глубина тестирования: на первый-второй рассчитайсь

Этот шаг является определяющим, поэтому предлагаю подойти к нему немного нестандартно. Представьте, что у нас есть книга «Маленький регресс» — краткая история без лишних деталей, только с ключевым сюжетом. По ней сняли два фильма:

  • полноценный фильм — расширенная версия книги, с дополнительными деталями и второстепенными персонажами,

  • ремейк — тот же фильм, но с еще большим количеством нюансов, которые не влияют на сюжет напрямую, но добавляют глубины.

Все это — книга, фильм и ремейк — об одном и том же, только в разном масштабе. Регресс работает так же: нам нужно уметь масштабировать тестирование в зависимости от времени, выделенного на предрелизный прогон. Все еще держите в голове пример из начала абзаца? В таком случае принцип, по которому я предложу разделить кейсы, вас не удивит.

Книга = smoke‑тестирование

Минимальный набор проверок: ключевые пользовательские сценарии и критические функции, без которых продукт просто не может работать. Без пройденного smoke‑прогона релиз не рекомендуется к выпуску.

Фильм = усеченный регресс

Smoke + дополнительные проверки, влияющие на пользовательский опыт (но не критичные для работы системы). Оптимальный баланс между скоростью и качеством.

Ремейк = полный регресс

Все кейсы, которые мы можем пройти за отведенное для этого время (и плюс оставляя хотя бы минимальное пространство для исследовательского тестирования).

Такой подход вместе с переприоритезацией, анализом частых падений и удалением неактуальных тестов (см. предыдущие шаги) поможет из разрозненного набора проверок сформировать структурированный и гибкий регресс‑набор.

Шаг 4. Автоматизация: как встроить в процесс?

Дисклеймер: тема автоматизации вызывает горячие споры. Одни представляют ее как волшебную палочку, которая сделает всю работу за тестировщика. Другие, особенно те, кто уже прошел этот путь, знают: «если где‑то прибыло, значит, где‑то убыло». Давайте оставим эти споры на потом (жду вас в комментариях!), а пока сосредоточимся на конкретике.

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

  • уже автоматизированные — их требуется поддерживать в актуальном состоянии;

  • кандидаты на автоматизацию — сценарии, которые можно проходить вручную, но было бы здорово автоматизировать;

  • не требующие автоматизации — сложные UX‑кейсы, редкие сценарии, нестабильные области продукта.

Да, это может быть неудобно для команды автотестеров, но актуализация регресса — вынужденная мера, и без нее процесс тестирования будет только усложняться, а потому все неудобства, идущие с ней в комплекте, принимаем как должное.

Автотесты в CI/CD — must‑have. Один из лучших способов оптимизировать регресс — интеграция автоматизированного smoke в CI/CD. Это значит, что ключевые ручки проверяются автоматически после каждого коммита.

Что это дает?

  • Моментальная обратная связь для разработчиков и тестировщиков.

  • Быстрое обнаружение критических проблем.

  • Снижение нагрузки на регрессионное тестирование перед релизом.

Шаг 5. Продолжайте продолжать

Выполнить оптимизацию регресса (особенно, если вы сделали это впервые ) — здорово. Но важно не только разово сформировать подходы по ведению нового регресс‑набора, но и придерживаться их, адаптируя по необходимости. Иначе результат будет напоминать ночной прилив мотивации, после которого весь следующий день хочется спать. Требуется выстроить процесс работы между ручниками и автотестерами, чтобы все понимали, что и в какую очередь будет автоматизировано (или уже автоматизировано), а новые кейсы не остались незамеченными.

Здесь лишь обозначу некоторые моменты, которые мы с командой стараемся держать на контроле, остальное — на ваше усмотрение:

  • при наличии времени или большого количества критов/падений желательно провести их анализ и учесть в следующем регрессе,

  • доработать кейсы, которые были отмечены статусом «требует доработки»,

  • учитывать теги, которые автотестеры оставляют в кейсах,

  • перед началом регресса или по его завершении нужно подсветить автотестерам кейсы по новым фичам, добавленным в этой версии.


Чем больше растет продукт, тем сложнее его покрытие тестами. В идеальном мире хочется тестировать все. В реальности — ставка делается на стабильную функциональность.

Как видите, дать вторую жизнь своему регрессионному набору на самом деле довольно легко. Пять простых шагов, и корабль, еще недавно лежавший на боку, снова рассекает волны под светом тающих звезд и, поймав попутный ветер, красиво уходит в сторону рассвета, торопясь к горизонту релиза…

За внимание спасибо, остаемся на связи!

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Публикации

Информация

Сайт
slsoft.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Дарья Шадрина

Истории