
Сквозное тестирование
Сквозное тестирование (End-to-end, E2E, Chain testing) — это вид тестирования, используемый для проверки программного обеспечения от начала до конца, а также его интеграцию с внешними интерфейсами. Цель сквозного тестирования состоит в проверке всего программного обеспечения на предмет зависимостей, целостности данных и связи с другими системами, интерфейсами и базами данных для проверки успешного выполнения полного производственного сценария.
Наряду с программной системой тестирование также обеспечивает проверку пакетной обработки и обработки данных из других вышестоящих и нижестоящих систем. Отсюда и название «End-to-End». Сквозное тестирование обычно проводится после функционального и системного тестирования. Для его проведения используются реальные данные и тестовая среда для имитации рабочего режима.

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

Основные виды деятельности, связанные со сквозным тестированием:
-
Изучение требований к сквозному тестированию;
-
Настройка тестовой среды и требования к оборудованию/программному обеспечению;
-
Описание всех процессов системы и ее подсистем;
-
Описание ролей и ответственности для всех систем;
-
Методология и стандарты тестирования;
-
Сквозное отслеживание требований и разработка тест-кейсов;
-
Входные и выходные данные для каждой системы.
Как писать тест-кейсы для сквозного тестирования?

Фреймворк сквозного тестирования включает в себя три части:
-
Создание пользовательских функций
-
Создание условий
-
Создание тест-кейсов
Рассмотрим каждую из них подробно.
Создание пользовательских функций
Как часть построения пользовательских функций, должны быть выполнены следующие действия:
-
Перечислить функции системы и их взаимосвязанные компоненты;
-
Перечислить входные данные, действия и выходные данные для каждой характеристики или функции;
-
Определить отношения между функциями;
-
Определить, является ли функция многократно используемой или независимой.
Например, рассмотрите сценарий, при котором вы входите в свой банковский аккаунт и переводите деньги со своего счета на счет в другой банк (сторонняя подсистема):
-
Войти в банковскую систему.
-
Проверить сумму остатка на счете.
-
Перевести определенную сумму со своего счета на другой банковский счет (сторонняя подсистема).
-
Проверить текущий баланс счета.
-
Выйти из приложения.
Построение условий на основе пользовательских функций
В рамках построения условий выполняются следующие действия:
-
Построение набора условий для каждой определенной пользовательской функции;
-
Условия включают последовательность, время и условия данных.
Например, проверка дополнительных условий, таких как:
Страница авторизации
-
Неверное имя пользователя и пароль
-
Проверка с действительным именем пользователя и паролем
-
Проверка надежности пароля
-
Проверка сообщений об ошибках
Сумма остатка
-
Проверьте текущий баланс через 24 часа (Если перевод отправляется в другой банк)
-
Проверьте сообщение об ошибке, если сумма перевода больше суммы текущего баланса.
Создайте тестовый сценарий
Построение тестового сценария для определенной пользовательской функции
В нашем случае,
-
Войти в систему
-
Проверить сумму остатка на банковском счете
-
Перевести сумму остатка на банковском счете
Создание нескольких тест-кейсов
Создайте один или несколько тест-кейсов для каждого определенного сценария. Тест-кейсы могут включать каждое условие как отдельный тестовый пример.
Инструмент сквозного тестирования
testRigor
В мире сквозного тестирования лидером отрасли является testRigor. Он помогает создавать тесты без кода для веб-интерфейса, нативных и гибридных мобильных приложений, мобильных браузеров и API. С его помощью можно тестировать электронную почту и SMS, загруженные файлы .XLS, .DOC, .PDF и т. д.
Функции:
-
Написание тестов без кода просто на английском языке.
-
Покрытие Web + Mobile + API в одном тесте. Кроссплатформенная и кроссбраузерная поддержка.
-
Создание тестов в 15 раз быстрее по сравнению с Selenium.
-
Сокращение обслуживания тестов до 99,5%.
-
testRigor безопасен и соответствует стандарту SOC 2 Type 2.
-
Интеграция с CI/CD и управлением тест-кейсами.
-
Выполнение 1000 тестов и получение результатов менее чем за 30 минут.
Метрики сквозного тестирования:
Ниже приведены некоторые метрики, используемые для оценки прогресса сквозного тестирования.
-
Статус подготовки тест-кейса: показывает реальный прогресс подготовки тест-кейса по сравнению с запланированным.
-
Еженедельный прогресс тестирования. Дает подробную информацию о завершении теста за неделю в процентах. Неудачные, не выполненные и выполненные тесты по сравнению с запланированными для выполнения тестами.
-
Статус и детали дефектов — показывает процент открытых и закрытых дефектов понедельно. Кроме того, распределение дефектов по неделям в зависимости от серьезности и приоритета.
-
Доступность среды — общее количество часов доступности / общее количество часов, запланированных в день для тестирования.
Сквозное тестирование vs системное тестирование
|
Сквозное тестирование |
Системное тестирование |
|
Проверяет программную систему, а также взаимосвязанные подсистемы. |
Проверяет только программную систему в соответствии со спецификациями требований. |
|
Проверяет весь сквозной поток процессов. |
Проверяет функциональные возможности и функции системы. |
|
Для тестирования рассматриваются все интерфейсы и серверные системы. |
Рассматриваются функциональное и нефункциональное тестирование |
|
Выполняется после завершения тестирования системы. |
Выполняется после интеграционного тестирования. |
|
Сквозное тестирование включает в себя проверку внешних интерфейсов, которую сложно автоматизировать. Следовательно, ручное тестирование предпочтительнее. |
Для тестирования системы можно выполнять как ручное, так и автоматизированное тестирование. |
В заключение
Сквозное тестирование — это процесс проверки программной системы вместе с ее подсистемами. Самая большая трудность при этом типе тестирования состоит в том, что необходимо располагать достаточным количеством информации о всей системе, а также о взаимосвязанных подсистемах.
Приглашаем всех желающих на открытое занятие, на котором мы познакомимся с фреймворком Selenide и перепишем существующие тесты на него. Регистрация доступна по ссылке.
ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/681066/
Добавить комментарий