Интеграционные Unit-тесты в 1С. Как тесты на обмены улучшили жизнь пользователям, разработчикам и бухгалтерии

15.08.25

Разработка - Тестирование QA

Прием «Разработка через тестирование» значительно увеличивает удобство модификации обменов между базами 1С и защищает интеграции от ошибок. Расскажем о том, как интеграционные unit-тесты на базе Vanessa-ADD помогают фиксировать требования, проверять корректность правил обмена и ускорять доработки.

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

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

  • Напишем тест, используя инструмент Vanessa-ADD.

  • И доработаем правила обмена с помощью методики «разработка через тест».

 

Инструменты для разработки и тестирования

 

 

При решении поставленной задачи мы будем использовать:

  • Vanessa ADD – набор инструментов для проверки качества решений на платформе 1С.

  • Расширения с тестами – здесь можно сделать небольшую отсылку к докладу Юрия Гончарука, он подробно рассказал, как писать такие расширения с тестами. 

 

 

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

  • плагины Vanessa ADD – «УтвержденияBDD», «БазовыеУтверждения», «СериализаторXML» и т.д.,

  • любые типовые алгоритмы обмена: загрузка-выгрузка XML, загрузка-выгрузка JSON, получение ссылки, проверка регистрации на узле обмена и т.д.

 

Постановка задачи

 

Схема обменов баз данных у нас построена вокруг большой базы ERP, с которой интегрируется много других баз:

  • ТБ – самописная торговая база.

  • База №2 – УПП.

  • База № 3 – Ортикон.

  • №4, №5, №6 – другие базы.

Правила обмена между базами имеют следующую специфику:

  • Между основными базами настроен обмен через универсальный формат КД 3 – это значит, что у каждой из этих баз есть ОбщийПакетXDTO и общий модуль МенеджерОбменаЧерезУниверсальныйФормат. Обмены в обе стороны, поэтому, меняя правила у одной базы и что-то напутав, обмен может упасть совершенно с другой стороны. За этим у нас следят тесты.

  • Также есть и другие обмены, которые написаны по старинке на КД 2 – там все правила хранятся в макете XML.

Тесты мы пишем на оба вида обменов, но в данном докладе я рассмотрю только пример написания тестов для обмена через универсальный формат КД 3.

 

Мне поступила задача – изменить правила обмена для документа «Платежное поручение исходящее» так, чтобы при миграции документа в базу-приемник:

  • с 1 сентября;

  • для типа операции «Прочее списание»;

  • всегда подставлялась статья движения денежных средств – Статья № 1;

  • а назначение платежа всегда собиралось по формуле: ХозяйственнаяОперация + Контрагент + СуммаДокумента + Валюта + (НДС).

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

Расскажу мой порядок действий при доработке правил обмена с помощью методики «разработка через тест»:

  • Первый шаг – подготовка вводных данных:

    • Выгружаем документ «Платежное поручение исходящее» из базы-источника по существующим правилам (формат xml).

    • В расширении «Тесты» базы ERP добавляем новый макет для загрузки XML документа «СписаниеБезналичныхДенежныхСредств».

  • Второй шаг – написание теста:

    • Добавляем новый тест в набор тестов.

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

    • В режиме 1С:Предприятие запускаем тест, используя инструмент Vanessa-ADD.

    • Проверяем, что документ загрузился.

    • Меняем руками то, что просят доработать в ТЗ – Статью ДДС и Назначение платежа.

    • Комментируем строку загрузки документа. Перезапускаем и фиксируем в тесте нужные нам значения (для удобства пользуемся отладкой).

  • Третий шаг – доработка правила обмена:

    • Доработка кода в модуле МенеджерОбменаЧерезУниверсальныйФормат.

    • Делаем нужные настройки в режиме предприятия.

    • Прогоняем – тест зеленый. Кто молодец? Я молодец!

  • Четвертый шаг – дополнение теста поставляемыми данными:

    • Используя инструмент Vanessa-ADD, выгружаем нужные нам поставляемые данные – настройки, которые могут понадобиться при работе.

    • В расширении тестов добавляем поставляемые данные в макеты.

    • Прогоняем все тесты, чтобы проверить, что другие кейсы не сломались.

