БесплатноБесплатный прототип ключевой страницы и черновик ТЗ при старте проекта

Регрессионное тестирование после доработок

Регрессионное тестирование после доработок интернет-магазина на 1С-Битрикс

Разработчик поправил расчёт скидок — задача на пару часов, всё выкатили в пятницу вечером. В понедельник выясняется, что с субботы не оформляется ни один заказ: правка скидок задела общий код корзины. Выходные потеряны, заказы тоже. Знакомая история для любого живого проекта на 1С-Битрикс — и ровно от неё защищает регрессионное тестирование.

Разберём, как выстроить регрессию после доработок на 1С-Битрикс: почему в нём всё так легко ломается, какие сценарии проверять в первую очередь, как собрать чек-лист, где нужны автотесты и staging, и как встроить всё это в релизы. Если доработок много и хочется системного порядка, поможет наша услуга аудита и оптимизации 1С.

Коротко

  • Регрессия проверяет, что новые доработки не сломали уже работавший функционал.
  • В Битрикс всё связано событиями и общим кодом, поэтому правка в одном месте ломает соседнее.
  • В первую очередь тестируют критичный путь к деньгам: корзину, оформление, оплату, обмен с 1С.
  • Обязательны staging-стенд, проверка журнала событий и встраивание регрессии в каждый релиз.

Что такое регрессия и зачем она нужна

Регрессионное тестирование — это проверка того, что новые изменения не сломали то, что раньше работало. Слово «регрессия» означает откат к худшему состоянию: вы добавили функцию, а вместе с ней случайно вернули или создали баг в другом месте. Задача регрессии — поймать такие побочные поломки до того, как их найдут клиенты.

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

Почему в Битрикс всё легко ломается

1С-Битрикс — сильно связанная система, и это делает регрессию особенно важной. Причин, по которым правка в одном месте ломает другое, несколько:

Классический пример: доработали расчёт скидок, а перестало работать оформление заказа, потому что оба сценария опираются на общий код. Именно поэтому регрессия проверяет сквозные сценарии целиком, а не только изменённый файл. Архитектурные риски связанности мы разбираем в статье про разработку собственного модуля Битрикс.

Пайплайн релиза: от кода до мониторинга Кодветка, коммитТестыавтопроверкиСборкаартефактДеплойна боевойМониторингошибки, метрики
Схема: каждое изменение проходит автотесты и сборку, безопасно выкатывается на боевой сервер, а мониторинг сразу показывает ошибки и метрики — откат под рукой.

Критичные сценарии e-commerce

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

СценарийЧто проверяемЦена поломки
Поиск и карточкаТовар находится, открывается, цена и наличие верныКлиент не доходит до корзины
КорзинаДобавление, изменение количества, пересчёт суммыЗаказ не собирается
Оформление заказаДоставка, оплата, создание заказаПрямая потеря выручки
ОплатаУспешная оплата и возврат на сайтДеньги не проходят
Обмен с 1СЗаказ уходит в учёт, статусы возвращаютсяЗаказы теряются в никуда
Авторизация и ценыВход, группы клиентов, их ценыКлиент видит не свою цену
Принцип приоритета: сначала проверяют то, что стоит денег. Красивая анимация или сноска в футере подождут — а вот неработающее оформление заказа или сломанный обмен с 1С нужно ловить в первую очередь.

Чек-лист регрессии: с чего начать

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

  1. Соберите критичный путь. Опишите шаги от поиска товара до успешного заказа и обмена с 1С.
  2. Добавьте ключевые роли. Гость и авторизованный клиент своей группы видят правильные цены и условия.
  3. Включите деньги. Оплата, скидки, доставка, итоговые суммы — то, где ошибка стоит дороже всего.
  4. Зафиксируйте ожидаемый результат. Для каждого шага — что должно произойти, чтобы проверка была однозначной.
  5. Держите чек-лист живым. После каждого инцидента добавляйте сценарий, который его бы поймал.

