Главная
АИ #23 (153)
Статьи журнала АИ #23 (153)
Методология тестирования расчётной бизнес-логики микросервисов через тестовый дв...

10.51635/AI-23-153_0HKi6

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

Цитирование

Иванова С. В. Методология тестирования расчётной бизнес-логики микросервисов через тестовый движок: концептуальное обоснование подхода // Актуальные исследования. 2023. №23 (153). URL: https://apni.ru/article/6457-metodologiya-testirovaniya-raschyotnoj-biznes-logiki-mikroservisov-cherez-testovyj-dvizhok-konczeptualnoe-obosnovanie-podhoda

Аннотация статьи

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

Текст статьи

Актуальность исследования

Актуальность исследования обусловлена широким применением микросервисной архитектуры в современных программных системах. Микросервисы позволяют разрабатывать и развертывать отдельные компоненты независимо друг от друга, однако такая распределенная структура усложняет проверку корректности работы системы, особенно если итоговый результат зависит от взаимодействия нескольких сервисов [10, с. 150].

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

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

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

Цель исследования

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

Материалы и методы исследования

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

В работе использованы методы анализа, обобщения, сравнения и систематизации.

Результаты исследования

Расчётная бизнес-логика микросервиса связана с выполнением правил, по которым система получает входные данные, обрабатывает их и формирует конкретный результат. Для таких сервисов важны не только работоспособность программного кода и доступность интерфейса, но и точность итогового значения. Поэтому при тестировании необходимо проверять входные параметры, применяемые условия, порядок обработки данных, ожидаемый результат и допустимые отклонения.

Общая схема проверки расчётной бизнес-логики микросервиса представлена на рисунке ниже.

image.png

Рис. Общая схема проверки расчётной бизнес-логики микросервиса (разработка автора)

В микросервисной архитектуре каждый сервис обычно отвечает за отдельную бизнес-функцию и взаимодействует с другими сервисами через заранее определенные интерфейсы. Это означает, что проверка расчётной логики должна учитывать не только внутреннюю работу отдельного сервиса, но и данные, которые поступают из других компонентов системы. Если входные данные, формат ответа или порядок вызова сервисов изменяются, это может повлиять на итоговый расчёт [6, с. 257].

В практике разработки программного обеспечения применяются разные уровни тестирования [2, с. 76]. Модульное тестирование используется для проверки отдельных функций или небольших участков кода. Оно удобно для быстрой проверки простых расчётных операций, но не всегда показывает, как расчёт будет выполнен в полном бизнес-сценарии.

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

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

Сквозное тестирование проверяет работу системы целиком с точки зрения полного сценария. Оно позволяет выявить ошибки, которые появляются только при совместной работе нескольких сервисов. Однако такие тесты обычно более трудоёмкие, медленнее выполняются и сложнее поддерживаются, особенно если система включает большое количество сервисов [4, с. 122].

Сравнение подходов к тестированию бизнес-логики микросервисов приведено в таблице 1.

Таблица 1

Сравнение подходов к тестированию бизнес-логики микросервисов (разработка автора)

Подход

Что проверяет

Сильная сторона

Ограничение

Модульное тестирование

Отдельную функцию или правило

Быстро выполняется, удобно для локальной проверки

Не показывает работу полного сценария

Интеграционное тестирование

Связь сервиса с базой данных, API или другим сервисом

Помогает выявить ошибки взаимодействия

Требует настройки зависимостей

Контрактное тестирование

Соответствие запроса и ответа согласованному контракту

Снижает риск несовместимости сервисов

Не заменяет проверку расчётного результата

Сквозное тестирование

Полный пользовательский или бизнес-сценарий

Показывает работу системы в целом

Медленнее и сложнее в сопровождении

Анализ существующих подходов показывает, что каждый из них решает отдельную задачу. Для расчётной бизнес-логики недостаточно проверить только код, только интерфейс или только общий сценарий. Необходима комбинация уровней тестирования, при которой отдельные правила проверяются на нижнем уровне, взаимодействие сервисов – на интеграционном и контрактном уровне, а ключевые бизнес-сценарии – на сквозном уровне [5, с. 34].

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

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

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

Принципы методологии тестирования через тестовый движок представлены в таблице 2.

Таблица 2

Принципы методологии тестирования через тестовый движок (составлено автором)

Принцип

Содержание

Проверка результата

Оценивается не только факт ответа микросервиса, но и правильность итогового расчёта.

Формализация сценария

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

Повторяемость

Один и тот же сценарий может запускаться многократно после изменений кода или бизнес-правил.

Связь с требованием

Тестовый сценарий должен отражать конкретное бизнес-условие или правило расчёта.

Контроль входных данных

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

Фиксация расхождений

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

Регрессионная проверка

Ранее созданные сценарии повторно применяются для выявления ошибок после доработки системы.

Актуальность сценариев

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

