Найти в Дзене
Анастасия Софт

🔄 Регрессионное тестирование: не сломалось ли старое при добавлении нового?

Регрессионное тестирование — это процесс проверки того, что после внесения изменений в код (добавление новой функции, исправление ошибки, обновление библиотеки и т.д.) существующий функционал продолжает работать корректно. Это важно, потому что даже небольшие изменения могут повлиять на другие части системы. Регрессионное тестирование проводится: Сценарий: На странице регистрации добавляется новое поле "Телефон". Нужно убедиться, что остальные поля формы (имя, email, пароль) продолжают работать корректно. Что проверяем: Пример теста: def test_registration_form():
# Проверяем, что поле имени принимает корректное значение
assert submit_form(name="John Doe", email="john@example.com", password="password123", phone="1234567890")
# Проверяем, что поле email принимает корректное значение
assert submit_form(name="Jane Doe", email="jane@example.com", password="password123", phone="0987654321")
# Проверяем, что поле пароля принимает корректное значение
assert submit_form(
Оглавление
Регрессионное тестирование: не сломалось ли старое при добавлении нового?
Регрессионное тестирование: не сломалось ли старое при добавлении нового?

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

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

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

Регрессионное тестирование проводится:

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

🧩 Примеры задач для регрессионного тестирования

1. Новичок: Добавление нового поля в форму

Сценарий: На странице регистрации добавляется новое поле "Телефон". Нужно убедиться, что остальные поля формы (имя, email, пароль) продолжают работать корректно.

Что проверяем:

  • Поля формы принимают корректные значения.
  • Поля формы не принимают некорректные значения.
  • После отправки формы данные сохраняются корректно.

Пример теста:

def test_registration_form():
# Проверяем, что поле имени принимает корректное значение
assert submit_form(name="John Doe", email="john@example.com", password="password123", phone="1234567890")
# Проверяем, что поле email принимает корректное значение
assert submit_form(name="Jane Doe", email="jane@example.com", password="password123", phone="0987654321")
# Проверяем, что поле пароля принимает корректное значение
assert submit_form(name="Alex Smith", email="alex@example.com", password="password123", phone="1122334455")
# Проверяем, что поле телефона принимает корректное значение
assert submit_form(name="Emily Johnson", email="emily@example.com", password="password123", phone="5566778899")

2. Мидл: Изменение логики расчёта скидки

Сценарий: Логика расчёта скидки на товар изменяется. Нужно убедиться, что старые товары по-прежнему получают скидку корректно.

Что проверяем:

  • Товары с ценой выше 1000 получают скидку 10%.
  • Товары с ценой ниже 1000 получают скидку 5%.
  • Товары с ценой 1000 получают скидку 7.5%.

Пример теста:

def test_discount_calculation():
# Проверяем, что товар с ценой 1500 получает скидку 10%
assert calculate_discount(1500) == 150
# Проверяем, что товар с ценой 500 получает скидку 5%
assert calculate_discount(500) == 25
# Проверяем, что товар с ценой 1000 получает скидку 7.5%
assert calculate_discount(1000) == 75

3. Сеньор: Обновление версии библиотеки

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

Что проверяем:

  • Подключение к базе данных.
  • Чтение данных из базы данных.
  • Запись данных в базу данных.
  • Обновление данных в базе данных.
  • Удаление данных из базы данных.

Пример теста:

def test_database_operations():
# Проверяем подключение к базе данных
assert connect_to_database()
# Проверяем чтение данных из базы данных
assert read_from_database("SELECT * FROM users")
# Проверяем запись данных в базу данных
assert write_to_database("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')")
# Проверяем обновление данных в базе данных
assert update_in_database("UPDATE users SET email = 'john.doe@example.com' WHERE name = 'John Doe'")
# Проверяем удаление данных из базы данных
assert delete_from_database("DELETE FROM users WHERE name = 'John Doe'")

4. Профессионал: Интеграция с внешним API

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

Что проверяем:

  • Получение данных из старых API.
  • Получение данных из нового API.
  • Обработка ошибок при получении данных из API.

Пример теста:

def test_api_integrations():
# Проверяем получение данных из старого API
assert get_data_from_old_api()
# Проверяем получение данных из нового API
assert get_data_from_new_api()
# Проверяем обработку ошибок при получении данных из API
assert handle_api_errors()

5. Эксперт: Миграция данных

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

Что проверяем:

  • Сохранение данных в новой базе данных.
  • Чтение данных из новой базы данных.
  • Обновление данных в новой базе данных.
  • Удаление данных из новой базы данных.
  • Совместимость старых операций с новой базой данных.

Пример теста:

def test_data_migration():
# Проверяем сохранение данных в новой базе данных
assert save_data_to_new_database()
# Проверяем чтение данных из новой базы данных
assert read_data_from_new_database()
# Проверяем обновление данных в новой базе данных
assert update_data_in_new_database()
# Проверяем удаление данных из новой базы данных
assert delete_data_from_new_database()
# Проверяем совместимость старых операций с новой базой данных
assert old_operations_compatible_with_new_database()

✅ Заключение

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

Если у вас есть вопросы или нужна дополнительная информация, не стесняйтесь и пишите комментарий!