💀
Второй курс РПО
Разработка программных модулей
Разработка программных модулей
  • Модели разработки
  • Ошибки и отладка программ
  • Средства разработки алгоритмов
    • Основные принципы и стадии тестирования
  • Сложностные классы
  • Эмуляторы операционных систем
  • Сложность сортировки
  • Уровни тестирования
  • Задание №1
  • Регрессионное тестирование
  • Тестирование «белым ящиком»
  • Как делать оценку сложности?
  • Алгоритмы и сложность
  • Тестирование "белым ящиком" №2
  • Сложность алгоритмов
  • Тестирование "белым ящиком" №3
  • Тестирование "Чёрным ящиком»" №1
  • Тестирование "Черным ящиком" №2
  • Оценка сложности эвристических алгоритмов
  • Принципы ООП
  • Тестирование "Черным ящиком" №3
  • КТ - В3
  • Модульное тестирование
    • С кодами
  • Модульное тестирование
  • Абстрактные классы и интерфейсы в Python
  • Структуры в Python по аналогии с C++
    • Диалоги гениев
  • Делегаты в Python
    • Ещё более не смешные диалоги
  • Регулярные выражения в Python от простого к сложному
  • Python: Коллекции
  • Параметризованные классы (шаблоны)
  • Указатели и операции со списками в Python
  • Интеграционное тестирование
  • Работа с классами. Перегрузка методов
  • Определение операций в классе.
  • Создание наследованных классов
  • Интеграционное тестирование
  • Работа с объектами через интерфейсы
  • Использование стандартных интерфейсов
  • Работа с типом данных "Структура"
  • Коллекции. Параметризованные классы
  • Использование регулярных выражений
  • Операции со списками
  • Что такое паттерны проектирования?
  • Шпаргалка по шаблонам проектирования
    • [Habr] Шпаргалка
  • UML-диаграммы проектирования
  • Использование основных шаблонов.
  • Использование каких то там шаблонов
  • 15-я Практическая
  • 16-я Практическая
  • Graphviz Online
  • 17-я Практическая
  • Введение в теорию программирования: Объектно-ориентированный подход
  • Документирование софта и стандарты
  • C# Ввод и вывод
  • Оптимизация кода: просто о главном
  • Автоматизация разработки технической документации
  • Автоматизированное документирование и первичные данные
  • ADO.NET что это?
Powered by GitBook
On this page
  • Определение и суть регрессионного тестирования
  • Примеры регрессионных ошибок
  • Почему важно проводить регрессионное тестирование?
  • Как проводится регрессионное тестирование?
  • Пример регрессионного тестирования в действии

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

02.11.2024

PreviousЗадание №1NextТестирование «белым ящиком»

Last updated 6 months ago

Определение и суть регрессионного тестирования

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

Зачем это нужно?

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

Примеры регрессионных ошибок

Почему важно проводить регрессионное тестирование?

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

Проверка после изменений помогает:

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

  • Сохранить качество продукта и удовлетворенность пользователей.

  • Избежать дополнительных затрат на исправление ошибок после релиза.

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

Процесс регрессионного тестирования обычно включает несколько шагов:

1

Определение изменений

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

2

Создание тестов

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

3

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

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

4

Анализ результатов

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

Пример регрессионного тестирования в действии

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

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

  2. Определение тестовых кейсов: Составляется список тестов, которые проверят, как новая функция рекомендаций взаимодействует с уже существующими функциями (например, публикацией постов или комментариями).

  3. Запуск тестов: Тестировщик проводит тесты и фиксирует все результаты, включая ошибки.

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

Советы для успешного регрессионного тестирования

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

Используйте автоматизацию: Автоматизация рутинных задач позволит сосредоточиться на более сложных аспектах тестирования и сократить время выполнения.

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

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

Преимущества регрессионного тестирования
  1. Сохранение качества — уменьшает количество ошибок после обновлений.

  2. Оценка изменений — помогает понять, как новый код влияет на существующие функции.

  3. Ускорение разработки — автоматизация тестов ускоряет процесс.

  4. Снижение затрат — позволяет избежать больших расходов на исправление ошибок после релиза.

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

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

  3. Приоритизация тестов: расставить приоритеты, чтобы сосредоточиться на самых критичных функциях. При этом избегать:

    • Игнорирования критичных функций — обязательно тестировать важные для бизнеса функции.

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

    • Субъективных оценок — использовать мнения команды и данные о пользователях для объективной оценки приоритетов.

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

  5. Тестирование: провести тестирование по подготовленным сценариям и зафиксировать результаты.

  6. Анализ результатов: оценить результаты, выявить ошибки и передать их разработчикам.

  7. Повторное тестирование: проверить исправленные ошибки и провести регрессионное тестирование снова, если необходимо.

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

  2. Выбор регрессионного теста: тестирование ограничивается только теми частями программы, которые затронут изменения. Это позволяет сосредоточиться на критичных областях и экономить время.

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

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

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

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

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