Ответ
При отсутствии спецификации я собираю требования и формирую тестовую модель самостоятельно:
- Коммуникация с командой: интервью с PM, аналитиками и разработчиками для выяснения ожиданий.
- Анализ кода и API: изучение исходного кода, тестов, контрактов или документации к API (например, OpenAPI/Swagger).
- Экспертиза и реверс-инжиниринг: исследование работающей системы для документирования фактического поведения.
- Анализ аналогов: изучение похожих продуктов для формирования базовых ожиданий.
Ключевой шаг — документирование и согласование. Найденные правила фиксируются (например, в виде тест-кейсов или чек-листов) и утверждаются командой как эталон.
Пример для недокументированного API:
# Эмпирическое определение спецификации через тесты
response = requests.get("/api/v1/users/1")
# На основе анализа нескольких запросов выясняем ожидаемый статус
assert response.status_code == 200
assert "id" in response.json() # Ожидаемое поле в ответе