Регрессионное тестирование сайта на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Регрессионное тестирование сайта на 1С-Битрикс
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Регрессионное тестирование сайта на 1С-Битрикс

Обновление ядра Битрикс с версии 23.x до 24.x, установка нового модуля из Маркетплейса, изменение PHP с 8.1 до 8.2 — любое из этих действий способно тихо сломать что-то, что работало месяцами. Регрессионное тестирование — это систематическая проверка, что после изменений старый функционал продолжает работать. На Битрикс-проектах оно особенно важно из-за частых обновлений ядра (релизы выходят еженедельно) и обилия точек расширения через события и агенты.

Что ломается при обновлениях Битрикс

Практика показывает несколько устойчивых паттернов регрессий.

Устаревшие методы ядра. Битрикс методично помечает методы как deprecated и через несколько версий удаляет. Проблема — в легаси-коде /local/, написанном на старом API D6:

// Устаревший код D6 (ломается при обновлениях)
$el = new CIBlockElement();
$el->GetList([], ['IBLOCK_ID' => 5], false, false, ['ID', 'NAME']);

// Актуальный D7 ORM
\Bitrix\Iblock\ElementTable::getList([
    'filter' => ['=IBLOCK_ID' => 5],
    'select' => ['ID', 'NAME'],
]);

Конфликты шаблонов. После обновления компонентов Битрикс (модуль sale, catalog) шаблоны в /local/templates/ могут перестать совпадать с новой логикой компонента. Классический пример — изменение структуры $arResult в компоненте bitrix:catalog.section.

Агенты и планировщик. При обновлении ядра таблица b_agent иногда теряет флаги активных агентов или меняется сигнатура вызова. Проверяют после каждого крупного обновления:

SELECT name, active, last_exec, next_exec, agent
FROM b_agent
WHERE active = 'Y'
ORDER BY next_exec;

Структура регрессионного набора

Регрессионный набор для Битрикс-проекта разбивают на уровни:

Smoke-тесты (5–10 минут) — минимальный набор, запускается после каждого деплоя:

  • Открытие главной страницы (HTTP 200)
  • Добавление товара в корзину
  • Авторизация существующего пользователя
  • Оформление заказа (до шага оплаты)
  • Открытие административной панели

Базовый регресс (2–4 часа) — запускается перед каждым релизом:

  • Полный флоу оформления заказа с каждым типом доставки и оплаты
  • Умный фильтр с несколькими параметрами
  • Личный кабинет: история, редактирование профиля
  • Основные формы: обратный звонок, подписка, контакты

Полный регресс (1–2 дня) — при крупных обновлениях ядра или значительных изменениях кодовой базы.

Кейс: обновление ядра 23.700 → 24.100

Проект — интернет-магазин строительных материалов, ~15 000 SKU, CDEK + Почта России, ЮКасса + Сбер. После обновления ядра регрессионный прогон выявил:

  1. Умный фильтр перестал работать — причина: изменился формат параметров компонента bitrix:catalog.smart.filter, шаблон в /local/templates/ использовал удалённое свойство arResult['FORM_ATTRIBUTES']
  2. Email-уведомления об отмене заказа дублировались — событие OnOrderStatusChange вызывалось дважды из-за нового поведения в \Bitrix\Sale\Order::save()
  3. Агент синхронизации с 1С завис — новая версия PHP 8.2 выбрасывала TypeError при передаче null в strpos(), агент молча падал, таблица b_agent показывала его «активным»

Все три проблемы были пойманы до выкладки на продакшн именно потому, что регрессионный прогон запускался на staging-окружении с prod-дампом базы.

Инструментарий и автоматизация

Для автоматизации регрессионных тестов на Битрикс-проектах рекомендуется:

Playwright для UI-тестов с фиксацией скриншотов при ошибках:

// playwright.config.js
module.exports = {
    use: {
        baseURL: 'https://staging.shop.ru',
        screenshot: 'only-on-failure',
        video: 'on-first-retry',
    },
    retries: 1,
};

PHPUnit + BitrixTestCase для тестирования компонентов и хелперов. Запуск в CI/CD (GitHub Actions, GitLab CI) при каждом пуше в main:

# .gitlab-ci.yml
regression:
  stage: test
  script:
    - php vendor/bin/phpunit --testsuite=regression
    - npx playwright test --reporter=html
  artifacts:
    when: on_failure
    paths:
      - playwright-report/

Визуальное регрессионное тестирование с @playwright/test + плагин playwright-visual-comparisons — сравнение скриншотов ключевых страниц до и после обновления.

Сроки

Объём работ Срок
Составление регрессионного тест-плана 1–2 дня
Ручной регрессионный прогон (средний проект) 2–4 дня
Автоматизация smoke-тестов 2–3 дня
Автоматизация полного регресса 5–10 дней