Все эти шаги я сейчас покажу подробно, с картинками.

 

Первый шаг – подготовка вводных данных

 

Расскажу о том, как я готовлю вводные данные.

Первым делом я иду в базу-источник – обычно для этой цели в рамках тестирования используется своя локальная база. Если там уже есть подходящий документ «Платежное поручение исходящее», можно взять его. Либо создать новую платежку со всеми нужными мне данными.

В данном случае я создаю документ типа «Прочее списание» и заполняю все, что нужно – указываю произвольное назначение платежа и первую попавшуюся статью ДДС.

 

 

Далее с помощью стандартной обработки «ВыгрузкаЗагрузкаEnterpriseData», встроенной в конфигурацию, выбираю созданный документ и выгружаю его в текстовый документ формата XML.

 

 

Потом иду в тестовое расширение ERP, создаю в нем текстовый макет для нужного мне объекта метаданных – в данном случае, для документа «Списание безналичных денежных средств». И в созданный макет помещаю XML-документ, который я только что выгрузила из базы источника.

Все, так я подготовила себе данные, которые буду грузить.

 

Второй шаг – написание теста

 

 

Перехожу к созданию теста.

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

Сами наборы хранятся в общих модулях с префиксом подсистемы: «ЦФГ_Тест_Казначейство», «ЦФГ_Тест_Обмены», «ЦФГ_Тест_Продажи» и прочее. Там же для каждого теста из набора хранятся ссылки, где его искать.

 

 

А сами тесты, где прописаны проверки ожиданий, размещаются в общих модулях, названных по конкретному объекту метаданных – в нашем случае, в модуле «ЦФГ_Тест_Документ_СписаниеБезналичныхДенежныхСредств». В нем я и создаю процедуру с конкретной проверкой.

Обратите внимание, что здесь используются наши помощники:

  • с помощью помощника ЦФГ_Тест_ПомощникТестированияКлиентСервер я описываю, что ожидаю инициацию контекста ядра;

  • далее сообщаю путь к макету, который я только что добавила, и загружаю из него данные – тоже через функцию помощника, использующую типовой алгоритм из стандартного обмена;

  • последним шагом получаю ссылку этого документа – ее UUID заранее известен.

На этом все. Останавливаюсь и иду в режим 1С:Предприятия.

 

В режиме 1С:Предприятия открываю Vanessa-ADD и загружаю тесты из расширения.

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

Естественно, тест помечается зеленым, потому что я там еще ничего не прописывала – просто загрузила нужный мне документ.

 

Проверяю результат в списке платежек – вот такой документ загрузился по текущим правилам обмена.

Если у вас нет теста на текущие правила обмена, его нужно сразу написать. Но у меня такой тест есть – я его написала сразу, когда писала правила. Поэтому продолжу рассказывать, как писать новый тест.

 

Когда тестируемый документ уже загружен, я руками меняю в нем то, что мне нужно по задаче – в данном случае, подставляю статью ДДС и назначение платежа по формуле.

На практике бывает, что нужна еще смена хозяйственной операции, группировка табличной части, расчеты и другие нюансы – все эти условия нужно воспроизвести вручную.

Причем сделать это нужно до конца: провести документ, посмотреть движения, показать результат заказчику и получить от него подтверждение, что он ожидал именно такой результат.

 

После этого я возвращаюсь в конфигуратор, чтобы дописать тест, и временно комментирую строку с загрузкой XML из макета. Мне это нужно, чтобы получить в отладке значения всех реквизитов, которые я хочу проверить в тесте.

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

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

 

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

 

После того как я это проверила, возвращаюсь в конфигуратор и убираю комментарий.

В принципе, тест готов.

 

 

На всякий случай прогоняю все тесты. Естественно, все старые тесты у меня должны быть зеленые, а мой упадет – так и должно быть, потому что правила я еще не меняла.

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

 

Третий шаг – доработка правил обмена

 

Перехожу к доработке правил обмена в универсальном формате КД 3.1.

