Из каких источников определяется ожидаемый результат при тестировании?

Ответ

Ожидаемый результат формируется на основе нескольких ключевых источников:

Основные источники:

  1. Требования и спецификации — PRD, User Stories, техническое задание.
  2. Дизайн-макеты и прототипы (Figma, Sketch) — для проверки UI/UX.
  3. Бизнес-логика и правила предметной области.
  4. Поведение аналогичных систем или предыдущих версий (при регрессионном тестировании или миграции).
  5. Общепринятые стандарты и здравый смысл — когда явные требования отсутствуют.

Практический пример (валидация 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+ 🔞

А, вот это интересный вопрос, блядь! Ожидаемый результат — это же святое, основа основ, без этого мы просто пальцем в небо тычем, как слепые котята.

Так, слушай, откуда мы, собственно, этот самый «ожидаемый результат» берём? А берём мы его, сука, не из воздуха, а из конкретных мест, которые надо знать, как свои пять пальцев.

Откуда это пиздецкое знание прилетает:

  1. Бумажки всякие, они же требования. PRD, User Stories, ТЗ — это наша библия, блядь. Если там написано «кнопка должна быть зелёной», а она у тебя красная — ты уже в пролёте, дружок.
  2. Картинки от дизайнеров (Figma, Sketch и прочая хуйня). Вот смотришь на макет — видишь, где что должно висеть, как анимация проигрывается. Ожидаемый результат — чтобы вживую было один в один, ёпта! Или ты думаешь, они просто так пиксели двигают?
  3. Бизнес-логика, эта тёмная магия. Иногда в требованиях не расписано, что «если пользователь — полупидор с премиум-подпиской, то ему скидка 15%». Это знание живёт в голове у аналитика или в глубинах предметной области. Надо выковыривать, блядь!
  4. Как было раньше. Особенно когда систему обновляешь или мигрируешь. Ожидаемый результат — чтобы новая фича работала, а старая не сломалась. Регресс — это наш главный страх, хуле.
  5. Здравый смысл, мать его. Иногда документация молчит, как рыба об лёд. Допустим, ты тестируешь форму ввода. Ожидаемый результат, что при нажатии «Отправить» с пустыми полями будет ошибка — это даже писать не надо, это, блядь, очевидно, как дважды два! Хотя, глядя на некоторые системы, не такое уж и очевидное...

Вот тебе наглядный пример, чтобы въехал:

# Ожидаемый результат: валидные 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

Видишь? Мы заранее знаем, что должно получиться. Не гадаем на кофейной гуще.

И главное, запомни раз и нахуй: если система делает не то, что от неё ожидают по документам, по макетам или по законам вселенной — это не фича, а самый настоящий баг. И его надо не обсуждать, а сразу в баг-трекер пинать, пока не забыл. Всё, вопрос закрыт.