Содержание:
- Что такое регрессионное тестирование?
- Зачем нужно регрессионное тестирование?
- Как проводить регрессионное тестирование
- Выбор тест-кейсов для регрессионного тестирования
- Инструменты регрессионного тестирования
- Регрессионное тестирование и управление конфигурацией
- Разница между повторным тестированием и регрессионным тестированием
- Проблемы, возникающие при регрессионном тестировании
- Практическое применение регрессионного тестирования пример с видео
Что такое регрессионное тестирование?
Регрессионное тестирование – вид тестирования программного обеспечения, подтверждающий, что недавнее изменение программы или кода не оказало негативного влияния на уже существующую функциональность. Для регрессионного тестирования выбирается полный или частичный набор уже использовавшихся ранее тест-кейсов, которые выполняются повторно, чтобы убедиться, что весь функционал работает нормально.
Друзья, подпишитесь на наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Зачем нужно регрессионное тестирование?
Регрессионное тестирование необходимо всякий раз, когда изменяется код, и нужно определить, повлияет ли измененный код на другие части программного приложения. Более того, регрессионное тестирование необходимо, когда в программный продукт добавляется новая функциональность. Регрессионное тестирование также может проводиться при устранении функциональных дефектов или проблем с производительностью.
Как проводить регрессионное тестирование
Для того чтобы провести регрессионное тестирование, необходимо сначала задебажить код, чтобы выявить ошибки. После выявления дефектов вносятся необходимые изменения для их устранения, затем проводится регрессионное тестирование путем выбора соответствующих тест-кейсов из набора тестов, которые охватывают как измененные компоненты продукта, так и те, что могли быть затронуты неявно.
Maintenance программного обеспечения – это деятельность, которая включает в себя его улучшение, исправление дефектов, оптимизацию и удаление существующих функциональностей. Эти изменения могут привести к некорректной работе системы. Поэтому в этом случае регрессионное тестирование становится необходимым. Данный вид тестирования может быть проведен с использованием следующих методов:
Повторное тестирование всего продукта
Это один из методов регрессионного тестирования, при котором все тесты из существующего набора тест-кейсов должны быть выполнены заново. Это очень дорого, так как требует огромных затрат времени и ресурсов.
Отбор регрессионных тест-кейсов
Отбор регрессионных тест-кейсов – это метод, при котором выбираются только некоторые тест-кейсы, необходимые для проверки того, влияет ли измененный код на работу программного приложения или нет. Тест-кейсы при этом делятся на две части: актуальные, которые могут быть использованы в последующих циклах регрессии, и устаревшие, которые уже не понадобятся в последующих циклах.
Отбор приоритетных тест-кейсов
Расставьте приоритеты для тест-кейсов в зависимости от влияния на бизнес-метрики продукта, а также критические и часто используемые функциональности. Выбор тест-кейсов на основе приоритетов значительно сократит кол-во регрессионных тестов.
Выбор тест-кейсов для регрессионного тестирования
По статистике значительное количество дефектов, о которых сообщают клиенты, является последствием исправления ошибок в последнюю минуту, поэтому выбор тест-кейсов для регрессионного тестирования – это целое искусство. Эффективное регрессионное тестирование может быть выполнено путем выбора следующих тест-кейсов:
- Тест-кейсы, в которых чаще всего встречаются дефекты
- Функциональности, которые более заметны для пользователей
- Тест-кейсы, которые проверяют основные функциональности продукта
- Тест-кейсы функциональностей, которые претерпели большое количество изменений в недавнее время
- Все интеграционные тест-кейсы
- Все сложные тест-кейсы
- Тест-кейсы граничных значений
- Набор основных позитивных и негативных тест-кейсов
Инструменты регрессионного тестирования
Если ваше программное обеспечение подвергается частым изменениям, затраты на регрессионное тестирование будут возрастать. В таких случаях ручное выполнение тест-кейсов увеличивает время выполнения регрессии, а также затраты. Автоматизация регрессионного тестирования – разумный выбор в таких случаях. Степень автоматизации зависит от количества тест-кейсов, которые остаются актуальными для повторного использования в последующих циклах тестирования.
Ниже перечислены наиболее удобные инструменты, используемые как для функционального, так и для регрессионного тестирования в разработке программного обеспчения:
1. testRigor
TestRigor позволяет вам создавать тестовые сценарии в виде исполняемых спецификаций на простом английском языке без использования кода. Пользователи с любыми техническими способностями могут создавать сквозные тесты любой сложности, охватывающие компоненты мобильного, web- и API-тестирования в одном тесте. Шаги теста представляют собой действия конечного пользователя и не требуют таких деталей реализации, как XPaths или CSS селекторы.
Особенности:
- Бесплатная неограниченная публичная версия
- Тест-кейсы на английском языке
- Неограниченное количество пользователей и неограниченное количество тестов
- Самый простой способ научиться автоматизации
- Рекордер для шагов тест-кейсов для web-платформ
- Интеграция с CI/CD и инструменты управления тест-кейсами
- Тестирование электронной почты и SMS
- Web + Mobile + API тестирование в одном тесте
2. Avo Assure
Avo Assure – это решение для автоматизации тестирования, не зависящее от технологий проекта и не требующее кода, которое помогает тестировать сквозные бизнес-процессы несколькими нажатиями кнопок. Инструмент делает регрессионное тестирование более простым и быстрым.
Особенности:
- Автогенерация тест-кейсов с подходом, на 100% исключающим код
- Тестирование web- и нативных приложений, тестирование на мобильных устройствах, ERP-приложений, мэйнфреймов и т.д. с помощью единого инструмента.
- Возможности тестирования доступности
- Выполнение тест-кейсы на одной виртуальной машине независимо или параллельно с помощью интеллектуального планирования.
- Интеграция с Jira, Jenkins, ALM, QTest, Salesforce, Sauce Labs, TFS и т.д.
- Содание тест-планов и разработка тест-кейсов с помощью диаграмм связей (mindmaps).
3. Subject7
Subject7 – это облачное решение для автоматизации тестирования без кода, которое объединяет все виды тестирования в единую платформу и позволяет любому человеку стать экспертом в области автоматизации. Простое в использовании программное обеспечение позволяет быстро и легко создавать регрессионные тесты, не написав ни строчки кода, а также выполнять тысячи тестов на ежедевных сборках.
Особенности:
- Легко интегрируется с инструментами DevOps/Agile с помощью встроенных плагинов, интеграций в приложения и открытых API.
- Параллельное выполнение в облаке или локально с высоким уровнем безопасности.
- Гибкая отчетность о дефектах с видеозаписью результатов.
- Простое, не требующее измерения ценообразование, обеспечивающее финансовую предсказуемость.
- Соответствие стандарту SOC2 Type2
Selenium: Это инструмент с открытым исходным кодом, используемый для автоматизации веб-приложений. Selenium можно использовать для регрессионного тестирования на основе браузера.
Quick Test Professional (QTP): HP Quick Test Professional – это программное обеспечение, предназначенное для автоматизации функциональных и регрессионных тестов. Для автоматизации используется язык VBScript. Это инструмент, основанный на DDT подходе и подходе тестирования на основе ключевых слов.
Rational Functional Tester (RFT): это Java-инструмент от IBM, используемый для автоматизации тест-кейсов приложений. Он используется в основном для автоматизации регрессионных тестов и интегрируется с Rational Test Manager.
Регрессионное тестирование и управление конфигурацией
Управление конфигурацией тестового окружения во время регрессионного тестирования является обязательным в Agile-командах, где код постоянно модифицируется. Чтобы обеспечить эффективность регрессионного тестирования, соблюдайте следующее:
- Код, подвергаемый регрессионному тестированию, должен находиться под управлением инструментами управления конфигурацией.
- Во время регрессионного тестирования в код не должны вноситься никакие изменения. Код регрессионного тестирования должен быть защищен от изменений разработчиком.
- База данных, используемая для регрессионного тестирования, должна быть изолирована. Никакие изменения в базе данных не должны быть разрешены.
Разница между повторным тестированием и регрессионным тестированием
Повторное тестирование означает вторичное тестирование функциональности или дефекта с целью убедиться, что код исправлен. Если дефект не исправлен, необходимо повторно открыть задачу на его исправление. Если дефект исправлен, задача закрывается.
Регрессионное тестирование – это тестирование программного приложения при изменении кода с целью убедиться, что новый код не повлиял на другие части программного обеспечения.
Проблемы при регрессионном тестировании
Ниже перечислены основные проблемы, возникающие при проведении регрессионного тестирования:
- При регулярном выполнении регрессионного тестирования тест-кейсы становятся довольно большими. Из-за ограничений по времени и бюджету невозможно выполнить весь набор регрессионных тестов.
- Минимизация набора тест-кейсов при достижении максимального тестового покрытия всегда является сложной задачей.
- Сложности в определение частоты проведения регрессионных тестов, т.е. решение, проводить ли регрессию после каждой модификации кода, каждого обновления сборки или после исправления некоторого множества дефектов.
Пример практического применения регрессионного тестирования
Заключение
- Регрессионное тестирование – это вид тестирования программного обеспечения, который гарантирует, что приложение продолжает функционировать так, как ожидается после усовершенствований, изменений кода или обновлений.
- Эффективная стратегия регрессионного тестирования экономит время и деньги организации. Согласно одному из тематических исследований в банковской сфере, регрессия экономит до 60% времени на исправление дефектов (которые были бы обнаружены в ходе регрессии) и 40% денег.
Перевод статьи Thomas Hamilton «What is Regression Testing? Test Cases (Example)».
Пингбэк: Что такое тестирование ПО? Виды, методы и инструменты тестирования
Пингбэк: Тест-кейсы для тестирования API
Пингбэк: Как писать тест-кейсы для автоматизации?