К статье
Практический материал

Автоматизация · 11 мин

Автотест в 1С: что это и как его применять

Автотест в 1С — что это такое, как работает автоматизированное тестирование, какие инструменты использовать и как внедрить проверки без риска для рабочей базы.

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

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

При этом автотест — не замена ручной проверке, а дополнение к ней. Он отлично справляется с повторяющимися регламентными проверками, но не оценит удобство интерфейса и не найдёт ошибку там, где сценарий не написан.

Что такое автотест в 1С и как он устроен

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

По способу взаимодействия с системой тесты делятся на два типа. Первый — вызов кода напрямую: тест обращается к объектам базы (документам, регистрам, справочникам) через встроенный язык, минуя интерфейс. Такие проверки быстрые и стабильные. Второй тип — интерфейсные тесты, которые имитируют нажатия кнопок и заполнение полей формы, как это делает пользователь. Они медленнее и чувствительнее к изменениям форм, но проверяют систему «целиком».

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

Какие инструменты используются для автотестов

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

ИнструментТип тестовКогда применять
Vanessa AutomationСценарные, через интерфейсПроверка бизнес-процессов глазами пользователя; сценарии пишутся на понятном языке Gherkin
xUnitFor1CМодульные, вызов кодаТестирование процедур, функций, проведения документов без интерфейса
Тестер (1С:Сценарное тестирование)СценарныеКоммерческое решение для записи и воспроизведения действий пользователя
Vanessa ADDМодульные и поведенческиеРазработка через тестирование (TDD/BDD) в связке с EDT

Наиболее распространённый вариант для старта — Vanessa Automation: сценарии описываются почти обычным текстом («Когда я создаю документ», «Тогда в таблице появляется строка»), поэтому их могут писать не только программисты, но и аналитики. Для проверки внутренней логики — расчёта налогов, формирования проводок, заполнения регистров — удобнее xUnitFor1C.

Какой подход выбрать

Тесты через интерфейс

Проверяют систему целиком, включая формы и права доступа. Медленные, ломаются при изменении интерфейса

Модульные тесты кода

Быстрые и стабильные, проверяют только логику. Не замечают ошибок в формах и интерфейсе

Комбинированный подход

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

Какие задачи проверять автотестами в первую очередь

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

Кандидаты первой очереди:

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

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

Как написать и запустить первый автотест

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

Общий порядок действий не зависит от выбранного инструмента:

Порядок внедрения первого автотеста
  1. 1
    Разверните копию рабочей базы в отдельном контуре для тестирования
  2. 2
    Установите выбранный инструмент (например, Vanessa Automation) и проверьте запуск на демо-сценарии
  3. 3
    Опишите один критичный бизнес-процесс в виде пошагового сценария
  4. 4
    Добавьте в сценарий проверки: какие остатки, проводки или значения должны получиться
  5. 5
    Запустите тест, добейтесь стабильного прохождения три-четыре раза подряд
  6. 6
    Настройте регулярный автоматический запуск после каждого обновления тестовой базы

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

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

Как проверить, что автотесты работают правильно

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

Простой приём — намеренно сломать логику (например, временно изменить формулу расчёта) и убедиться, что тест упал с понятным сообщением. Если тест проходит и при ошибке — он бесполезен и требует доработки.

Контрольные точки

Как проверить качество автотеста

Стабильность
Норма

Тест проходит 5+ раз подряд без вмешательства

Тревожный признак

Падает случайным образом при тех же данных

Чувствительность к ошибкам
Норма

Падает при намеренной поломке логики

Тревожный признак

Проходит даже при неверном результате

Независимость от данных
Норма

Сам создаёт и очищает свои данные

Тревожный признак

Требует ручной подготовки базы перед запуском

Скорость прогона
Норма

Модульный тест — секунды, сценарный — минуты

Тревожный признак

Один тест выполняется десятки минут

Типичные ошибки при внедрении автотестов

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

Типичные ошибки
01
Запуск тестов в рабочей базе — появляются мусорные документы и искажаются остатки
02
Хрупкие сценарии с привязкой к конкретным данным — тесты падают после каждого обновления копии
03
Отсутствие владельца тестов — сценарии устаревают, на их падения перестают реагировать
04
Попытка покрыть всё сразу — ресурсы тратятся на поддержку второстепенных проверок
05
Игнорирование упавших тестов — через месяц красные прогоны становятся нормой, и смысл тестирования теряется

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

Автотесты или ручная проверка: как распределить роли

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

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

Маршрут решения

Как выбрать действие

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

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

Нужно ли уметь программировать, чтобы писать автотесты в 1С?

Для сценарных инструментов вроде Vanessa Automation глубокие навыки программирования не обязательны: сценарии описываются шагами на структурированном языке, близком к обычному тексту. Но базовое понимание логики 1С и устройства конфигурации потребуется. Модульные тесты на xUnitFor1C пишутся на встроенном языке 1С, поэтому там нужен разработчик.

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

Категорически нет. Тесты создают, изменяют и удаляют документы и записи справочников, что исказит реальный учёт. Все прогоны выполняются только в копии базы или специально подготовленном тестовом контуре.

Сколько времени занимает внедрение автотестов?

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

Что делать, если автотест стал падать после обновления конфигурации?

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

Подходят ли автотесты для типовой конфигурации без доработок?

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

Чем автотест отличается от обработки проверки данных?

Обработка проверки анализирует уже существующие данные на предмет ошибок. Автотест активно выполняет действия — создаёт объекты, проводит документы — и проверяет, что система отработала правильно. Это разные задачи, и они дополняют друг друга.

Итог

Что важно запомнить

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