Как организовать и использовать автоматизированное тестирование в 1С:Предприятие 8.3?

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

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

Функциональное и статическое тестирование: в чем разница?

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

  1. Статический анализ кода: Этот процесс подразумевает проверку конфигурации на соответствие стандартам разработки 1С. Программа сканирует код, структуру метаданных и выявляет ошибки без реального запуска бизнес-процессов. Именно об этом шла речь, когда упоминались десятки тысяч ошибок в типовых конфигурациях. Основной инструмент здесь — 1С:Автоматизированная проверка конфигураций (АПК).
  2. Функциональное (сценарное) тестирование: Это имитация работы реального человека. Система программно открывает формы, заполняет реквизиты, нажимает кнопки «Провести и закрыть» и проверяет, создались ли нужные движения в регистрах. Это помогает убедиться, что логика программы не сломалась после внесения изменений.

Рассмотрим ситуацию, когда нам нужно проверить именно поведение программы. Для этого в платформе 1С 8.3 предусмотрен специальный механизм Test Client и Test Manager.

Встроенный механизм платформы: Менеджер и Клиент тестирования

Начиная с версии 8.3, в платформу интегрированы средства, позволяющие одной базе управлять сеансом другой базы. Разберем по шагам, как это работает:

Тестовое приложение (Test Client): Это обычный сеанс 1С, который запускается со специальным ключом /TESTCLIENT. В этом сеансе платформа «слушает» внешние команды и исполняет их, имитируя интерактивные действия.

Менеджер тестирования (Test Server / Manager): Это сеанс, запущенный с ключом /TESTMANAGER. Именно здесь пишется и выполняется программный код, который отдает команды клиенту. Рассмотрим пример кода, который может быть выполнен в менеджере тестирования для управления формой:


// Пример управления клиентом тестирования из менеджера
Процедура ПроверитьСозданиеКонтрагента()
    // Подключаемся к запущенному клиенту
    Соединение = Новый ТестируемоеПриложение();
    Соединение.УстановитьСоединение();
    
    // Открываем справочник
    ФормаСписка = Соединение.НайтиОбъект(Тип("ТестируемаяФорма"), "Справочник.Контрагенты.ФормаСписка");
    ФормаСписка.ВыполнитьКоманду("Создать");
    
    // Работаем с формой создания
    ФормаЭлемента = Соединение.НайтиОбъект(Тип("ТестируемаяФорма"), "Справочник.Контрагенты.ФормаОбъекта");
    ФормаЭлемента.ЗаполнитьЗначение("Наименование", "Тестовый Контрагент");
    ФормаЭлемента.ЗаполнитьЗначение("ИНН", "1234567890");
    
    // Нажимаем кнопку записи
    ФормаЭлемента.ВыполнитьКоманду("ЗаписатьИЗакрыть");
КонецПроцедуры

Важно помнить, что данный механизм работает исключительно с управляемыми формами. Если ваша конфигурация построена на обычных формах (например, старые версии УПП или Бухгалтерии), стандартные средства платформы вам не подойдут. В этом случае придется использовать внешние WinAPI-обертки, что значительно усложняет разработку.

Современные инструменты автоматизации: Vanessa Automation и Сценарное тестирование

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

  1. Vanessa Automation: Это наиболее мощный инструмент с открытым исходным кодом. Он использует методологию BDD (Behavior Driven Development). Сценарии пишутся на языке Gherkin, который понятен даже бизнес-аналитику. Выглядит это примерно так: "Допустим, я открываю форму справочника Номенклатура", "И я нажимаю кнопку Создать". Система сама транслирует эти фразы в команды 1С.
  2. 1С:Сценарное тестирование: Официальный продукт от вендора. Он позволяет записывать действия пользователя в режиме «макроса»: вы просто работаете в программе, а инструмент записывает ваши клики и ввод текста, превращая их в цепочку шагов теста.

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

Интеграция в процесс разработки (CI/CD)

Автоматизированное тестирование приносит максимальную пользу, когда оно встроено в процесс непрерывной интеграции. Рассмотрим типичный цикл работы команды:

Программист вносит изменения в код и помещает их в хранилище. В этот момент сервер сборки (например, Jenkins или GitLab) автоматически выполняет следующие действия:

  1. Запускает проверку через АПК (статический анализ). Если найдены критические нарушения стандартов, сборка останавливается.
  2. Разворачивает временную базу из хранилища.
  3. Запускает Vanessa Automation или Сценарное тестирование.
  4. Выполняет набор тестов (Smoke-тесты, проверка критического функционала).
  5. Формирует отчет об ошибках. Если тесты не прошли, релиз считается неудачным, и разработчик получает уведомление.

Такой подход позволяет выявлять ошибки на ранних стадиях, не доводя их до конечного пользователя. Хотя на первый взгляд реализация кажется сложной, использование готовых инструментов, таких как Vanessa-ADD, значительно упрощает старт.

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

← На главную