Что такое black box тестирование и как его проводят?

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

Ответ

Black box (чёрный ящик) — метод тестирования, при котором проверяется функциональность системы без знания её внутреннего устройства и кода. Тестировщик взаимодействует только с интерфейсами (UI, API), как конечный пользователь.

Как проводят:

  1. Анализ требований к системе.
  2. Проектирование тестов на основе внешнего поведения.
  3. Выполнение тестов через доступные интерфейсы.
  4. Сравнение фактического результата с ожидаемым.

Ключевые техники тест-дизайна:

  • Эквивалентное разбиение: Группировка входных данных в классы, где значения считаются эквивалентными (например, валидные/невалидные). Тестируется по одному представителю из каждого класса.
  • Анализ граничных значений: Тестирование значений на границах допустимых диапазонов (например, минимальное, максимальное, чуть меньше/больше границы).
  • Таблица решений: Систематическая проверка комбинаций условий и соответствующих действий.
  • Сценарии использования (User Story): Тестирование полных пользовательских сценариев.

Пример теста для API (Python с requests):

import requests

# Тест на успешную аутентификацию
def test_login_success():
    url = "https://api.example.com/auth/login"
    payload = {"username": "valid_user", "password": "valid_pass"}

    response = requests.post(url, json=payload)

    # Проверки на уровне "чёрного ящика"
    assert response.status_code == 200, f"Expected 200, got {response.status_code}"
    assert "access_token" in response.json(), "Token not found in response"

Преимущества:

  • Тестирование с точки зрения пользователя.
  • Не зависит от реализации, тесты стабильнее при рефакторинге.

Недостатки:

  • Невозможность проверить все внутренние пути выполнения.
  • Сложно определить точную причину дефекта без доступа к коду.