Такой чек-лист превращает регрессию из «потыкали и вроде работает» в воспроизводимую процедуру. Со временем самые повторяемые пункты становятся кандидатами на автоматизацию.

Ручное тестирование и автотесты

Регрессию можно вести руками или автоматизировать — выбор зависит от размера проекта и частоты релизов, и это не «или-или», а баланс.

На старте и при редких доработках достаточно ручного прогона по чек-листу: тестировщик проходит критичные сценарии перед выкладкой. Когда релизов много, ручная проверка становится узким местом и начинает пропускать баги из-за усталости. Тогда автоматизируют самые важные и повторяемые сценарии — прежде всего критичный путь покупки. Оптимальная схема: автотесты на стабильный критичный путь плюс ручная проверка нового и сложного функционала, который ещё меняется. Автоматизацию удобно связывать с процессом деплоя, о котором мы пишем в статье про CI/CD и деплой Битрикс.

Staging-стенд как обязательное условие

Тестировать доработки на боевом сайте — значит проверять их на живых клиентах и их заказах. Поэтому обязательное условие нормальной регрессии — staging-стенд, копия продакшна, где обкатывают изменения до выкладки.

На staging проверяют и новый функционал, и регрессию критичных сценариев, ловят ошибки и только потом выкатывают в прод. Чтобы проверка была честной, стенд должен быть максимально похож на боевой: те же данные каталога, настройки обмена с 1С, версии платформы и модулей. Стенд, который отличается от прода, даёт ложное спокойствие — «на тесте работало, на бою упало». Организацию таких окружений мы разбираем в материале про хостинг и инфраструктуру на BitrixVM.

Журнал событий и отладка

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

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

Тестирование обмена с 1С

Обмен с 1С — один из самых хрупких узлов, и его тестируют отдельно и внимательно. Доработки, затрагивающие свойства товаров, цены или структуру заказа, особенно легко ломают формат обмена, а поломка часто вылезает не сразу.

На staging прогоняют полный цикл обмена и сверяют данные, а на бою следят за журналом и очередями. Поскольку обмен часто идёт через API и внешние системы, полезно проверять и безопасность интеграции — эту тему мы разбираем в статье про REST, вебхуки и безопасность в Битрикс.

Регрессия в процессе релизов и CI/CD

Регрессия работает, когда она обязательный этап релиза, а не разовая акция «когда вспомнили». Типовой цикл выглядит так: доработка на отдельной ветке, деплой на staging, прогон чек-листа регрессии и проверка журнала, релиз в продакшн, постпроверка на бою.

При частых релизах часть проверок автоматизируют и запускают через CI/CD: автотесты критичного пути стартуют при деплое, и релиз не проходит, если они падают. Это снимает человеческий фактор и ускоряет выпуск. Главное правило — ни одна доработка не уходит в прод без регрессии критичных сценариев, каким бы «мелким» ни казалось изменение. Настройку такого конвейера мы разбираем в материале про CI/CD и деплой Битрикс.

Постпроверка на боевом сайте

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

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

Частые ошибки

Чек-лист внедрения процесса

  1. Собран чек-лист регрессии. Критичный путь покупки, роли клиентов, деньги и обмен с 1С с ожидаемым результатом.
  2. Есть staging. Стенд-копия прода с теми же данными, обменом и версиями.
  3. Определён баланс проверок. Автотесты на стабильный критичный путь, ручная проверка нового.
  4. Журнал в процессе. Проверка журнала событий — обязательный шаг после прогона.
  5. Обмен тестируется отдельно. Полный цикл обмена с 1С проверяется на staging и мониторится на бою.
  6. Регрессия в релизе. Ни одна доработка не уходит в прод без прохождения регрессии, при частых релизах — через CI/CD.
  7. Постпроверка и откат. После выкладки смоук на бою и готовый план быстрого отката.

