Ответ
Функциональное тестирование (проверка новых/изменённых функций):
def test_new_feature():
result = calculate_discount(100, 20) # Новая функция
assert result == 80
Регрессионное тестирование (проверка, что существующий функционал не сломан):
- Полные регресс-тесты (все кейсы)
- Частичные (только затронутые модули)
Дымовое тестирование (быстрая проверка ключевых функций после деплоя)
Санитарное тестирование (узкая проверка конкретного исправления):
test('Bugfix #1234: login with special chars', () => {
expect(login('test@!')).toBe(true);
});
Особые случаи:
- Тестирование миграций (проверка переноса данных)
- A/B тестирование (сравнение старой и новой версии)
- Канареечное тестирование (постепенный rollout изменений)
Все виды требуют чёткого понимания scope изменений и приоритезации тест-кейсов.