Я понимаю, что мне нужно в общем модуле МенеджерОбменаЧерезУниверсальныйФормат поменять логику процедуры ОтложеннаяОбработка_ДокументыДвиженияБезналичныхДС.

Важно, что эта процедура вызывается в правилах конвертации ПослеЗагрузкиВсехДанных для 14 объектов – не только для исходящих платежек разных видов, но и входящих платежек, заявок на движение денежных средств и т.д.

Получается, что если я где-то ошибусь, то могу поломать совершенно другой документ. Хорошо, если просто обмен упадет – мы это быстро заметим и исправим. Но если обмен не упадет, а просто поменяет поведение, и другой документ начнет принимать другие значения, все станет проводиться по-другому.

А поскольку ERP у нас – регламентированная база, мы можем заметить это намного позже. В этом случае возникнет двойная проблема: помимо того, что нужно исправить правила обмена, нужно будет еще выделить время на исправление ретро-данных – либо данные перезагрузить, либо написать обработки для исправления.

В итоге я решила сделать свою процедуру ЗаполнениеНазначениеПлатежаИСтатьиДДС() и добавить ее с условием по документу «СписаниеБезналичныхДенежныхСредств» в эту отложенную обработку.

 

 

Вот так выглядит пример решения:

  • Обрабатывается только документ «СписаниеБезналичныхДенежныхСредств».

  • Учитывается условие по типу документа «ПрочееСписание»

  • А для проверки настроек по дате документа я решила воспользоваться внешними настройками, потому что нужно где-то хранить эту фиксированную статью ДДС – понятно, что для этого нужны настройки. У нас в базе для выбора таких настроек по дате уже был механизм из связки периодического регистра сведений и справочника. Я подключилась к общему модулю, возвращающему структуру настроек из этого механизма, и заложила сюда такую проверку.

 

Возвращаюсь в режим 1С:Предприятие и заполняю эти настройки, что с 1 сентября у меня теперь должна применяться новая настройка, а в ней – такая-то статья и фиксированное назначение платежа.

 

 

После того как я обновила правила и внесла настройки, прогоняю все тесты.

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

 

Четвертый шаг – дополнение теста поставляемыми данными

 

Поскольку я использовала в решении внешние настройки – в моем примере это периодический регистр сведений и связанный с ним справочник с настройками – их тоже нужно зафиксировать в тесте. А для этого эти данные нужно поместить в макеты поставляемых данных.

Для подготовки этих макетов я использую Vanessa-ADD – там в выпадающем меню «Внешние инструменты» есть инструмент «Генератор макетов данных».

 

И по очереди, в два этапа, выгружаю в JSON нужные мне объекты – справочник и регистр сведений.

Обратите внимание – на слайде показано, какие настройки я рекомендую делать: не выгружать предопределенные значения, и оставлять связь по GUID, так понадежнее будет.

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

Если это в первый раз, то добавляем макет, если нет, то дополняем поставляемые данные – у меня раньше была одна строчка, а сейчас две.

 

Выводы

 

Подытожим порядок моих действий при разработке через тестирование:

  1. Вначале я написала тест и зафиксировала все ожидания, а уже потом приступила к написанию кода. Мне не пришлось регистрировать объект к обмену, запускать синхронизацию и проверять вручную, правильно ли загрузились данные – я не моделировала обмен между двумя базами так, как это обычно бывает при написании интеграций. Я просто нажала кнопку «Выполнить тест» и все, время ни на что не теряла.

  2. Мне не понадобилось настраивать обмены между двумя, а то и тремя базами.

  3. Все ожидания заказчика были зафиксированы в виде теста – в задаче могло быть 33 пожелания, но когда я писала тест, то все это зафиксировала. Даже если мне потребуется переключиться на другую задачу или даже передать работу другому разработчику, я смогу вернуться и ничего не потеряется.

  4. Наличие соседних тестов помогает безопасно менять любые правила или код. Тем более, что модуль МенеджерОбменаЧерезУниверсальныйФормат очень большой, и его постоянно дорабатывают разные программисты – каждый со своими задачами, объекты которых пересекаются. Иногда приходится вносить изменения в большие процедуры с десятками условий, где Sonar уже требует рефакторинга. При наличии тестов можно спокойно наводить порядок, писать красивый читаемый код, разбивать все по модулям. А когда этих тестов нет, естественно, начинаешь бояться, поскольку не знаешь верхнеуровневую логику и как на нее повлияет твоя маленькая задача.

 

