Каков порядок действий, когда фактический результат теста не совпадает с ожидаемым?

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

Ответ

Это потенциальный дефект. Действуйте системно, чтобы исключить ложноположительные срабатывания.

Алгоритм анализа:

  1. Верификация тестового окружения и данных:

    • Убедитесь, что тест выполняется на корректной версии сборки.
    • Проверьте, что начальное состояние системы (test data) соответствует предпосылкам теста.
  2. Локализация проблемы:

    • Повторите тест для исключения случайных факторов (например, сетевые лаги).
    • Проверьте логи приложения (backend/frontend) на наличие ошибок (HTTP 500, исключения).
    • Упростите сценарий до минимальных шагов для воспроизведения.
  3. Анализ расхождения:

    • Сравните ожидаемый результат (на основе требований) с фактическим поведением.
    • Если требования неоднозначны — уточните их у аналитика или разработчика.

Пример для автотеста:

# Исходный тест, который упал
def test_discount_calculation():
    cart_total = 100
    expected_final_price = 85  # Ожидаем скидку 15%
    actual_final_price = apply_discount(cart_total)  # Фактически получили 90
    # Перед ассертом полезно вывести отладочную информацию
    print(f"Debug: Applied discount to {cart_total}. Result: {actual_final_price}")
    assert expected_final_price == actual_final_price, 
        f"Discount applied incorrectly. Expected {expected_final_price}, got {actual_final_price}."

Если после проверки расхождение подтверждается, заведите баг-репорт с четкими шагами воспроизведения, фактическим/ожидаемым результатом, логами и уровнем серьезности.