Привет! Меня зовут Ольга и я QA-специалист SimbirSoft. На данный момент моя специализация сопрягается с тестированием платформы «1С».
Идея статьи появилась, когда ко мне обратился коллега с вопросом: что такое интеграционное тестирование «1С». Готовясь ко встрече с ним, я поняла, что это очень важный этап в работе с программой для QA-специалиста, так как процесс интеграции в «1С»:
Неотъемлемая часть любого проекта
Требует глубокого погружения в продукт
Предусматривает взаимодействие различных микро-сервисов, модулей, команд между собой
Статья поможет на этапе изучения интеграционного тестирования платформы понять, что нужно учесть при планировании тестирования, подсветить возможные узкие места и предотвратить появление критичных багов. Расширить знания QA-специалиста в платформе «1С» в целом и возможности ее интеграции в частности.
Также статья будет полезна для SDET-специалистов, тимлидов или PO проектов, где присутствует эта платформа.
Начнем с того, что такое программа «1С» и интеграционное тестирование:

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

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

поддерживает протоколы обмена и стандарты взаимодействия с другими подсистемами (XML, JSON и т. п.);

работает с Интернетом и электронной почтой;

поддерживает возможность создания web- и HTTP-сервисов и работу с внешними web- и HTTP-сервисами;


поддерживает доступ внешних систем к данным приложений «1С» по протоколу OData

В свою очередь интеграцию на платформе «1С» можно разделить на внутреннюю и внешнюю. Где под внутренней мы понимаем взаимодействие между распределенными информационными базами программы.

А под внешней – универсальный механизм обмена данными между системами реализованными не на платформе «1С».

Теперь разберемся с интеграционным тестированием:

Интеграционное тестирование предназначено для проверки связи между компонентами, а также взаимодействия с различными частями системы (операционной системой, оборудованием либо связи между различными системами).
Так что же такое интеграционное тестирование на платформе «1С»?
Интеграционное тестирование на платформе «1С» — это проверка взаимодействия различных микросервисов, модулей, подсистем между собой. Даже при корректной работе отдельных компонентов, их взаимодействие может отличаться от ожидаемого поведения системы в целом.
Интеграционное тестирование на платформе «1С» осуществляется между распределенными базами и внешними ресурсами. Рассмотрим механизмы взаимодействия или обмена данными, которые я использую на практике:
Импорт/экспорт файлов – механизм, позволяющий производить загрузку или выгрузку файлов на платформе «1С». Это может быть текстовый/ табличный файл или документ, JSON-файл.


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

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


И наоборот, если мы говорим про выгрузку, то будем проверять соответствие исходных данных документов из «1С» с выгруженным файлом.
Рассмотрим на примере загрузки файла xlsx:

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

Фоновое задание – это объект, в котором содержатся выполняемые действия.

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

Процесс тестирования будет заключаться в запуске регламентного задания → проверке выполнения → проверке отображения полученного результата:

Здесь мы можем познакомиться с новым инструментом интеграции в «1С» — 1С:Шина.
1С:Шина — это решение, созданное для организации эффективного и надежного обмена данными между различными информационными системами. Инструмент позволяет обеспечивать взаимосвязанную и бесперебойную работу при интеграции различных систем.
Подробно можно ознакомиться здесь: 1С:Шина. Наводим порядок в информационных системах компании
1С:Шина используется как маршрутизатор, составляет механизм асинхронного обмена сообщениями. Это значит, что информационные системы взаимодействуют через 1С:Шина как посредника.
Здесь для тестирования будут задействованы разные команды разработки («1С», мобильное приложение, backend, frontend) и определяется как — е2е-тестирование или Ролевые игры.
Процесс тестирования будет заключаться в отправке информации из «1С» в другую внешнюю систему:

и получении данных внешней системой:

REST-интерфейс – данный механизм позволяет сформировать или модифицировать любой объект конфигурации (документ, справочник, регистр сведений и т.п). Поддерживаются форматы JSON или XML.
Тестирование в данном случае будет заключаться также в проверке самого механизма взаимодействия: поддержка формата, обязательных полей, структура, передача символов и т.п.
Далее мы будем проверять корректность создания либо модификации объекта конфигурации с исходным файлом. Здесь хочу обратить внимание, что REST интерфейс позволяет одновременно взаимодействовать с распределенными базами платформы «1С» и сторонними ресурсами. Соответственно, тестирование будет заключаться в проверке, полученной информации как в смежных базах, так и на сторонних ресурсах, например, электронной почты.
Рассмотрим на примере создания объекта через API-запрос:


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

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

Заключение
В статье я поделилась практическими навыками интеграционного тестирования платформы «1С», которые использую в своей работе. На самом деле, механизмов взаимодействия гораздо больше, чем описано выше, но для понимания процесса я выбрала самые доступные и важные, на мой взгляд.
Так как платформа «1С» является системой учета, в тестировании в целом необходимо уделять большое внимание всему, что касается времени и денег. Если мы говорим о времени, то шаг – это 1 секунда, для денег – 1 копейка. Очень важно проверять передачу цифровых значений (здесь кроется множество ошибок): формат дат, времени, учет високосного года, округление, суммы и их распределение и т.п.

При проведении интеграционного тестирования на платформе «1С» с распределенными базами или сторонними ресурсами можно и нужно использовать техники тест-дизайна, такие как Классы эквивалентности и Попарное тестирование.
Также здесь можно почитать о возможности автоматизации тестирования платформы «1С», которую осветили мои коллеги: 1C-проекты и тестирование: взгляд QA-специалистов
Авторские материалы для QA-специалистов мы также публикуем в наших соцсетях – ВКонтакте и Telegram.