Сейчас у нас уже более 700 тестов – и это только в расширении ERP.

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

 

Тесты на выгрузку и проверку пакета XDTO мы пишем не только в ERP, но и в соседних базах, которые обмениваются с ERP – в ТБ и Ортикон. Если где-то выполняется выгрузка и этот процесс связан с ERP, мы фиксируем в тестах ожидаемое нами поведение.

 

Также пишем тесты на регистрацию, потому что важно понимать – что должно регистрироваться, а что не должно.

 

Минусы разработки через тестирование:

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

  • В связи с этим заказчика сложно убедить в необходимости тестов – вместо того, чтобы сделать задачу за два часа, ты будешь ее делать целый день и покрывать ее тестами. Но это так кажется, потому что буквально через два-три месяца, когда это все обрастет, задачи начнут делаться в разы быстрее, и заказчику понравится, что в обменах нет ошибок, а если и есть, то только там, где нет тестов.

 

Плюсов гораздо больше:

  • Защита от регрессионных ошибок. У нас в команде ERP 50 разработчиков, плюс из других команд 15 человек участвуют в задачах по обменам с ERP. Мы можем вообще не знать задачи друг друга, но благодаря тестам мы можем контролировать логику интеграции. И если кто-то уронит соседний тест, то как-то договариваемся. Если требуется с какой-то даты что-то поменять, сохранив при этом существующее поведение системы, то, естественно, покрываем тестом то, что нам требуется, и пишем тест на новое поведение.

  • Прогноз/быстрое исправление ошибок после типового обновления конфигурации от поставщика. Нам требуется регулярно обновлять базу ERP от поставщика – мы это делаем как минимум раз в месяц и даже чаще, если необходимо для какой-то отчетности. Наличие тестов нас очень сильно спасает. Поставщик может изменить или удалить реквизиты, перенести функциональность куда-то в другое место. После обновления запускаем тесты – и сразу видим, что упало. Это помогает адаптировать функциональность рабочей базы или ее расширений до релиза и избежать неожиданных сбоев. Даже просто интеграционные тесты уже предотвращают кучу ошибок. Очень удобно.

  • Легкий рефакторинг – снижение сложности. Поскольку у нас подключен SonarQube, который требует соблюдать качество кода во всех затронутых методах, вне зависимости от того, как давно эта процедура существует в базе, мы можем безопасно проводить рефакторинг – наличие тестов это значительно упрощает. Если этих тестов нет – добавляешь их сам, но, как правило, у нас почти все тесты уже есть.

  • Упрощение сопровождения и развития.

  • Легкость написания самих правил обмена. Поскольку я не моделирую обмен, а просто подготовила выгрузку данных и жму кнопку «Выполнить тест», мне доступна отладка – я могу поставить точку останова в модуле и посмотреть, что там в пакете XDTO. И правила обмена я тоже пишу в отладке – это намного легче, чем играть «в угадайку».

  • Тесты в расширении, а не в обработках. Это действительно удобно.

  • По итогу уменьшаются (или вообще исчезает) количество задач на доработку или исправления ошибок по правилам обмена. Если два года назад пользователи содрогались: «Опять что-то пошло в релиз, обмены падают!», то сейчас они даже не замечают, что у нас активно идет разработка правил обмена и мы ежедневно отправляем изменения в релиз. Если что-то и падает, то только там, где еще нет теста – и после исправления мы сразу его добавляем, чтобы ошибка не повторилась.

  • И само расширение с тестами – это прекрасная демобаза для всех. Новый сотрудник подключает пустую базу к хранилищу, загружает из Git постоянное и тестовое расширение, импортирует поставляемые данные и прогоняет все тесты. В результате получается полностью упакованная демобаза с организациями, учетной политикой, всеми нужными справочниками и документами, полностью соответствующая реальным процессам компании. И новый человек может в своей локальной базе вести разработку и опираться на наши примеры. Это очень большой плюс. Мы этим пользуемся и всем рекомендуем.

 

