● ХАРДКОДИНГ PRO

Гайд №13.
Тестирование проекта

Как доказать, что всё действительно работает: от быстрой проверки до полного пути пользователя и финальной приёмки. Без необходимости становиться программистом.

SmokeE2ERegressionОсновной успешный сценарийНепонятные слова6 промптов25 проверок
Гайд №14. Тестирование проекта
Гайд №13. Тестирование проекта

1. Проверяй результат, а не только слова «готово»

ИИ может написать «готово», когда он всего лишь изменил код. Это ещё не значит, что реальный пользователь сможет получить обещанный результат.

Не верь словам «готово» — нужны доказательства
Проверяй результат, а не только слова «готово» — нужны доказательства
Главное правило: готово — это когда критерии задачи проверены и есть доказательства.
Изменение→Проверка→Доказательство→Приёмка
Что требовать от ИИ: не «уверенность», а конкретные тесты, фактические результаты и PASS / FAIL.

2. Быстрая проверка (Smoke test): сервис вообще жив?

Smoke test — быстрая проверка самого главного. Мы не проверяем весь проект, а убеждаемся, что основа не умерла.

Smoke test: сервис вообще жив?
Smoke test: сервис вообще жив?

Для сайта

  • страница открывается;
  • главная кнопка работает;
  • сервер отвечает;
  • база доступна.

Для Telegram-бота

  • бот отвечает;
  • главная команда работает;
  • ИИ/API доступен;
  • нет критических ошибок.
Smoke не доказывает всё. Он доказывает, что самое важное вообще живо.

3. Сквозная проверка (E2E): путь пользователя целиком

E2E означает «от начала до конца». Мы повторяем реальный путь пользователя, а не проверяем отдельный кусок системы.

Сквозная проверка (E2E): путь пользователя целиком
Сквозная проверка (E2E): путь пользователя целиком
Открыл→Вошёл→Сделал действие→Получил результат
Главный вопрос: сможет ли обычный человек без нашей помощи пройти путь до обещанного результата?

После E2E полезно открыть логи: иногда интерфейс выглядит нормально, но внутри уже копятся ошибки.

4. Повторная проверка старых функций (Regression)

Ты добавил новую функцию. Она работает. Но рядом могла перестать работать старая кнопка, авторизация, оплата или другой сценарий.

Regression: новое не сломало старое
Regression: новое не сломало старое

До изменения

Главные старые сценарии работают.

После изменения

Проверяем новую функцию и повторяем критичные старые сценарии.

По-человечески: новое не должно ломать то, что уже приносило результат.

5. Основной успешный сценарий и сценарии ошибок

Если проверять только идеального пользователя, продукт быстро удивит тебя в реальной жизни.

Основной успешный сценарий и негативные сценарии
Основной успешный сценарий и негативные сценарии

Основной успешный сценарий

Правильные данные, хороший интернет, внешние сервисы отвечают. Идеальный путь.

Негативные сценарии

Пустое поле, неверный пароль, повторный клик, нет интернета, API упал, база временно недоступна.

Хороший продукт умеет не только работать, но и нормально переживать ошибки.

6. Где тестировать проект

Тест должен быть максимально близок к той среде, где будет настоящий пользователь.

Где тестировать проект
Где тестировать проект
ПродуктГде проверять
СайтНастоящий браузер, мобильный экран, разные размеры окна
Telegram-ботРеальный Telegram-клиент
iPhoneiPhone или соответствующий эмулятор
AndroidAndroid-устройство или эмулятор
DesktopТа ОС, где реально будет пользователь
Один экран — не вся правда. То, что работает у тебя на Mac, ещё не доказывает работу у клиента на iPhone.

7. ИИ сам составляет тест-план

Тебе не нужно придумывать все проверки вручную. Дай ИИ цель продукта и попроси его сначала предложить систему проверки.

ИИ сам составляет тест-план
ИИ сам составляет тест-план
Функция→Сценарии→Проверки→Ожидаемый результат→PASS / FAIL
Сильная постановка: «Не просто сделай функцию. Сначала скажи, как мы докажем, что она работает».

8. Приёмка: когда задача действительно закончена

Приёмка — финальная сверка результата с критериями задачи.

Пример

Плохо: «сделать авторизацию».

Хорошо: пользователь может зарегистрироваться, войти, выйти, восстановить доступ; пользователь A не видит данные пользователя B; все сценарии пройдены.

Критерий→Действие→Результат→Доказательство→PASS

9. Непонятные слова простыми словами 😄

Не нужно запоминать всё сразу. Используй эту таблицу как шпаргалку, когда ИИ пишет незнакомый термин.

