Ответ
Black box (чёрный ящик) — метод тестирования, при котором проверяется функциональность системы без знания её внутреннего устройства и кода. Тестировщик взаимодействует только с интерфейсами (UI, API), как конечный пользователь.
Как проводят:
- Анализ требований к системе.
- Проектирование тестов на основе внешнего поведения.
- Выполнение тестов через доступные интерфейсы.
- Сравнение фактического результата с ожидаемым.
Ключевые техники тест-дизайна:
- Эквивалентное разбиение: Группировка входных данных в классы, где значения считаются эквивалентными (например, валидные/невалидные). Тестируется по одному представителю из каждого класса.
- Анализ граничных значений: Тестирование значений на границах допустимых диапазонов (например, минимальное, максимальное, чуть меньше/больше границы).
- Таблица решений: Систематическая проверка комбинаций условий и соответствующих действий.
- Сценарии использования (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"
Преимущества:
- Тестирование с точки зрения пользователя.
- Не зависит от реализации, тесты стабильнее при рефакторинге.
Недостатки:
- Невозможность проверить все внутренние пути выполнения.
- Сложно определить точную причину дефекта без доступа к коду.