Рекомендации к просмотру

 

Мы бы не смогли писать тесты и делить все это на модули, если бы не соблюдали стандарты при разработке. Об этом можно посмотреть доклады Артема Кузнецова:

А о том, как начать разрабатывать тесты через расширение, можно посмотреть доклад Юрия Гончарука:

Посмотрите и начинайте писать тесты.

 

Вопросы и ответы

 

Как разработчикам, которые привыкли тестировать на пользователях и работать по принципу «тяп-ляп и в продакшен», привить культуру тестов?

Хотелось бы сказать, что добровольно-принудительно, но нет. У нас это внедрялось так:

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

  • Спустя какое-то время мы уже говорили: «Хорошо, мы задачу принимаем, но за тобой техдолг, сделай тест», чтобы он хотя бы научился это делать. Потому что вначале есть барьер, что с этими поставляемыми данными придется долго возиться. Но когда это делаешь постоянно, то получается накидать тест быстро, как на рефлексе, а разработку потом – тем более.

  • А когда все уже привыкли, мы позволили себе административный шаг – спустя полгода сказали, что задача без теста не принимается, по крайней мере, в команде ERP.

С заказчиками не воевали из-за того, что рабочее время тратится на написание тестов?

Воевали, но у нас же большие объемы, и если происходит любая поломка обмена, то идет накопление данных, и потом только к вечеру система приходит в норму. Сами же заказчики приходили к нам и спрашивали: «Что здесь можно сделать?», и мы им отвечали: «А вот были бы тесты, этого бы не было». Они в определенный момент нам поверили, и сами начали закладывать время, чтобы разработчик помимо разработки делал еще и тест.

Ваш сквозной пример тестирует загрузку данных из одного и того же макета? Вы говорите: «Я шаг за шагом проверяю, пока мой тест не позеленел».

Да, мы используем в этом тесте именно эту одну XML

Как вы тогда тестируете выгрузку?

Я рассказывала, что мы пишем тесты на выгрузку и проверку пакета XDTO на стороне ТБ и Ортикона.

Часто разработчики добавляют новое свойство в пакет XDTO, но забывают его положить во все ссылки, а потом это всплывает. Мы точно так же кодом с помощью Vanessa-ADD проверяем, корректно ли сделан пакет XDTO, и корректность его содержимого при выгрузке.

Если вы храните данные XDTO в макетах, кто у вас следит за актуальностью этих макетов?

Разработчики и следят. Здесь может быть две ситуации.

  • Если старое поведение все еще нужно для какого-то другого условия, оставляем существующую выгрузку и пишем другой тест.

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

Допустим, у нас есть документ «Поступление товаров и услуг». Один разработчик реализует часть логики, зависящую от того, что контрагент – розничный покупатель, другой работает по другому условию. Как в одном макете проверить правила загрузки и поведение этого документа для разных случаев?

Это оформляется как разные тесты с разными макетами, потому что, например, при поступлении товаров от физлица в пакете XDTO будет одно значение свойства, а от юрлица – другое.

Как разработчик должен понять, в какой макет он должен внести изменения? Если уже 30 макетов у одного объекта метаданных, как разобраться, где ему что-то брать?

Мы даем тестам осмысленные названия, отражающие их суть.

  • Например, если первый разработчик сделал тест на загрузку физлица, он так и называет его – «ЗагрузкаДляФизлица».

  • А следующий реализует функциональность для юридического лица – видит, что существующий тест при его условиях падает, понимает, что там другая ситуация, создает новый тест и называет его соответствующим образом («ЗагрузкаДляЮрлица»)

Кто следит за неактуальностью теста?

У нас пока неактуальных тестов особо нет, мы их, наоборот, только наращиваем.