ТерминПростыми словами
Smoke testБыстрая проверка самого главного: сервис вообще запускается и выполняет основную функцию.
E2EПроверка полного пути пользователя: от первого шага до конечного результата.
RegressionПроверка, что новое изменение не сломало то, что раньше уже работало.
Acceptance / приёмкаФинальная проверка по заранее понятным критериям: можно ли считать задачу готовой.
Основной успешный сценарийОбычный успешный сценарий, когда пользователь всё делает правильно.
Negative scenarioПроверка того, что произойдёт при ошибке пользователя или сбое внешнего сервиса.
Edge caseРедкая или необычная ситуация, о которой легко забыть.
Bug / багОшибка или неправильное поведение программы.
Test caseОдин конкретный сценарий проверки.
Test planСписок проверок: что проверяем, как проверяем и какой результат считаем правильным.
PASSПроверка пройдена: фактический результат совпал с ожидаемым.
FAILПроверка не пройдена: фактический результат отличается от ожидаемого.
StagingТестовая версия проекта перед публикацией для реальных пользователей.
Рабочая версия (production / прод)Рабочая версия проекта, которой пользуются реальные люди.
MockИскусственно созданный ответ внешнего сервиса для безопасного тестирования.
AssertionУсловие, которое должно быть выполнено, чтобы тест считался успешным.
Rollback / откатВозврат к предыдущей рабочей версии проекта.
Environment / средаМесто, где реально работает проект: браузер, iPhone, Android, VPS и т.д.

10. Какие доказательства собирать

Хороший тест оставляет след, который можно проверить.

Что подходит

  • скрин результата;
  • фактический ответ API;
  • PASS / FAIL теста;
  • лог без ошибок;
  • видео короткого сценария;
  • совпадение ожидаемого и фактического результата.

Что не подходит

  • «кажется работает»;
  • «ИИ сказал готово»;
  • «код выглядит правильно»;
  • «один раз открылось».

11. Что проверять после каждого изменения

Изменение→Smoke→E2E→Regression→Логи→Приёмка

Для маленькой правки не всегда нужен огромный набор тестов. Но хотя бы быстрая проверка и связанный пользовательский сценарий должны стать привычкой.

Лучший момент тестировать — сразу после изменения. Чем позже нашёл проблему, тем сложнее понять, какое изменение её вызвало.
Тестирование — повторяемый цикл: изменение → smoke → E2E → regression → доказательство
Тестирование — повторяемый цикл: изменение → smoke → E2E → regression → доказательство

12. 6 готовых промптов для ИИ

Копируй почти без изменений. Они заставляют ИИ не просто делать, а доказывать результат.

Промпт 1. Составить тест-план

Если кнопка не сработает, выдели текст вручную.

Промпт 2. Провести быструю проверку (Smoke test)

Если кнопка не сработает, выдели текст вручную.

Промпт 3. Провести E2E

Если кнопка не сработает, выдели текст вручную.

Промпт 4. Проверить старые функции после изменений (Regression)

Если кнопка не сработает, выдели текст вручную.

Промпт 5. Негативные сценарии

Если кнопка не сработает, выдели текст вручную.

Промпт 6. Финальная приёмка

Если кнопка не сработает, выдели текст вручную.

13. Финальный чек-лист

Отмечай пункт после того, как соответствующая проверка действительно выполнена и у тебя есть результат.

Твой прогресс

Каждая отметка увеличивает прогресс. Работает даже без JavaScript.

14. Практика: докажи, что одна функция реально работает

Возьми одну свежую функцию своего настоящего проекта.

  1. Сформулируй ожидаемый результат.
  2. Попроси ИИ создать тест-план.
  3. Проведи Smoke test.
  4. Проведи E2E главного сценария.
  5. Проведи Regression старых критичных функций.
  6. Проверь минимум один негативный сценарий.
  7. Посмотри логи.
  8. Исправь найденные проблемы.
  9. Запусти проверки повторно.
  10. Получи финальный статус «ГОТОВО К ПРИЁМКЕ: ДА».
Артефакт победы: не просто новая функция, а функция с доказательствами, что она работает и не сломала старое.

Что дальше

Гайд №11 логично посвятить памяти, контексту и RAG: как сделать, чтобы ИИ помнил нужное и находил знания тогда, когда они действительно нужны.

Пройти финальный чек-лист →
CONTRACT TEST

Добавь одну проверку: две части проекта всё ещё «говорят на одном языке»

Contract test - это тест договорённости API. Он не обязан проверять весь продукт. Его задача - быстро заметить, что формат запроса или ответа неожиданно изменился.

  1. Берём один важный endpoint.
  2. Отправляем пример корректного запроса.
  3. Проверяем обязательные поля ответа и их типы.
  4. Отправляем один неправильный запрос и проверяем понятную ошибку.
Evidence: специально сломай тестовую копию контракта. Тест должен упасть. Верни правильный контракт - тест должен снова пройти.

Новичку не нужен огромный набор contract tests. Начни с 1-3 самых важных API-вызовов, от которых зависит главный путь пользователя.

🧠 WIKI ЭТОГО ГАЙДА

Непонятные слова простыми словами

Не зубри определения. Вернись сюда, если встретил термин и забыл, что он означает.

Smoke testБыстрая проверка, что приложение запускается и базовый сценарий жив.
E2E testПроверка полного пути пользователя от первого действия до результата.
RegressionПроверка, что новое изменение не сломало то, что раньше работало.
Happy pathОсновной успешный сценарий пользователя.
Негативный сценарийПроверка неправильного ввода, ошибки API, отсутствия доступа и других проблем.
Test caseОдин конкретный сценарий проверки с ожидаемым результатом.
Перед переходом дальше: Переходи дальше, когда сделал минимальную практику этого урока и можешь показать результат. Кнопка «Дальше» означает следующий учебный урок, а не обязанность внедрить каждую технологию.