Практическая реализация тестирования через тестовый движок предполагает его включение в тестовую инфраструктуру микросервисной системы. Движок может взаимодействовать с проверяемым сервисом через программный интерфейс, передавать подготовленные данные, получать ответ и автоматически сравнивать его с ожидаемым результатом. При необходимости для проверки используются тестовые базы данных, временные контейнеры, имитация внешних сервисов и заранее подготовленные наборы данных [1, с. 9].

В микросервисной среде особое значение имеет управление внешними зависимостями [8, с. 299]. Расчётный сервис может получать данные из других сервисов, справочников, баз данных или внешних API. Если эти зависимости нестабильны или недоступны, результат тестирования становится менее надежным. Поэтому на практике применяются средства изоляции и имитации зависимостей, позволяющие проверить поведение конкретного микросервиса в контролируемых условиях.

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

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

Методология тестирования через тестовый движок позволяет сделать проверку расчётной бизнес-логики более системной и управляемой. Ее основное преимущество состоит в том, что каждый тестовый сценарий выполняется по заранее определенной структуре: задаются входные данные, ожидаемый результат и критерий оценки. Это снижает зависимость проверки от ручного анализа и позволяет быстрее выявлять расхождения между фактическим результатом и установленным бизнес-правилом [3, с. 57].

Важным достоинством подхода является возможность многократного повторения одних и тех же проверок после изменения кода, настроек или расчётных параметров. За счет этого тестовый движок поддерживает регрессионное тестирование и помогает своевременно обнаруживать ошибки, которые могли появиться при доработке микросервиса. Особенно полезно это в системах, где часто меняются тарифы, коэффициенты, условия начисления или иные правила расчёта [9, с. 249].

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

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

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

К рискам также относится сложность настройки тестовой среды. Расчётный микросервис может зависеть от баз данных, внешних сервисов, справочников или API других компонентов. Если такие зависимости не будут корректно воспроизведены или заменены в тестовой среде, результаты проверки могут отличаться от поведения системы в реальных условиях. Поэтому использование тестового движка требует не только технической реализации, но и четкой организации процесса тестирования, включая контроль актуальности данных, сценариев и ожидаемых результатов [7, с. 153].

Выводы

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

Список литературы

  1. Алексеева Е.С. Использование тестовых дублеров в тестировании it-продукта, построенного на микросервисной архитектуре // Прикладная математика и информатика: современные исследования в области естественных и технических наук. – 2020. – С. 7-11.
  2. Глибина М.Д. Сравнительный анализ монолитной и микросервисной архитектуры разработки и проектирования программного обеспечения // Современные инновации в науке и технике: сборник научных трудов 10-й Всероссийской научно-технической конференции с международным участием. – 2020. – С. 74-78.
  3. Долженко А.И., Ермолов И.А., Полиев А.Д. Мониторинг программного обеспечения, основанного на микросервисной архитектуре // Информатизация в цифровой экономике. – 2021. – Т. 2, № 2. – С. 55-62. – DOI 10.18334/ide.2.2.113382.
  4. Дунин Д.С., Ветрова О.А. Анализ использования микросервисной архитектуры в рамках единого продукта // Инновационное развитие техники и технологий в промышленности: Сборник материалов Всероссийской научной конференции молодых исследователей с международным участием. – 2023. – С. 120-123.
  5. Камолов А.Б., Тулеубаева А.А., Рычков В.А., Давыденко В. Анализ способов развертывания приложений с микросервисной архитектурой // Материалы III Международного научно-практического форума по экономической безопасности «VIII ВСКЭБ». – 2022. – С. 31-38.
  6. Караханова А.А. Анализ микросервисной архитектуры, монолитных приложений, архитектуры SOA // Синергия Наук. – 2020. – № 46. – С. 255-262.
  7. Кичук А.П. Взаимодействие микросервисов через API на примере ERP системы // Информационные системы и технологии: теория и практика: научно-техническая конференция Института леса и природопользования СПбГЛТУ. – 2022. – С. 151-156.
  8. Потапенко А.С. Сравнение монолитной и микросервисной архитектур // Научные горизонты. – 2020. – № 5(33). – С. 297-303.
  9. Савченко Д.И., Радченко Г.И. Методология тестирования микросервисных облачных приложений // Суперкомпьютерные дни в России: Труды международной конференции. – 2015. – С. 245-256.
  10. Akhmetzyanov I.I., Urakhchinsky I.N. Using microservice architecture in software development // Vol. Часть III. – 2022. – P. 149-153.

Поделиться

Обнаружили грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики)? Напишите письмо в редакцию журнала: info@apni.ru

Похожие статьи

Другие статьи из раздела «Информационные технологии»

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

#26 (312)

Прием материалов

20 июня - 26 июня

осталось 3 дня

Размещение PDF-версии журнала

1 июля

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

8 июля