Просто ли открывается ларчик, Или как протестировать сразу более 10 сервисов

Kate

Administrator
Команда форума
Всем известно, что у тестировщиков в жизни много трудностей. И мы, команда QA Департамента общих прикладных сервисов (ДОПС) Сбера, знаем об этом не понаслышке, так как тестируем релизы сервисов Platform V — цифровой облачной платформы СберТеха (более 70 продуктов для быстрого создания и легкого масштабирования приложений любой сложности). Да‑да, именно на Platform V Сбер совершил свою цифровую трансформацию!

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

7de6ab47443c61280e773da18409be05.png

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

Что есть Синтетика?​

Определение из документации гласит, что Синтетическое приложение — это «набор инструментов для тестирования платформенных сервисов, реализующий интеграционные бизнес‑сценарии, имитирующие реального потребителя». На деле же, наша Синтетика — это небольшое приложение, развернутое в облаке. Тут все по классике: OpenShift для контейнеризации, Egress/Ingress для организации трафика и все остальные необходимые сущности.

64ce54fe56c81c553e4fc287c6c1cc41.png

Как она тестирует?​

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

В рамках выполнения запроса мы обращаемся к тем или иным сервисам Platform V, которые уже успели интегрировать с нашим приложением. К примеру, в сценарии «создание счёта» Синтетическое приложение за один запрос вызывает порядка 10 сервисов, аналогично тому, как это сделали бы реальные потребители платформы.

50c6f2d1c2845d8721840ca59825487e.png

Вот некоторые из задействованных сервисов:

  • DataSpace — сервис для работы с данными (аналог Hibernate).
  • Audit — сервис для регистрации и долговременного хранения событий информационной безопасности.
  • One‑Time‑Token — инструмент для контроля доступа.
  • Archiving — сервис архивирования и передачи данных в аналитическую платформу.
Понятно, что невозможно проверить всю функциональность сервиса в ходе выполнения одного запроса. Поэтому в наших сценариях проверяется работоспособность основных, базовых функций продукта.

В чём плюсы такого подхода?​

Среди достоинств нашей Синтетики можно выделить следующие:

  1. Атомарность. Множество сервисов могут существовать только в рамках продуктов потребителей. Подобные компоненты нельзя установить без использующего их приложения — они не могут существовать атомарно. Такие клиентские модули зачастую сложно протестировать «руками». И наше приложение — это оптимальное решение для их проверки.
  2. Новый слой тестирования. Так как мы так же, как и реальные потребители, раскатываемся в своем пространстве, то у нас есть собственный CI/CD процесс, в котором мы можем отлавливать возникающие инсталляционные дефекты.
  3. Интеграция. Кроме всего вышеперечисленного, мы проводим проверки непосредственно межсервисного взаимодействия: модуль авторизации, сервисы репликации данных.

Но не всё так просто…​

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

За время работы над Синтетикой курьезных ситуаций случалось достаточно много. Но, пожалуй, один из самых забавных случаев, с которым мы столкнулись — это ответ на вопрос: «А почему все‑таки сервис не работает?». «Сейчас проблема в том, что вы подключили все, что указано в документации», — невозмутимо ответили нам в сопровождении.

Но, с другой‑то стороны, каждая проблема — это вызов. И так как у нас их много, мы быстро учимся. За прошедшие полтора годы мы превратились из обычных Java‑разработчиков в Java‑разработчиков, разбирающихся в CI/CD процессах, процессах сертификации и безопасности, администрировании инфраструктуры и, что немаловажно, закаливших свою нервную систему!

Ну а главное, что помогает переносить все невзгоды, — вера, что мы можем сделать продукт лучше. И, не побоимся этого сказать, — понимание того, что мы стоим на страже потребителя.

Промежуточные итоги​

Итак, в сухом же остатке за прошедшие полтора года жизни к нашему приложению было подключено более 80% сервисов Platform V. Что привело к:

  1. Значительному уменьшению времени тестирования на потребителях. Для интеграционного тестирования оно снизилось вдвое, а для Smoke тестирования в 4 раза.
  2. Расширению покрытия, включая интеграционный слой и CI/CD процессы.
  3. Упрощению процесса установки непосредственным потребителем сервиса.
На будущее мы себе поставили цель охватить все 100% сервисов платформы, и разработать ряд прикладных шаблонов, чтобы подключение новых сервисов занимало минимум времени. Раз уж мы первыми «трогаем продукт», то мы мечтаем облегчить этот путь будущим потребителям.

 

LavillMat

Member
mission lnc esirna, human ac004947 - купить онлайн в интернет-магазине химмед
Tegs: qs oa pcr plates, cstm format each - купить онлайн в интернет-магазине химмед
qs openarray pcr plates custom 10 pk - купить онлайн в интернет-магазине химмед
qs openarray accessories kit each - купить онлайн в интернет-магазине химмед

mission lnc esirna, human ac004947 - купить онлайн в интернет-магазине химмед https://chimmed.ru/products/mission-lnc-esirna-human-ac004947-id=4208601
 
Сверху