Ответ
Ожидаемый результат формируется на основе нескольких ключевых источников:
Основные источники:
- Требования и спецификации — PRD, User Stories, техническое задание.
- Дизайн-макеты и прототипы (Figma, Sketch) — для проверки UI/UX.
- Бизнес-логика и правила предметной области.
- Поведение аналогичных систем или предыдущих версий (при регрессионном тестировании или миграции).
- Общепринятые стандарты и здравый смысл — когда явные требования отсутствуют.
Практический пример (валидация email):
# Ожидаемый результат: валидные email проходят проверку успешно
def test_valid_email():
assert validate_email("user@example.com") == True
assert validate_email("first.last+tag@subdomain.example.co.uk") == True
# Ожидаемый результат: невалидные email отклоняются
def test_invalid_email():
assert validate_email("invalid-email") == False
assert validate_email("user@.com") == False
Важно: Любое расхождение между документацией и фактическим поведением системы должно быть зафиксировано в баг-репорте.
Ответ 18+ 🔞
А, вот это интересный вопрос, блядь! Ожидаемый результат — это же святое, основа основ, без этого мы просто пальцем в небо тычем, как слепые котята.
Так, слушай, откуда мы, собственно, этот самый «ожидаемый результат» берём? А берём мы его, сука, не из воздуха, а из конкретных мест, которые надо знать, как свои пять пальцев.
Откуда это пиздецкое знание прилетает:
- Бумажки всякие, они же требования. PRD, User Stories, ТЗ — это наша библия, блядь. Если там написано «кнопка должна быть зелёной», а она у тебя красная — ты уже в пролёте, дружок.
- Картинки от дизайнеров (Figma, Sketch и прочая хуйня). Вот смотришь на макет — видишь, где что должно висеть, как анимация проигрывается. Ожидаемый результат — чтобы вживую было один в один, ёпта! Или ты думаешь, они просто так пиксели двигают?
- Бизнес-логика, эта тёмная магия. Иногда в требованиях не расписано, что «если пользователь — полупидор с премиум-подпиской, то ему скидка 15%». Это знание живёт в голове у аналитика или в глубинах предметной области. Надо выковыривать, блядь!
- Как было раньше. Особенно когда систему обновляешь или мигрируешь. Ожидаемый результат — чтобы новая фича работала, а старая не сломалась. Регресс — это наш главный страх, хуле.
- Здравый смысл, мать его. Иногда документация молчит, как рыба об лёд. Допустим, ты тестируешь форму ввода. Ожидаемый результат, что при нажатии «Отправить» с пустыми полями будет ошибка — это даже писать не надо, это, блядь, очевидно, как дважды два! Хотя, глядя на некоторые системы, не такое уж и очевидное...
Вот тебе наглядный пример, чтобы въехал:
# Ожидаемый результат: валидные email проходят проверку успешно
def test_valid_email():
assert validate_email("user@example.com") == True
assert validate_email("first.last+tag@subdomain.example.co.uk") == True
# Ожидаемый результат: невалидные email отклоняются
def test_invalid_email():
assert validate_email("invalid-email") == False
assert validate_email("user@.com") == False
Видишь? Мы заранее знаем, что должно получиться. Не гадаем на кофейной гуще.
И главное, запомни раз и нахуй: если система делает не то, что от неё ожидают по документам, по макетам или по законам вселенной — это не фича, а самый настоящий баг. И его надо не обсуждать, а сразу в баг-трекер пинать, пока не забыл. Всё, вопрос закрыт.