Автоматизация · 11 мин
Автотест в 1С: что это и как его применять
Автотест в 1С — что это такое, как работает автоматизированное тестирование, какие инструменты использовать и как внедрить проверки без риска для рабочей базы.
Автотест в 1С — это программный сценарий, который автоматически проверяет работу конфигурации: создаёт документы, заполняет справочники, проводит операции и сравнивает полученный результат с ожидаемым. Вместо того чтобы тестировщик вручную нажимал десятки кнопок после каждого обновления, это делает программа — быстрее, без пропусков и в любое время суток.
Автоматизированное тестирование особенно актуально для доработанных конфигураций: любое изменение кода, обновление типового релиза или перенос данных может сломать ранее работавший функционал. Автотесты выявляют такие поломки до того, как с ними столкнутся пользователи в рабочей базе.
При этом автотест — не замена ручной проверке, а дополнение к ней. Он отлично справляется с повторяющимися регламентными проверками, но не оценит удобство интерфейса и не найдёт ошибку там, где сценарий не написан.
Что такое автотест в 1С и как он устроен
Любой автотест состоит из трёх частей: подготовка данных, выполнение действия и проверка результата. Например: создать тестовую организацию и номенклатуру, провести документ «Реализация товаров и услуг», убедиться, что в учёте появились правильные проводки и остатки на складе уменьшились на нужное количество.
По способу взаимодействия с системой тесты делятся на два типа. Первый — вызов кода напрямую: тест обращается к объектам базы (документам, регистрам, справочникам) через встроенный язык, минуя интерфейс. Такие проверки быстрые и стабильные. Второй тип — интерфейсные тесты, которые имитируют нажатия кнопок и заполнение полей формы, как это делает пользователь. Они медленнее и чувствительнее к изменениям форм, но проверяют систему «целиком».
Результат прогона теста всегда бинарный: пройден или провален. Если проверка не прошла, тест фиксирует, на каком шаге и с каким значением возникло расхождение, — это позволяет быстро локализовать проблему.
Какие инструменты используются для автотестов
Экосистема автоматизированного тестирования 1С сложилась вокруг нескольких открытых проектов. Выбор инструмента зависит от задачи: проверять логику кода или поведение через интерфейс.
| Инструмент | Тип тестов | Когда применять |
|---|---|---|
| Vanessa Automation | Сценарные, через интерфейс | Проверка бизнес-процессов глазами пользователя; сценарии пишутся на понятном языке Gherkin |
| xUnitFor1C | Модульные, вызов кода | Тестирование процедур, функций, проведения документов без интерфейса |
| Тестер (1С:Сценарное тестирование) | Сценарные | Коммерческое решение для записи и воспроизведения действий пользователя |
| Vanessa ADD | Модульные и поведенческие | Разработка через тестирование (TDD/BDD) в связке с EDT |
Наиболее распространённый вариант для старта — Vanessa Automation: сценарии описываются почти обычным текстом («Когда я создаю документ», «Тогда в таблице появляется строка»), поэтому их могут писать не только программисты, но и аналитики. Для проверки внутренней логики — расчёта налогов, формирования проводок, заполнения регистров — удобнее xUnitFor1C.
Какой подход выбрать
Проверяют систему целиком, включая формы и права доступа. Медленные, ломаются при изменении интерфейса
Быстрые и стабильные, проверяют только логику. Не замечают ошибок в формах и интерфейсе
Основная масса — модульные тесты логики, плюс несколько сквозных сценариев по ключевым процессам. Оптимален для большинства проектов
Какие задачи проверять автотестами в первую очередь
Не всё стоит автоматизировать. Приоритет — у повторяющихся, критичных для бизнеса и легко формализуемых проверок. Попытка покрыть тестами всю конфигурацию сразу обычно заканчивается тем, что поддержка тестов отнимает больше времени, чем ручная проверка.
Кандидаты первой очереди:
- проведение ключевых документов (реализация, поступление, оплата, начисление зарплаты) и корректность их движений по регистрам;
- закрытие месяца и формирование регламентированной отчётности на тестовых данных;
- критичные доработки, которые «сыплются» после каждого обновления;
- обмены с внешними системами: загрузка и выгрузка данных без потерь;
- проверка прав доступа: пользователь с ограниченной ролью не должен видеть или изменять закрытые данные.
Не спешите автоматизировать редко используемые операции, нестабильный функционал, который ещё меняется, и проверки визуального оформления печатных форм — там ручной просмотр эффективнее.
Как написать и запустить первый автотест
Начните с одного простого, но реального сценария — например, «создание и проведение документа реализации с проверкой остатков». Он покажет весь цикл: подготовку данных, выполнение, проверку результата и очистку.
Общий порядок действий не зависит от выбранного инструмента:
- 1Разверните копию рабочей базы в отдельном контуре для тестирования
- 2Установите выбранный инструмент (например, Vanessa Automation) и проверьте запуск на демо-сценарии
- 3Опишите один критичный бизнес-процесс в виде пошагового сценария
- 4Добавьте в сценарий проверки: какие остатки, проводки или значения должны получиться
- 5Запустите тест, добейтесь стабильного прохождения три-четыре раза подряд
- 6Настройте регулярный автоматический запуск после каждого обновления тестовой базы
Ключевой момент — подготовка тестовых данных. Хороший тест сам создаёт нужные ему справочники и документы, а не зависит от того, что кто-то когда-то завёл в базу. Иначе сценарий будет падать после каждого обновления тестовой копии.
После стабилизации первого теста добавляйте сценарии постепенно, по одному процессу за раз. Практика показывает: десяток стабильных тестов, покрывающих критичные операции, приносит больше пользы, чем сотня нестабильных.
Как проверить, что автотесты работают правильно
Сам по себе «зелёный» прогон теста ещё ничего не гарантирует: сценарий мог быть написан так, что ничего реально не проверяет. Поэтому тесты тоже нужно проверять.
Простой приём — намеренно сломать логику (например, временно изменить формулу расчёта) и убедиться, что тест упал с понятным сообщением. Если тест проходит и при ошибке — он бесполезен и требует доработки.
Как проверить качество автотеста
Тест проходит 5+ раз подряд без вмешательства
Падает случайным образом при тех же данных
Падает при намеренной поломке логики
Проходит даже при неверном результате
Сам создаёт и очищает свои данные
Требует ручной подготовки базы перед запуском
Модульный тест — секунды, сценарный — минуты
Один тест выполняется десятки минут
Типичные ошибки при внедрении автотестов
Большинство неудач с автоматизацией тестирования связано не с инструментами, а с подходом. Команды пытаются автоматизировать всё сразу, экономят на тестовом контуре или забывают поддерживать сценарии после изменения конфигурации.
Отдельная ошибка — воспринимать автотесты как разовый проект. Тесты живут вместе с конфигурацией: каждая значимая доработка должна сопровождаться обновлением или добавлением сценариев, иначе покрытие быстро устареет.
Автотесты или ручная проверка: как распределить роли
Автотесты не отменяют ручное тестирование — они снимают с тестировщика рутину. Правильное разделение выглядит так: регрессионные проверки типовых операций выполняют автотесты, а человек сосредотачивается на новом функционале, нестандартных ситуациях и удобстве использования.
Экономический эффект проявляется на дистанции: написание сценария дороже одной ручной проверки, но при десятках повторных прогонов после каждого обновления автотест окупается многократно. Если конфигурация обновляется редко и почти не дорабатывается, полноценная автоматизация может не оправдаться — достаточно короткого чек-листа ручных проверок.
Как выбрать действие
Частые вопросы
Нужно ли уметь программировать, чтобы писать автотесты в 1С?
Для сценарных инструментов вроде Vanessa Automation глубокие навыки программирования не обязательны: сценарии описываются шагами на структурированном языке, близком к обычному тексту. Но базовое понимание логики 1С и устройства конфигурации потребуется. Модульные тесты на xUnitFor1C пишутся на встроенном языке 1С, поэтому там нужен разработчик.
Можно ли запускать автотесты в рабочей базе?
Категорически нет. Тесты создают, изменяют и удаляют документы и записи справочников, что исказит реальный учёт. Все прогоны выполняются только в копии базы или специально подготовленном тестовом контуре.
Сколько времени занимает внедрение автотестов?
Первый рабочий сценарий на готовой тестовой базе обычно удаётся получить за несколько дней, включая установку инструмента и его освоение. Формирование библиотеки тестов, покрывающей ключевые процессы, — это месяцы постепенной работы, совмещённой с основными задачами команды.
Что делать, если автотест стал падать после обновления конфигурации?
Сначала определите причину: либо изменилось поведение системы (тогда тест нашёл реальную проблему или требует корректировки под новую логику), либо изменился интерфейс и сценарий не находит элементы. Падения из-за изменения форм чинятся обновлением шагов сценария; падения из-за логики разбирает разработчик.
Подходят ли автотесты для типовой конфигурации без доработок?
Частично. Для чисто типовой конфигурации выгода меньше: типовой функционал уже проверен поставщиком. Но автотесты полезны для проверки ваших данных и настроек — корректности учётной политики, обменов, формирования отчётности на ваших реальных сценариях.
Чем автотест отличается от обработки проверки данных?
Обработка проверки анализирует уже существующие данные на предмет ошибок. Автотест активно выполняет действия — создаёт объекты, проводит документы — и проверяет, что система отработала правильно. Это разные задачи, и они дополняют друг друга.
Что важно запомнить
Автотест в 1С — это сценарий автоматической проверки конфигурации, который заменяет рутинную ручную регрессию. Начинайте с копии базы, одного критичного процесса и простого инструмента, наращивайте покрытие постепенно и поддерживайте тесты вместе с доработками конфигурации.