atesting.ru Блог SOA-тестирование | Всеобъемлющее руководство

SOA-тестирование | Всеобъемлющее руководство

Тестирование SOA | Полное руководство

В этом руководстве по тестированию SOA мы подробно узнаем, что такое тестирование SOA, процесс тестирования SOA и следующие концепции.

Что такое SOA

Сервисно-ориентированная архитектура — это метод архитектуры, с помощью которого бизнес-сервисы разделяют обязанности на различные сервисы, которые зависят друг от друга.

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

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

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

Примеры SOA

SOA используется почти во всех секторах и отраслях Интернета, таких как здравоохранение, правительство, военные, военно-воздушные силы, электронная коммерция, банки, пищевая промышленность и т. д.

Несколько примеров:

  • SOA помогла банку First Citizen предложить услуги своим клиентам наряду с 20 другими учреждениями, использующими такие услуги, как создание изображений чеков, обработка чеков и внешнее обслуживание клиентов.
  • OfficeMax, используя услуги, предоставляемые через SOA, выполнял основные бизнес-функции, такие как выполнение заказов , анализ бизнес-транзакций в реальном времени, отслеживание и измерение сходства продуктов, самые продаваемые продукты, проактивное реагирование на складские запасы, проверка ценовых ошибок и т. д.
  • Cisco представила свой процесс заказа и услуги с использованием SOA, чтобы убедиться, что ее опыт заказа продуктов согласован для всех продуктов и каналов, подразделений, приобретений и деловых партнеров.

Что такое тестирование SOA

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

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

Тестирование SOA — это проверка веб-служб, которые действуют как интерфейс между клиентом и сервером.

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

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

Архитектура веб-служб SOA

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

  • Веб-служба публикуется в Интернете поставщиком услуг в реестре веб-служб.
  • Интернет действует как мост между приложением и веб-службой.

 Тестирование SOA | Полное руководство

Давайте рассмотрим простой пример, чтобы объяснить, как потребитель взаимодействует с веб-службами.

  1. Пользователь открывает приложение и ищет данные.
  2. Клиентская система отправляет запрос вместе с URL-адрес для поиска службы в реестре веб-служб.
  3. Реестр веб-служб получает соответствующий ответ, клиент получает URL-адрес и WSDL в качестве ответа.
  4. Связь устанавливается с помощью протокола SOAP, отправляя ответ обратно поставщику услуг и запрашивающей стороне.
  5. Полученный ответ преобразуется в ответ HTTPS, который является окончательным ответом, приложение потребителя заботится о расшифровка ответа.

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

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

Тестирование SOA | Полное руководство

Уровень потребителя

Уровень потребителя — это уровень пользовательского интерфейса системы. С точки зрения тестирования, это область BlackBox.

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

Уровень процесса

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

Он включает в себя набор различных сервисов, которые являются частью единой функциональности.

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

Уровень процесса в основном сосредоточен на интерфейсах и интеграции с базой данных, то есть на процессе.

< p> Мы можем понять уровень процесса на примере веб-сайта электронного обучения.

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

Уровень обслуживания

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

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

Обычно на этих веб-сайтах есть — информационные статьи (блог), видео (видеоролики на YouTube), подписки по электронной почте для получения дальнейших обновлений.

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

Интернет сервисы заботятся о транзакциях запроса/ответа.

Веб-сайт отображает соответствующие данные, которые запрашивает пользователь. Уровень служб состоит из служб, которые получают соответствующие данные из базы данных —

  • служба блогов
  • служба потокового видео
  • служба подписки по электронной почте

Процесс тестирования SOA

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

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

  • Требования/проверка дизайна
  • Планирование тестирования
  • Разработка теста
  • Настройка тестовой среды
  • Выполнение теста
  • Отчет о тестировании

Тестирование веб-служб

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

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

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

Инструменты тестирования API, такие как Soap UI, помогают в выполнении тестирования.

Ознакомьтесь с нашим подробным руководством по тестированию API.

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

