Возвращайте до 18% с пополнений рекламы
  • Все популярные рекламные сети в одном окне
  • Рекламные инструменты — бесплатно
  • Доступ к конструктору лендингов и WebApp-приложений
  • Закрывающие документы точно в срок
ring svg
  1. Главная >
  2. Блог >
  3. Mobile first >
  4. Регрессионное тестирование: что это, типы и инструменты, когда и как проводить

Регрессионное тестирование: что это, типы и инструменты, когда и как проводить

Регрессионное тестирование: что это, типы и инструменты, когда и как проводить

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

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

Нет времени читать статью? Найдите ее в нашем телеграм-канале и сохраните себе в «Избранном» на будущее.

Содержание статьи

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

Когда проводить регрессионное тестирование?

Как начать регрессионное тестирование: 5 шагов

4 инструмента для регрессионного тестирования

Katalon Studio
Selenium
Watir
Apache JMeter

Методы регрессионного тестирования

1. Полная регрессия
2. Выбор регрессионного теста
3. Приоритизация тест-кейсов

В чем разница между повторным тестированием и регрессионным тестированием?

Типы регрессионного тестирования

1. Модульное регрессионное тестирование
2. Частичная регрессия
3. Полная регрессия

Регрессионное тестирование и управление конфигурацией

Регрессионное тестирование в agile-среде

7 советов как выбрать регрессионное тестирование

Вместо заключения: важное о регрессионном тестировании

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

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

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

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

Когда проводить регрессионное тестирование?

Регрессионное тестирование часто проводят в следующих ситуациях:

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

Как начать регрессионное тестирование: 5 шагов

В организациях используются разные процедуры регрессионного тестирования. Тем не менее есть несколько основных шагов.

Шаг 1. Распознайте изменения исходного кода

Найдите измененные компоненты или модули и их влияние на текущие функции. Затем определите модификацию и оптимизацию в исходном коде.

Шаг 2. Установите приоритет этих изменений и требований к продукту

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

Шаг 3. Установите критерии входа и точку входа

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

Шаг 4. Выберите точку выхода

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

Шаг 5. Составьте план своих тестов

Наконец, составьте список всех тестовых компонентов и установите подходящее время выполнения.

4 инструмента для регрессионного тестирования

Katalon Studio

Katalon Studio

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

Этот инструмент также позволяет выполнять сценарии в разных контекстах, браузерах и на разных устройствах. Настраиваемые отчеты о тестировании позволяют подробно оценить результаты тестирования и отправить их в виде вложений по электронной почте в форматах LOG, HTML, CSV и PDF.

Selenium

Selenium

Selenium — это инструмент для автоматизации тестирования веб-приложений. Это по-прежнему один из лучших инструментов для кросс-платформенного и кросс-браузерного регрессионного тестирования. Selenium поддерживает управляемое данными тестирование (data-driven testing) и автоматизированные тестовые сценарии (automated test scripts), которые циклически перебирают наборы данных.

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

Watir

Watir

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

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

Apache JMeter

Apache JMeter

Apache JMeter — это инструмент автоматизации тестирования с открытым исходным кодом, предназначенный для тестирования нагрузки и оценки производительности.

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

Методы регрессионного тестирования

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

1. Полная регрессия

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

Полная регрессия
Изображение: Firmbee.com для Unsplash

2. Выбор регрессионного теста

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

3. Приоритизация тест-кейсов

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

В чем разница между повторным тестированием и регрессионным тестированием?

В типичном процессе разработки программного обеспечения повторное тестирование (retesting) предшествует процедурам регрессионного тестирования. Вот еще несколько основных отличий.

Повторное тестирование

Регрессионное тестирование

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

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

Фокусируется исключительно на провалившихся тест-кейсах

Предназначено для тестирования пройденных кейсов и выявления новых непредвиденных проблем

Включает в себя верификацию ошибок

Ключевой компонент — автоматизация, позволяющая максимально использовать потенциал возможностей вашего тест-кейса.


Также устраняет любые базовые побочные эффекты, вызванные изменениями кода, наиболее экономичным способом


Типы регрессионного тестирования

Для производства высококачественного программного обеспечения регрессионное тестирование сочетают с разными другими формами тестирования.

Перед их выполнением важно понять различия между функциональным тестированием, регрессионным тестированием и дымовым тестированием (smoke testing). Существуют разные типы регрессионного тестирования.

1. Модульное регрессионное тестирование

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

2. Частичная регрессия

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

3. Полная регрессия

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

Чтобы подтвердить, что сборка (новые строки кода) некоторое время не обновляется, реализуется форма «финального» регрессионного тестирования. После этого конечным потребителям будет доступна эта окончательная версия.

Регрессионное тестирование и управление конфигурацией