Если тест регулярно падает и мешает сборке, мы разбираемся, нужен он вообще или нет. Либо дорабатываем, либо отключаем. У нас правило: кто первый столкнулся с проблемой – тот и исправляет.

Как контролируется соответствие тестов, которые написал сам разработчик, реальным функциональным требованиям? Разработчик сам определяет критерии или получает их в готовом виде?

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

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

Вы упомянули, что покрываете тестами и обмены на КД 2.0. А как? Там же сложнее.

Да, там сложнее, потому что помимо данных в XML-выгрузке формата КД 2 содержатся еще и правила. И тестировать их нужно в другой базе. Из-за этого полностью все покрыть не получается. Но мы фиксируем хотя бы результат – например, выгрузили документ или справочник из ДО в XML по правилам КД2, и фиксируем, как должен выглядеть результат его загрузки. Таким образом мы покрываем примерно 50% сценариев (в том числе, регистрацию и отсутствие ошибок при загрузке). Но специфичные условия в обработчиках другой базы пока не тестируем, хотя планируем.

Если для объекта ранее тестов не было, пишете сразу для всех сценариев или только под задачу?

Сначала пишу тест под текущую задачу – то, что вызвало «пожар». Если в процессе вижу, что сценариев много, остальные фиксирую в техдолге и постепенно дописываю.

Если тест из техдолга нужен другому разработчику, как поступаете?

Если он работает с условием, для которого теста нет, он пишет сам. В итоге и задача решена, и мой техдолг уменьшается.

Дорабатывали ли вы стандартные обработки Vanessa-ADD для тестирования правил обмена? Хватало ли стандартных ассертов или потребовалась дополнительная логика?

Нам хватило стандартной функциональности. Единственное, что мы сделали – это небольшие «помощники» в виде оберток над стандартными ассертами Vanessa-ADD. Вы могли видеть их на первых слайдах. Они работают с теми же объектами и командами, просто убирают лишний «словесный мусор» и делают код чище.

Например, есть обертка для проверки, что объект зарегистрирован в обмене. Это упрощает написание тестов, позволяет стандартизировать их поведение и легко заменять вызовы в большом пуле тестов.

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

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Тестирование QA DevOps и автоматизация разработки Программист Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.178.26.

4800 руб.

20.01.2022    10004    36    1    

18

Тестирование QA DevOps и автоматизация разработки Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2400 руб.

04.07.2022    10315    43    1    

34

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.230.

3360 руб.

05.08.2024    3218    18    1    

12

Тестирование QA Программист Бесплатно (free)

На одном из заводов внедрили дымовое тестирование, чтобы снизить количество ошибок после релизов. Рассказываем, как готовилась инфраструктура, запускались тесты и интегрировались SonarQube и Allure, а также какие сложности встретились в процессе. В статье есть оценка трудозатрат, разбор подводных камней и планы по развитию проекта на другие конфигурации.

вчера в 15:35    192    lekot    0    

3

Тестирование QA Программист Бесплатно (free)

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

13.08.2025    1179    olga_seva    2    

7

Тестирование QA Рефакторинг и качество кода Программист Бесплатно (free)

За два года ручного тестирования решений на базе платформы 1С я столкнулся с огромным количеством ошибок. Глубокий анализ их причин позволил выделить ТОП-5 наиболее частых источников сбоев в 1С-разработке. Понимание этих коренных причин – первый шаг к их предотвращению. В этой статье я делюсь своими наблюдениями и предлагаю практические пути снижения рисков для каждого типа ошибок.

12.08.2025    632    Lagger117    3    

3

Тестирование QA Программист Бесплатно (free)

Рассказываем, как с помощью интеграционных контрактных тестов повысить надежность взаимодействия между системами через RabbitMQ. Автор делится опытом адаптации библиотеки, стандартизации процессов и построения тестовой архитектуры на основе практик, реализованных в «МТС Диджитал».

07.08.2025    616    kuzin_roman    5    

1

Нейросети Тестирование QA Программист Бесплатно (free)

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

04.08.2025    985    plekhanov    1    

10
Оставьте свое сообщение