Тестирование функциональности в SOA может проверять функциональность каждого сервисов независимо.

Обычно функциональное тестирование группируется с тестированием веб-сервисов, поскольку оба имеют схожие процессы.

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

Ознакомьтесь с нашим подробным руководством по функциональному тестированию

Тестирование производительности

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

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

Для тестирования производительности используются инструменты тестирования производительности, такие как Jmeter, Gatling и т. Д.

Ознакомьтесь с нашим подробным руководством по тестированию производительности

Тестирование безопасности

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

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

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

Ознакомьтесь с нашим подробным руководством по тестированию безопасности

Проблемы при тестировании SOA

  • Безопасность этих веб-служб вызывает огромную озабоченность, поскольку вредоносные системы могут действовать как сторонние службы и извлекать конфиденциальную информацию из приложение.
  • Команде приходится уделять много внимания автоматизации, поскольку сервисы могут быть очень динамичными, поэтому для этого требуется частое регрессионное тестирование с регулярными обновлениями и обслуживанием.
  • Без надлежащего пользовательского интерфейса определение правильных входных и выходных данных затруднено выполнить исчерпывающее тестирование этих сервисов.
  • Разработка стратегий тестирования затруднительна, поскольку слабо связанная архитектура SOA не имеет четко определенных границ.
  • Стоимость планирования и выполнения высока, поскольку для этого требуются ресурсы с разные наборы навыков

Преимущества SOA

Тестирование SOA | Полное руководство

  • Повторное использование — Услуги будут использоваться повторно, что поможет сократить время и затраты. Он даже использует стороннее приложение. Например, некоторые веб-сайты используют карты Google для своего раздела адресов, они просто повторно используют существующую службу, а не создают свою собственную службу определения местоположения.
  • Надежность — приложения SOA просты в обслуживании, так как легко отлаживать небольшие службы и устранять проблемы, не нарушая других функций, тогда как монолитные приложения трудно поддерживать, отлаживать и тестировать на качество, чтобы сузить проблемные области.
  • Масштабируемость — службы работают на нескольких серверах в среде, это увеличивает масштабируемость. Если объем данных увеличивается, с ними легко справиться, запустив больше экземпляров службы.
  • Независимость от платформы. , это делает сервисы доступными для всех.
  • Гибкость — SOA имеет четкое соответствие между сервисами и бизнес-уровнями, это помогает организации меняться в соответствии с бизнес-потребностями и технологическими достижениями. .
  • Простота обслуживания . Поскольку это слабо связанная архитектура, эта независимость позволяет разработчикам легко добавлять, обновлять и изменять другие службы.

Разница между API и SOA

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

API SOA
API — это интерфейс, который предоставляется несколькими приложениями, чтобы другие приложения могли взаимодействовать с ним. SOA — методология архитектуры, с помощью которой бизнес-службы разделяют обязанности между различными службами, которые могут быть зависимыми. друг на друга.
API — это создание служб и обеспечение их открытого доступа. SOA — это архитектурная практика, которая строится вокруг несвязанных приложений и способствует повторному использованию служб.
Он используется для инициирования связи между клиентом и сервером. Это корпоративно-ориентированная форма архитектуры.
API используются как для внешнего, так и для внутреннего использования. SOA — это в основном внутренние варианты использования.
API подходит для массового использования разработчиками/партнерами. SOA обычно используется для A2A (от приложения к приложению) и B2B (от бизнеса к бизнесу).
API — это обычно ассоциируется с REST/JSON. SOA ассоциируется с XML и SOAP.

Примеры использования тестирования SOA

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

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

Лучшие практики для тестирования SOA

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

Заключение

Тестирование SOA должно в основном сосредоточиваться на тестировании бизнес-стороны. Поскольку он объединяет несколько служб вместе, изменения, внесенные в одну службу, могут повлиять на другие службы. Регрессионное тестирование решает эти проблемы, иначе существует высокая вероятность того, что система может выйти из строя в результате незначительного изменения в одной из служб.

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

TAG: qa