Управление конфигурацией играет важную роль в регрессионном тестировании в agile-средах. В контексте «гибкой разработки» код постоянно изменяется. Чтобы убедиться в справедливости регрессионного теста, примите во внимание следующее:

  1. На этапе регрессионного тестирования не допускаются никакие модификации кода.
  2. Регрессионный тест не должен оказывать влияния из-за изменений разработчиков.
  3. Запрещаются модификации базы данных.
  4. Для регрессионного тестирования необходимо выбрать изолированную базу данных.

Регрессионное тестирование в agile-среде

Как вы знаете, основу методологии agile составляют поэтапные и итерационные процессы. Спринты (sprints) — это короткие итерации, используемые для разработки программного обеспечения или других продуктов.

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

Подготовка к регрессионному тестированию должна начинаться в начале цикла разработки продукта (product development cycle) и продолжаться до этапа развертывания (deployment phase). В методологии agile регрессионное тестирование может выполняться одним из двух способов:

  • Регрессия уровня спринта (sprint level regression). Этот тип регрессии выполняется для новых функций или улучшений, внесенных в последний спринт. Тест-кейсы выбираются в соответствии с новой добавленной функцией.
  • Сквозная регрессия (end-to-end regression). Все тест-кейсы выполняются повторно для тестирования всех функций продукта. Короткие спринты — требование метода agile. Следовательно, выполнение регрессионного тестирования должно быть регулярным. Если делать это вручную, QA-специалистам придется нелегко. Автоматизация позволяет выявить распространенные проблемы, а также сократить время выполнения.

7 советов как выбрать регрессионное тестирование

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

1. Выбирайте тест-кейсы, которые часто содержат ошибки

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

2. Выбирайте тест-кейсы с особо важной функциональностью

Выбирайте тест-кейсы, охватывающие ключевые функции приложения. Например, ключевые функции мобильного банковского приложения — это «Перевод средств» и «Оплата счетов». В первую очередь можно сконцентрироваться на тестировании этих функций.

3. Выбирайте тест-кейсы, в которых происходят частые изменения кода

В раздел мобильного банкинга «Просмотр заявок» было добавлено нескольких запросов услуги. Это «увеличение лимита кредитной карты», «запрос чековой книжки», «запрос на привязку аккаунта» и «запрос на прекращение платежа по чеку». Чтобы обеспечить эту возможность, код менялся несколько раз. Необходимо расставить приоритеты и выбрать тест-кейсы, охватывающие эту возможность.

В раздел мобильного банкинга «Просмотр заявок» было добавлено нескольких запросов услуги.
Изображение: Tran Mau Tri Tam ✪ для Unsplash

4. Охватите тестирование сквозных потоков

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

5. Тестируйте текстовые поля

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

6. Выбирайте риск-ориентированный подход к тестированию

Риск-ориентированный подход к гибкому регрессионному тестированию включает в себя ранжирование тестировщиками тест-кейсов в соответствии с их приоритетом. Это сокращает время и усилия, необходимые для регрессионного тестирования. Набор регрессионных тестов делится на три группы:

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

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

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

7. Стремитесь к сотрудничеству

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

Стремитесь к сотрудничеству
Изображение: Jason Goodman для Unsplash

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

Вместо заключения: важное о регрессионном тестировании

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

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

  1. Чаще обновляйте свой регрессионный пакет: пакет — это набор тест-кейсов, запускаемых при обновлении программы. Регрессионные тест-кейсы должны постоянно обновляться. Это занимает много времени.
  2. Многократно выполняйте эффективные тест-кейсы: запускайте тесты повторно, поскольку ваши регрессионные тесты могут содержать проблемы, выявленные ранее.
  3. Автоматизируйте: вы можете выполнять задачи быстрее с помощью автоматизированных технологий. Автоматизация — лучший способ ускорить выполнение тест-кейса. Поскольку обработка тест-кейсов утомительна, автоматическое регрессионное тестирование поможет тестировщикам сосредоточиться на более сложных тестах.

Высоких вам конверсий!

По материалам: technostacks.com. Автор: команда Technostacks

blog comments powered by Disqus
Возвращайте до 18% с пополнений рекламы
  • Все популярные рекламные сети в одном окне
  • Рекламные инструменты — бесплатно
  • Доступ к конструктору лендингов и WebApp-приложений
  • Закрывающие документы точно в срок
ring svg
copyright © 2011–2024 Все права защищены
Запрещено любое копирование материалов ресурса без письменного согласия владельца — ООО "Феникс-Маркетинг". ИНН:7725812838, КПП:772501001, ОГРН: 513774619323915280, Москва, ул. Ленинская слобода, д. 19, стр. 1, этаж/пом 3/25

ООО «Феникс-Маркетинг» — IT-компания с многолетним опытом работы, разрабатывающая инновационные решения для управления процессом лидогенерации (пост-клик маркетинг). Разработанное нами технологическое программное решение LPGENERATOR позволяет создавать целевые страницы в визуальном редакторе и управлять заявками (лидами) в CRM-системе в целях проведения эффективных, высококонверсионных рекламных кампаний