Вывод

Регрессионное тестирование — это страховка выручки от собственных доработок. В сильно связанной системе 1С-Битрикс правка в одном месте легко ломает другое через общий код, события и обмен с 1С, поэтому проверять нужно не только изменённое, но и критичные сквозные сценарии целиком.

Соберите чек-лист критичного пути к деньгам, заведите staging-стенд, не забывайте про журнал событий и отдельно тестируйте обмен с 1С — и встройте всё это в каждый релиз, а при частых выкладках подключите автотесты и CI/CD. Тогда доработки перестанут быть лотереей, а релизы будут проходить без сюрпризов в выходные.

Частые вопросы

Что такое регрессионное тестирование простыми словами?

Это проверка того, что новые доработки не сломали уже работавший функционал. Вы добавили новую фичу или поправили одно место, а регрессионное тестирование убеждается, что корзина, оформление заказа, оплата и обмен с 1С по-прежнему работают. Название от слова «регрессия» — откат к худшему состоянию. Цель — поймать побочные поломки до того, как их обнаружат клиенты на боевом сайте.

Зачем оно нужно, если доработка касается одного места?

Потому что в 1С-Битрикс всё связано: события, обработчики, общие компоненты, кэш, обмен с 1С. Правка в одном модуле легко ломает соседний через общий код или событие. Классический пример — доработали скидки, а сломалось оформление заказа, потому что оба используют работу с корзиной. Регрессия проверяет критичные сквозные сценарии целиком, а не только изменённый кусок.

Можно ли обойтись ручным тестированием или нужны автотесты?

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

Какие сценарии проверять в интернет-магазине в первую очередь?

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

Зачем нужен staging-стенд для регрессии?

Чтобы тестировать доработки на копии боевого сайта до выкладки, а не на живых клиентах. На staging проверяют и новый функционал, и регрессию критичных сценариев, ловят ошибки и только потом выкатывают в продакшн. Стенд должен быть максимально похож на боевой: те же данные каталога, настройки обмена, версии. Тестирование прямо на проде — прямой путь к потерянным заказам.

Как журнал событий Битрикс помогает при тестировании?

Журнал событий фиксирует ошибки ядра, агентов, обмена и почты. После доработки и прогона сценариев в него заглядывают: даже если внешне всё работает, там могут копиться ошибки обмена с 1С, исключения в обработчиках или проблемы прав. Журнал — быстрый способ увидеть скрытые поломки, которые не видны на витрине, но проявятся позже. Его проверка — обязательный шаг регрессии.

Как тестировать обмен с 1С после доработок?

Обмен — один из самых хрупких узлов, поэтому его проверяют отдельно: выгрузку каталога, обновление цен и остатков, передачу заказов в 1С и возврат статусов. На staging прогоняют полный цикл обмена и сверяют данные, а на бою следят за журналом и очередями. Особенно внимательно — после доработок, затрагивающих свойства товаров, цены или структуру заказа, ведь они легко ломают формат обмена.

Как встроить регрессию в процесс релизов?

Сделать её обязательным этапом перед выкладкой, а не разовой акцией. Типовой цикл: доработка на ветке, деплой на staging, прогон чек-листа регрессии и проверка журнала, только потом релиз в продакшн и постпроверка на бою. При частых релизах это связывают с CI/CD, чтобы часть проверок запускалась автоматически. Главное — чтобы ни одна доработка не уходила в прод без регрессии критичных сценариев.

Поделиться:

Устали от поломок после доработок?

Выстроим регрессию, staging и процесс релизов для вашего проекта на 1С-Битрикс, чтобы обновления не ломали продажи. Проведём аудит и предложим план.

Аудит и оптимизация 1С

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем и сопровождаем проекты на 1С-Битрикс: выстраиваем тестирование, staging и релизы так, чтобы доработки не превращались в потерянные заказы.

← Все статьи блога