> For the complete documentation index, see [llms.txt](https://vladislaveremeev.gitbook.io/qa_bible/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladislaveremeev.gitbook.io/qa_bible/ai-v-testirovanii/vibe-coding.md).

# Vibe Coding

**Vibe Coding** — подход к разработке, при котором разработчик описывает желаемое поведение системы на естественном языке, а AI генерирует весь код. Разработчик оценивает результат визуально, итерирует новыми промптами и не обязательно понимает каждую строку сгенерированного кода.

Термин ввёл исследователь и сооснователь OpenAI Андрей Карпатий (Andrej Karpathy) в феврале 2025 года в посте на X (Twitter):

> «There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.»

***

## Как работает Vibe Coding

### Типичный цикл

```
Идея на естественном языке
        ↓
AI генерирует код
        ↓
Разработчик запускает и смотрит на результат
        ↓
«Работает? — Хорошо» / «Не работает? — Промпт снова»
        ↓
Итерация
```

Разработчик взаимодействует с AI через серию промптов, каждый из которых уточняет, расширяет или исправляет поведение системы. Код при этом воспринимается как побочный артефакт — главное, что продукт делает то, что нужно.

### Инструменты

| Инструмент          | Особенности                                        |
| ------------------- | -------------------------------------------------- |
| Cursor              | Встроенный чат, редактирует файлы напрямую         |
| Claude Code         | Агентный режим, работает с кодовой базой через CLI |
| GitHub Copilot Chat | Интеграция в IDE, генерация по комментариям        |
| v0 (Vercel)         | Специализирован на UI-компонентах                  |
| Bolt                | Полный стек прямо в браузере                       |
| Replit AI           | Cloud IDE с AI-ассистентом                         |

***

## Когда Vibe Coding оправдан

* **Прототипирование и MVP**: от идеи до демо за несколько часов
* **Одноразовые скрипты**: парсинг, конвертация данных, автоматизация разовых задач
* **Исследование технологий**: быстро проверить, как работает API или библиотека
* **Non-production утилиты**: внутренние дашборды, инструменты команды

{% hint style="warning" %}
Vibe Coding — не замена профессиональной разработке для production-систем. Код, который «работает на первый взгляд», может содержать критические ошибки в граничных условиях.
{% endhint %}

***

## Риски и проблемы для QA

### 1. Отсутствие покрытия edge cases

AI оптимизирует код под «happy path» — сценарий, который описал разработчик в промпте. Граничные условия, нетипичные входные данные и исключительные ситуации часто остаются без обработки.

**Пример**: разработчик просит AI создать форму регистрации. AI генерирует валидацию email и пароля, но не обрабатывает: очень длинные строки, Unicode-символы в имени, одновременные запросы, сетевые ошибки при сабмите.

### 2. Непрозрачность кода

Разработчик затрудняется объяснить логику реализации — он не писал её. Это создаёт проблемы для QA:

* Сложно определить тестируемые границы
* Нет понимания, какие ветки кода существуют
* Bug report может не найти ответственного разработчика

### 3. Быстрое накопление технического долга

Каждая итерация промпта может изменять архитектуру кода непредсказуемо. AI не всегда согласует новые изменения с предыдущими — возникают дублирование, противоречивые паттерны, мёртвый код.

### 4. Регрессия при итерациях

Новый промпт («добавь авторизацию») может сломать ранее работавшую функциональность. Разработчик видит, что новая фича работает, но не проверяет, что сломалось.

{% hint style="danger" %}
При Vibe Coding регрессионное тестирование критично как никогда. Каждая итерация промпта — потенциальная точка регрессии.
{% endhint %}

### 5. Проблемы безопасности

AI обучен на публичном коде, который включает устаревшие и небезопасные паттерны. Vibe Coding-генерация часто воспроизводит:

* SQL-инъекции при работе с БД
* XSS при вставке пользовательского ввода в DOM
* Хранение секретов в коде
* Отсутствие авторизации на API-эндпоинтах

### 6. Отсутствие документации

Vibe Coding редко сопровождается комментариями, JSDoc, типизацией или README. QA получает код без контекста.

***

## Стратегия тестирования при Vibe Coding

### Приоритеты тест-дизайна

| Область               | Почему критична                     |
| --------------------- | ----------------------------------- |
| Граничные значения    | AI редко обрабатывает их корректно  |
| Обработка ошибок      | Часто отсутствует или поверхностна  |
| Авторизация и доступ  | Типичная слепая зона AI-кода        |
| Конкурентность        | AI не думает о race conditions      |
| Большие объёмы данных | Производительность не тестировалась |

### Чеклист для QA при приёмке Vibe Coding результата

* [ ] Проверены все граничные условия входных данных (пустые строки, null, максимальные длины)
* [ ] Протестированы сценарии с невалидными данными
* [ ] Проверена обработка сетевых ошибок и таймаутов
* [ ] Проведено базовое security-тестирование (OWASP Top 10)
* [ ] Проверены сценарии с разными правами доступа
* [ ] Запущены существующие регрессионные тесты
* [ ] Проверена корректность работы после перезагрузки страницы/приложения

### Автоматизация как страховка

Для продуктов с активным Vibe Coding необходимо иметь автоматизированный регрессионный набор, который запускается после каждой сессии генерации. Без него каждый новый промпт — неконтролируемый риск.

***

## Vibe Coding vs традиционная разработка

| Параметр                     | Традиционная разработка | Vibe Coding               |
| ---------------------------- | ----------------------- | ------------------------- |
| Скорость до MVP              | Недели — месяцы         | Часы — дни                |
| Понимание кода разработчиком | Полное                  | Частичное или отсутствует |
| Предсказуемость поведения    | Высокая                 | Низкая без тестов         |
| Поддерживаемость             | Высокая                 | Низкая                    |
| Роль QA                      | Стандартная             | Критически важна          |
| Покрытие edge cases          | Зависит от разработчика | Как правило, слабое       |
| Технический долг             | Управляем               | Растёт быстро             |

***

## Позиция QA в команде с Vibe Coding

Vibe Coding повышает значимость QA-специалиста. Там, где разработчик больше не является «экспертом кода», QA становится главным гарантом качества. Без систематического тестирования Vibe Coding-продукты регулярно выходят в production с критическими дефектами.

**Рекомендуемые практики для QA-команды:**

1. **Shift-left участие**: включаться в обсуждение промптов до генерации кода — помогать формулировать требования так, чтобы AI учёл edge cases
2. **Промпт-ревью**: оценивать промпты как требования — если промпт неполный, код будет неполным
3. **Обязательный smoke-тест после каждой сессии** генерации
4. **Поддержание регрессионного набора** в актуальном состоянии

***

## Источники

* [Andrej Karpathy — Vibe Coding (X, February 2025)](https://x.com/karpathy/status/1886192184808149435) — оригинальный пост, вводящий термин
* [Simon Willison — Thoughts on Vibe Coding](https://simonwillison.net/) — критический анализ подхода
* [OWASP Top 10](https://owasp.org/www-project-top-ten/) — риски безопасности, актуальные для AI-сгенерированного кода
