Как начать внедрение автоматизированного тестирования в 1С и какие инструменты выбрать

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Основные направления тестирования в 1С

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

  1. Модульное тестирование (Unit-тесты) — проверка отдельных процедур и функций в коде.
  2. Сценарное тестирование (UI-тесты) — имитация действий пользователя в интерфейсе программы.
  3. Дымовое тестирование (Smoke-тесты) — быстрая проверка того, что основные формы открываются и система хотя бы «запускается».

Vanessa Automation: лидер сценарного тестирования

Рассмотрим подробнее инструмент Vanessa Automation. Это наиболее популярное решение, которое выросло из проекта Vanessa Behavior. Оно базируется на методологии BDD (Behavior-Driven Development) — разработке через поведение.

Особенность этого подхода заключается в использовании языка Gherkin. Это человекочитаемый формат описания сценариев. Проанализируем пример того, как выглядит типичный тест на этом языке:


Функционал: Проверка создания документа "Заказ покупателя"

Сценарий: Создание нового заказа
    Дано: Я открываю основное окно
    И: Я перехожу к списку документов "Заказы покупателей"
    Когда: Я нажимаю кнопку "Создать"
    Тогда: Открылось окно "Заказ покупателя (создание)"
    И: Я ввожу текст "Основной склад" в поле "Склад"
    И: Я нажимаю кнопку "Провести и закрыть"

Выясним причину популярности этого инструмента. Во-первых, такие сценарии могут писать не только программисты, но и аналитики. Во-вторых, Vanessa Automation позволяет «накликивать» тесты: вы просто выполняете действия в 1С, а система сама генерирует код сценария. Это значительно снижает порог входа для новичков.

Инструменты для модульного тестирования

Если Vanessa отвечает за интерфейс, то для проверки внутренней логики (например, сложных расчетов в общих модулях) потребуются другие инструменты. Рассмотрим два основных варианта:

  1. xUnitFor1C — классический фреймворк, ставший стандартом де-факто. Он позволяет создавать наборы тестов внутри самой информационной базы или во внешних обработках.
  2. YAxUnit — современный фреймворк, который активно развивается и ориентирован на высокую скорость выполнения и удобную интеграцию с современными инструментами разработки.
  3. UnitTest Runner — открытый проект на GitHub, который предоставляет простую среду для запуска тестов и анализа результатов.

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

Методология внедрения: с чего начать?

Посмотрим на практические советы по внедрению автоматизации в компании. Специалисты рекомендуют начать с изучения «Пособия для релиз-инженера» от команды Silverbulleters. В нем подробно описан жизненный цикл разработки и место тестирования в нем.

Выделим основные этапы внедрения:

  1. Настройка окружения. Для работы современных инструментов вам понадобится OneScript — интерпретатор языка 1С, который позволяет запускать скрипты автоматизации вне платформы.
  2. Статический анализ кода. Прежде чем запускать автотесты, внедрим проверку кода на соответствие стандартам. Для этого используем BSL Language Server или плагины для SonarQube. Это поможет найти опечатки и потенциальные ошибки еще на этапе написания кода.
  3. Дымовые тесты. Настройте автоматическое открытие всех форм конфигурации. Это самый дешевый способ найти ошибки, возникающие при обновлении платформы или метаданных.
  4. Критические сценарии. Не пытайтесь покрыть тестами 100% функционала сразу. Начните с самых важных участков: проведение заказов, расчет зарплаты, закрытие периода.

Техническая база: OneScript и Vanessa Runner

Разберем техническую сторону запуска. Для интеграции в процесс разработки (CI/CD) часто используется Vanessa Runner. Это консольная утилита, которая позволяет запускать тесты без участия человека. Рассмотрим пример команды для запуска тестов из консоли:

vrunner run --path ./features --connection "File=./build/ib;Usr=Администратор;"

Использование таких инструментов позволяет встроить тестирование в GitLab CI или Jenkins. Это значит, что при каждой загрузке кода в хранилище система автоматически проверит его на ошибки.

Экономика тестирования: стоит ли оно того?

Самый частый вопрос: «Стоит ли тратить время на тесты, если их разработка занимает столько же времени, сколько сам проект?». Проанализируем ответ опытных разработчиков.

Затраты на тестирование целесообразны, если:

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

Автоматическая генерация документации

Интересной особенностью Vanessa Automation является возможность превращать тесты в инструкции для пользователей. Поскольку сценарии пишутся на человеческом языке, программа может в процессе прохождения теста делать скриншоты и собирать их в HTML или PDF файл. Таким образом, у вас всегда будет актуальная документация, которая обновляется вместе с кодом.

Заключение

Подводя итог, можно сказать, что внедрение автоматизированного тестирования — это не просто выбор инструмента, а изменение культуры разработки. Начните с малого: изучите возможности Vanessa Automation, настройте статический анализ кода и постепенно покрывайте тестами самые критичные участки вашей системы. Это инвестиция, которая окупается стабильностью системы и спокойствием команды во время релизов.

← На главную