Регрессионное тестирование: Практическое руководство с примерами

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

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

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

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

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

БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"

Получение необходимых требований

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

Браузер Google Chrome

В наших примерах мы будем использовать Automate — инструмент для автоматизации тестирования, разработанный Testim. Для создания тест-кейсов применяется расширение для браузера Chrome. Для работы необходим Google Chrome, однако могут быть использованы и другие браузеры на основе Chromium, такие как Opera или Edge.

Учетная запись на сайте Testim

Следующий шаг — зарегистрировать бесплатную учётную запись на Testim. Сначала перейдите на страницу регистрации. Вы можете зарегистрироваться, используя учётную запись Google или GitHub. Также есть возможность создать учётную запись, указав электронную почту с доменным именем и пароль.

Установите расширение Testim для браузера

После регистрации система попросит указать три теста, которые вы планируете пройти первыми.

Мои тесты будут называться: «Первый регрессионный тест», «Второй регрессионный тест» и «Третий регрессионный тест». Вы можете использовать более креативные названия. После завершения, нажмите «Далее». Далее Testim проведёт вас через интерактивное руководство, где предложит записать первый тест.

Нажмите на «Первый регрессионный тест» или название вашего теста. Появится следующий шаг тура, в котором Testim укажет кнопку для начала тестирования.

Нажмите на красный кружок. После этого Testim предложит установить расширение для Chrome и автоматически начнёт процесс установки.

Нажатие на «Установить расширение» перенаправит вас в интернет-магазин Chrome, где вы сможете установить расширение Testim Editor так же, как и любое другое расширение. Этот процесс займет всего несколько секунд.

Теперь, когда все компоненты готовы, можно приступать к созданию тестовых сценариев.

Расширьте тестовое покрытие

Быстрое и гибкое создание сквозных тестов на основе искусственного интеллекта – создано для масштабирования.

Начните тестирование бесплатно

Пора засучить рукава: примеры регрессионного тестирования на практике

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

Пример №1: Проверка работоспособности функционала корзины покупок

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

Установив расширение Testim Editor, вы можете вернуться на предыдущую вкладку, чтобы продолжить начатое. Нажмите на кнопку “Начать запись”:

Когда вы это сделаете, Testim Automate запросит базовый URL для теста. В рамках этого урока используется демонстрационный сайт, созданный для тестирования. Введите https://demoblaze.com и нажмите кнопку «Создать тест».

После нажатия на кнопку откроется новое окно браузера с тестируемым сайтом.

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

  1. Выберите первый продукт — смартфон Samsung Galaxy S6.
  2. На странице продукта нажмите кнопку «Добавить в корзину».
  3. Откройте «Корзину», которая находится четвертым пунктом в основном навигационном меню. На странице корзины убедитесь, что добавленный товар отображается, а общая сумма составляет $360.

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

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

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

Просто: измените тест, добавив шаг верификации.

Во вкладке редактора перейдите к последнему шагу теста и нажмите кнопку «Добавить (+)» . В появившемся меню выберите раздел «Проверки» (иконка с галочкой), затем нажмите «Проверить текст элемента».

Вы увидите сообщение, что вам нужно либо открыть URL, либо выполнить тест до указанного шага. Выберите второй вариант. Откроется окно браузера, где тест выполнит сценарий до последнего шага. Затем появится сообщение о том, что тест достиг точки останова (breakpoint).

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

Повторно запустите тест. Он должен завершиться успешно.

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

Пример №2: Поисковая функциональность в книжном магазине

Для нашего второго примера используется другой демонстрационный сайт, связанный с электронной коммерцией: https://demoqa.com/books

В редакторе нажмите кнопку “Список тестов” на левой панели.

Перейдите в поле поиска и введите “Git”. Таблица с заголовками отфильтруется, оставив отображённую книгу о Git. Теперь начинается важная часть: без остановки теста вернитесь в окно редактора. Там нажмите кнопку добавления после последнего шага и добавьте новую проверку. На этот раз, вместо проверки текста, проверьте наличие элемента, нажав «Проверить видимость элемента».

После этого вернитесь к тестируемому сайту. Необходимо выбрать элемент «Git Pocket Guide», нажав на него. Завершите тест после выбора. Вернувшись в редактор, убедитесь, что последний шаг — проверка. Запустите тест, чтобы проверить его успешность. После успешного выполнения теста сохраните его, прежде чем переходить к следующему примеру.

После этого вернитесь к тестируемому сайту. Необходимо выбрать элемент «Git Pocket Guide», нажав на него. Завершите тест после выбора. Вернувшись в редактор, убедитесь, что последний шаг — проверка. Запустите тест, чтобы проверить его успешность. После успешного выполнения теста сохраните его, прежде чем переходить к следующему примеру.

Пример #3: Функциональность входа в систему

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

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

Базовый URL: https://orangehrm-demo-6x.orangehrmlive.com — это демонстрационный сайт для OrangeHRM, системы управления человеческими ресурсами с открытым исходным кодом. Ваша задача — выполнить вход с учётной записью admin и паролем admin123.

После успешного входа вы увидите следующее:

На этом этапе добавьте шаг проверки, чтобы убедиться, что вошедший пользователь — Жаклин Уайт. Далее нажмите стрелку рядом с «Global HR Manager» и выйдите с веб-сайта. Процесс создания теста с использованием Automate завершён.

Регрессионное тестирование: дополнительные советы

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

  • Виды тестирования. Существует множество форм автоматизированного тестирования: модульное (юнит), интеграционное, сквозное (end-to-end) и другие. Регрессионное тестирование следует применять на всех уровнях пирамиды автоматизации.
  • Инструменты с кодом и без кода. Для автоматизации тестирования доступны различные инструменты. Изучите их и протестируйте, учитывая навыки и особенности вашей команды. Важно помнить, что тестирование сегодня — это ответственность всех участников проекта, и не следует ограничиваться только инструментами, требующими навыков программирования.
  • Оценка вероятности возникновения проблем. Тестирование программного обеспечения — это экономически важный процесс. Поэтому необходимо регулярно оценивать его рентабельность (ROI). Это включает анализ эффективности подхода, особенно в сценариях с низкой вероятностью возникновения ошибок.

Заключение

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

В этом посте были рассмотрены три примера создания автоматизированных тестов с использованием Testim Automate. Тесты были упрощены для демонстрации. Однако Automate — это инструмент с широким функционалом. Если вы еще не создали аккаунт, рекомендуем сделать это. Спасибо за внимание.

Перевод статьи «Regression Testing Examples: A Practical Walk-Through».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *