Ответ
Ожидаемый результат определяется на основе:
- Формальных требований: спецификации, пользовательские истории, техническая документация.
- Неформальных источников: согласование с заказчиком, аналитиками или разработчиками при отсутствии документации.
- Эталонных систем: поведение аналогичных продуктов или предыдущих версий.
- Общепринятых правил: принципы UX, стандарты (например, HTTP-коды) и здравый смысл.
Пример для unit-теста:
# Требование: "Функция сложения должна возвращать корректную сумму"
def test_addition():
# Ожидаемый результат '4' взят из спецификации
assert calculate("2+2") == 4
Пример для UI-теста (Cucumber/Gherkin):
Then I should see the "Order Confirmed" message
Then the "Cart" counter should display "0"
В исследовательском тестировании ожидание формируется на основе понимания домена и целей пользователя.
Ответ 18+ 🔞
Да ты послушай, что эти тестировщики выдумали! Сидят, блядь, и думают: "А какого хуя мы вообще ждём от этой штуки?" И ведь не просто так, а по пунктам, сука!
Во-первых, есть бумажки всякие. Спецификации, техдоки, истории пользователя — эта хуйня, которую все пишут, но потом нихуя не читают. Но если она есть, то типа оттуда и надо брать, что должно получиться. Чистая бюрократия, но без неё — пиздец и бардак.
Во-вторых, договорняки. Когда никакой бумаги нет, а есть только базар с заказчиком или аналитиком, который тебе на пальцах объясняет: "Ну сделай так, чтобы вот эта кнопка, блядь, зелёная была, а при нажатии играл звук чпок". Вот это и есть ожидание, ёпта!
В-третьих, как у людей. Смотришь, как работает похожая бандура или старая версия. "Раньше вот так работало, значит и сейчас должно" — логика проще, чем у табуретки, но иногда и она подводит, блядь.
Ну и наконец, здравый смысл, мать его. Это когда ты понимаешь, что если пользователь нажал "Удалить", то запись должна исчезнуть, а не начать ему стихи читать. Или что код ответа 404 — это "не найдено", а не "иди нахуй". Казалось бы, ебанатривиально, но нет же!
Вот тебе пример, как они это в код пихают:
# Требование было чёткое: "Сложи два числа, умник"
def test_addition():
# И мы тупо ждём, что 2+2 будет 4. Никакой магии, блядь.
assert calculate("2+2") == 4
А для этих любителей красивых фраз (Cucumber, блядь):
Then I should see the "Order Confirmed" message
Then the "Cart" counter should display "0"
Тут всё ясно: увидел сообщение — молодец, счётчик обнулился — вообще красава.
А самое интересное — это исследовательское тестирование. Тут уже никаких бумажек нет, один чистый полёт ебаной мысли. Ожидание формируется из твоего опыта и понимания, что пользователь вообще тут делать собрался. Типа, если он зашёл в интернет-магазин, то он хочет купить, а не картины маслом разглядывать. И вот ты проверяешь, работает ли система так, как задумано в этой вселенной, а не как прописано в какой-то ебучей документации, которую уже сто раз переписали.
Короче, ожидание — это ответ на вопрос "Как, по-твоему, должно работать?". И если ответ "Хуй его знает", то это уже не тестирование, а гадание на кофейной гуще, ёпта.