Ответ
Ожидаемый результат (expected result) — это эталон корректного поведения системы. Его источники иерархичны:
1. Первичные (формальные) источники:
- Требования (SRS/User Stories): Функциональные и нефункциональные спецификации.
- Техническая документация: API-спецификации (Swagger/OpenAPI), схемы баз данных.
- Макеты и дизайн-системы (UI): Для проверки визуального соответствия.
2. Вторичные и практические источники:
- Общение с командой: Уточнение у аналитика (BA), разработчика (Dev) или владельца продукта (PO).
- Анализ работы системы: Изучение поведения существующей (legacy) системы или аналогов.
- Эталонные данные/скриншоты: Для регрессионного и визуального тестирования.
Пример для API-теста на Python (pytest):
import requests
def test_get_user_by_id():
# 1. Ожидаемый результат взят из спецификации OpenAPI
expected_user_schema = {
"type": "object",
"properties": {
"id": {"type": "integer"},
"name": {"type": "string"},
"email": {"type": "string", "format": "email"}
},
"required": ["id", "name", "email"]
}
# 2. Конкретные ожидаемые данные из тестового сценария
expected_data = {
"id": 1,
"name": "Leanne Graham",
"email": "Sincere@april.biz"
}
# Выполнение запроса и проверка
response = requests.get("https://jsonplaceholder.typicode.com/users/1")
actual_data = response.json()
# Проверка структуры (соответствие схеме)
assert validate_schema(actual_data, expected_user_schema)
# Проверка значений
assert actual_data == expected_data
Важно: При отсутствии формальных требований ожидаемый результат должен быть согласован и зафиксирован (например, в тест-кейсе), чтобы избежать разночтений.