ЧТО ТАКОЕ СКВОЗНОЕ (E2E) ТЕСТИРОВАНИЕ? | ПОДРОБНОЕ РУКОВОДСТВО

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

Содержание

В этой записи блога мы обсудим основы E2E-тестирования и объясним, почему оно так важно для обеспечения качества программного обеспечения. Так что читайте дальше и узнайте все, что вам нужно знать об этом важном процессе тестирования!

ЧТО ЭТО КОНЕЦ КОНЕЧНОЕ (E2E) ТЕСТИРОВАНИЕ? | ПОДРОБНОЕ РУКОВОДСТВО

Что такое сквозное тестирование?

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

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

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

Почему комплексное тестирование Необходимо тестирование?

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

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

Он предотвращает риск,

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

Как проводить E2E-тестирование?

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

Шаг 1. Здесь мы должны проанализировать требования и получить четкое представление об ожиданиях.
Шаг 2. Тщательно проанализируйте требования к программному и аппаратному обеспечению.
Шаг 3.Настройте тестовую среду на основе заданных требований.
Шаг 4. Изучите основную систему и подсистемы
Шаг 5. Опишите обязанности. системы, т. е. узнать ожидаемую реакцию системы.
Шаг 6. Составьте список методов тестирования, необходимых для тестирования, а также инструментов, языков и т. д.
Шаг 7. Разработайте тестовые примеры и убедитесь, что мы отслеживаем их по матрице требований.
Шаг 8. Перед запуском теста в каждой системе сохраните как входные данные, так и выходные результаты.

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

Пример сквозного тестирования

Давайте рассмотрим пример клиента, использующего приложение электронной коммерции, и посмотрим, как мы можем применить сквозное тестирование к этому сценарию

Шаг 1. Войдите в приложение
Шаг 2.  Просмотр различных товаров.
Шаг 3. Выберите товар и добавьте его в корзину.
Шаг 4.  Подтверждение. и разместите заказ
Шаг 5.  Выполните платеж
Шаг 6.  Проверьте детали заказа.
Шаг 7.  Выйдите из приложения

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

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

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

Как создать сквозные тестовые случаи?

Разработка тестового примера для модульного тестирования полностью отличается от тестирования API. При E2E-тестировании мы одновременно пройдем множество блоков кода и несколько API. Для создания End to End Test Cases мы должны разбить поток пользователя на небольшие шаги. Здесь мы проверяем каждую функцию, а также ее интеграцию между различными системами и целостность данных между ними.

