Как тестировать функционал после исправления дефекта (бага)?

«Как тестировать функционал после исправления дефекта (бага)?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ключевой процесс — верификация исправления и регрессионное тестирование.

1. Верификация исправления (Bug Fix Verification):

  • Повторение шагов из баг-репорта: Убедиться, что описанная проблема более не воспроизводится.
  • Тестирование граничных условий: Проверить сценарии, смежные с исправленным багом. Если баг был в обработке нулевого значения, проверить не только 0, но и null, undefined, пустую строку.
    # Был баг: деление на ноль
    # После фикса тестируем:
    def test_divide_fix():
    # Основной сценарий
    assert divide(10, 2) == 5
    # Исправленный негативный сценарий
    with pytest.raises(ValueError, match="Cannot divide by zero"):
        divide(10, 0)
    # Смежные граничные случаи
    assert divide(0, 5) == 0  # Ноль в числителе
    with pytest.raises(ValueError):
        divide(0, 0)         # Ноль на ноль

2. Регрессионное тестирование (Regression Testing):

  • Цель: Убедиться, что исправление не сломало существующий функционал.
  • Область тестирования:
    • Прямо затронутый модуль/функция.
    • Модули, зависящие от исправленного кода.
    • Связанные пользовательские сценарии.
  • Методы: Запуск существующих автотестов (наиболее эффективно) и выполнение ключевых ручных чек-листов.

3. Анализ первопричины (Root Cause Analysis):

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

Итог: Фиксация бага — это не только исправление строки кода, но и проверка того, что исправление точечное и не создало новых проблем.