Ответ
Тест-анализ — это деятельность по изучению тестируемых артефактов (требований, дизайна, кода, рисков) для определения «что тестировать» путем идентификации тестовых условий (test conditions).
Основные задачи тест-анализа:
- Анализ требований: Выявление неоднозначностей, противоречий, «дыр» и потенциально нефункциональных требований (например, производительности).
- Определение тестового покрытия: Выделение объектов тестирования (функции, компоненты, риски) и критериев покрытия (по требованиям, по ветвям кода).
- Выявление тестовых условий: Формулировка конкретных аспектов, которые необходимо проверить (например, «валидация обязательного поля Email»).
- Приоритизация: Оценка рисков и критичности функционала для фокусировки усилий.
Практический пример для формы регистрации: Исходя из требований, тест-аналитик определяет следующие тестовые условия:
- Функциональность: Успешная регистрация с корректными данными.
- Валидация: Проверка обязательных полей, формата Email, сложности пароля.
- Граничные значения: Длина имени (мин. 2, макс. 50 символов).
- Бизнес-правила: Уникальность Email в системе.
- Юзабилити: Понятность сообщений об ошибках.
Результат анализа — основа для проектирования тест-кейсов:
# Пример теста, вытекающего из анализа условия "Уникальность Email"
def test_email_uniqueness():
# Предусловие: пользователь с email уже существует
create_user("existing@example.com")
# Действие: попытка регистрации с тем же email
response = attempt_registration("existing@example.com", "Pass123!")
# Ожидаемый результат: ошибка валидации
assert response.status_code == 400
assert "Email already taken" in response.json()["message"]
Тест-анализ помогает предотвратить дефекты на ранних этапах и оптимизировать тестовые усилия.