Вот некоторые процессы, которые помогут нам создать эффективные и точные тестовые примеры для нашего сквозного тестирования.

  • Определить объем E2E
  • Ошибки, на которые нужно обратить внимание
  • Определить потоки пользователей< /ul>

    Определение масштаба E2E

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

    Исправление ошибок

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

    Определить поток пользователей

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

    Жизненный цикл сквозного тестирования

    Сквозной жизненный цикл тестирования состоит из четырех этапов:

    • Планирование тестирования
    • Дизайн тестирования
    • Выполнение теста
    • Анализ результатов

    ЧТО ТАКОЕ СКВОЗНОЕ (E2E) ТЕСТИРОВАНИЕ? | ПОДРОБНОЕ РУКОВОДСТВО

    Планирование тестирования: End to End Life Cycle похож на STLC, здесь мы планируем важные этапы, это помогает нам указать критическую задачу, запланировать сроки и ресурсы для тестирования.

    Дизайн тестирования: На этом этапе мы создаем тестовые примеры, тестовые спецификации и выполняем анализ использования, анализ рисков, а затем планируем тесты.

    Выполнение теста: здесь мы выполняем тест, проверяя приложение от начала до конца. Мы задокументируем проблемы, наблюдения и замечания.

    Анализ результатов. На этом этапе мы анализируем и сравниваем результаты тестирования.

    От начала до конца конец Методы тестирования

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

    Горизонтальное E2E-тестирование

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

    • Мы проводим горизонтальное E2E-тестирование с точки зрения пользователя.
    • Он проверяет, может переходить к другой части приложения и выполнять нужные действия
    • Это помогает нам обнаруживать ошибки, которые мы могли пропустить во время модульного тестирования.
    • Мы можем выполнять его на каждом этапе бизнес-процесса, это может помочь нам сопоставить требования с разработанным приложением.
    • Это обеспечивает работу взаимосвязанного процесса. правильно, тестируя от начала до конца.
    • При таком подходе мы можем получить больше информации о функциональности приложения.
    • Обычно мы проводим это тестирование, когда среда стабильна, в конце цикла выпуска.< /ul>

      Необходимые условия для горизонтального тестирования

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

      Преимущества горизонтального тестирования Тесты

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

      Пример

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

      Вертикальное тестирование E2E

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

      • Вертикальное тестирование сосредоточено на уровнях, оно проверяет каждый уровень архитектуры приложения.
      • Мы будем работать с подсистемами, которые независимы друг от друга на детальном уровне.
      • Здесь мы начинаем с модульного тестирования, затем продолжаем тестирование как пользовательского интерфейса, так и Уровни API.
      • Мы выполняем это либо в иерархическом, либо в последовательном порядке.
      • Обычно это делается, когда в системе нет пользовательского интерфейса или пользовательский интерфейс находится на высоком уровне сложности.

      Предпосылки для вертикального тестирования

      Поскольку мы сосредоточены на архитектурном уровне приложения, нам потребуется поддержка со стороны стратегий тестирования или разработки, таких как разработка на основе поведения (BDD), разработка на основе тестирования (TDD) или непрерывное тестирование (CI/CD).

      Преимущества вертикальных тестов

      • Он обеспечивает высокий охват кода.
      • Он создает более целенаправленные тесты.
      • Это приводит к более быстрому выполнению тестов.
      • Полезно безопасно тестировать критически важное программное обеспечение.

      Пример

      В вертикальном E2E-тестировании мы тестируем интерфейс прикладной программы (API).

      Контрольный список E2E-тестирования

      Вот список контрольных списков для сквозного тестирования:

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

      Когда выполнять сквозное тестирование

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

      Преимущества сквозного тестирования Завершающее тестирование

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

      Проблемы сквозного тестирования и способы их решения

      Сквозное тестирование — полезная форма тестирования, но оно сопряжено со своими трудностями.

      Задача № 1. Построение рабочих процессов

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

      Решение. Здесь команда должна провести мозговой штурм, придумать критические сценарии и расставить их по приоритетам. Мы также можем получать отзывы от клиентов.

      Задача №2: Тестовая среда

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

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

      Задача №3: ​​Долгосрочное обслуживание

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

      Решение. Здесь мы можем определить правильную структуру тестового костюма с самого начала и реорганизовать его, когда это возможно, чтобы поддерживать сценарии.  

      Задание 4. Проверка на ненадежность

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

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

      Вызов № 5: Медленный тест

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

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

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

      • Приоритет пользовательские рабочие процессы.
      • Запускайте весь набор тестов одновременно.
      • Автоматизируйте сквозной процесс тестирования.
      • Тестируйте только критически важные и часто используемые функции.
      • Разверните программное приложение в рабочей среде.
      • Поддерживайте правильную структуру при выполнении тестирования, так как оно содержит несколько компонентов, которые могут стать сложными.
      • Это должно быть легко для настройки тестовой среды, и после тестирования данные должны быть легко удалены и разобраны.

      Метрики для сквозного тестирования

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

      Некоторые из лучших способов измерить успех E2E-тестирования:

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

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

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

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

      Структура разработки E2E-тестирования

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

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

      < ul>

    • Функции пользователя
    • Условия
    • Тестовые примеры

    Функции пользователя

    В этом процессе мы должны сделать следующее:< ul>

  • Мы должны перечислить все функции приложения вместе с взаимосвязанными подсистемами.
  • Для каждой отдельной функции мы должны отслеживать и записывать все действия, т. е. проверять входные и выходные данные для этих функций.
  • Проанализировать связь между пользовательскими функциями.
  • Определить функциональность, которая является независимой, зависимой, повторно используемой и т. д. .

