Какую роль играют исключения в тестировании ПО?

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

Ответ

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

Ключевые аспекты:

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

Пример на Python (pytest):

import pytest

def test_division_by_zero():
    """Тест ожидает конкретное исключение."""
    with pytest.raises(ZeroDivisionError):
        result = 1 / 0

def test_robust_division():
    """Тест проверяет, что функция обрабатывает ошибку и не падает."""
    def safe_divide(a, b):
        try:
            return a / b
        except ZeroDivisionError:
            return None

    assert safe_divide(10, 2) == 5
    assert safe_divide(10, 0) is None  # Обработанное исключение