Условия

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

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

Тестовые наборы

Чтобы создать тестовые наборы для сквозного тестирования, рассмотрите следующие шаги:

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

Сквозные тесты и функциональные тесты

<класс=столбец-1>Сквозное тестирование

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

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

При функциональном тестировании объем тестирования ограничен одной функциональностью.

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

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

Здесь мы тестируем доступ нескольких пользователей к некоторым частям системы.

Здесь мы тестируем доступ к приложению одним пользователем.

Здесь мы проверяем каждый шаг процесса.

Здесь мы проверяем входные и выходные данные системы.

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

Тестирование от начала до конца

Тестирование системы

Сквозное тестирование проверяет программное приложение и взаимосвязанные подсистемы.

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

Оно проверяет весь сквозной поток системы.

Он проверяет функциональность и функции системы.

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

Здесь мы рассматриваем только функциональное тестирование и нефункциональное тестирование.

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

Мы его проводим после интеграционного тестирования.

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

Perfecto

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

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

< h3>Katalon

Katalon Studio – это инструмент автоматизации, который упрощает комплексное тестирование. Он имеет три основные функции, которые можно применять при тестировании E2E, средство записи, встроенное ключевое слово и настраиваемые ключевые слова.

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

Selenium

Selenium — это бесплатная среда автоматического тестирования с открытым исходным кодом, которая используется для проверки веб-приложений. Это наиболее широко используемая система автоматизации. Он позволяет создавать сценарии на таких языках программирования, как Java, Python, C#, Ruby, Node JS, Pearl и т. д.

  • Selenium прост в использовании, поскольку он разработан на Javascript.
  • Selenium позволяет тестировать приложение на различных веб-браузеры, такие как Chrome, Firefox, Safari и т. д.
  • Это платформа, независимая от платформы, мы можем развернуть ее в системах Windows, Mac и Linux
  • Его можно интегрировать с другими инструментами, такими как TestNG и JUnit, для управления тестированием.
  • Большинство браузеров имеют встроенную поддержку автоматизации с помощью Selenium.

Cypress

< p>Cypress — это инструмент для тестирования внешнего интерфейса на основе Javascript. Он удобен для разработчиков, использует уникальную технику манипулирования DOM и работает непосредственно в браузере. Это открытый исходный код.

  • Cypress можно использовать для кроссбраузерного тестирования, и он универсален.
  • Автоматизация Cypress проста в настройке.
  • Cypress имеет возможности отладки.
  • Cypress может предоставить быстрые, надежные и последовательные результаты.
  • Cypress автоматически делает снимки экрана и видео, если возникает проблема.
  • Мы можем использовать шпионов, заглушки, часы для проверки и контроля поведения ответов, функций или таймеров сервера.

Cucumber

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

  • Cucumber устраняет разрыв в общении между бизнес-партнерами и техническими специалистами, совместно работая над спецификациями исполняемых файлов.
  • Тестировщики, не обладающие глубокими знаниями в области кодирования, могут создавать сценарии с использованием Cucumber.
  • По сравнению с Selenium, Cucumber имеет более быстрые подключаемые модули.
  • Он поддерживает различные программы. языки.
  • Он гибок с различными платформами, такими как Selenium, Ruby on Rails, Spring framework и т. д.

Leapwork

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

  • Он поддерживает автоматизацию как для веб-приложений, так и для настольных приложений.
  • Он легко интегрируется с конвейером CI/CD, подключает вас к существующим конвейерам с такими инструментами, как Jenkins, Jira, TFS и Bamboo.
  • Он имеет встроенный система отчетов о тестировании, которая собирает данные и представляет их в визуальной форме.
  • Она упрощает процесс разработки тестов за счет создания систем контроля версий, проста, но отслеживаема.
  • Это надежная, безопасная и не требующая обслуживания система, отвечающая требованиям автоматизации. .
  • Этому легко научиться.

Заключение

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

TAG: qa

От QA genius

Adblock
detector