Честная отправная точка
Если вы не читаете код, то и ревью кода вы провести не сможете — и перестаньте из-за этого себя корить. Альтернатива здесь не ревью, а проверка поведения. Именно этим в любом случае займутся ваши пользователи, и так обнаруживается целый класс проблем, которые при чтении кода были бы упущены.
Где обычно прячутся баги в коде Lovable
Сгенерированные приложения ломаются в предсказуемом порядке. Начните с этого.
| Выглядит как сохранённое, но это не так | Форма показывает сообщение об успехе, а после обновления страницы записи нет. Прежде чем поверить в сохранение, всегда перезагружайте страницу. |
| Пустые состояния и состояния ошибок | Счастливый путь собран и показан. А вот случаи с нулевым результатом и неудавшимся запросом — часто нет. Попробуйте пройти сценарий без данных и с заведомо неверным вводом. |
| Второй пользователь | Для учётной записи, в которой приложение собирали, работает всё. У любого другого первыми ломаются права доступа, владение данными и видимость. Войдите под второй учётной записью, прежде чем кому-то что-то показывать. |
Проверка, которая продолжает работать
Ручная проверка годится для проекта выходного дня и перестаёт масштабироваться ровно в тот момент, когда вы продолжаете писать промпты. Каждая новая инструкция может незаметно сломать то, что работало вчера, а ручной прогон с каждым разом становится всё короче.
Нужно, чтобы проверки были записаны и запускались автоматически, а описывались обычным языком, а не кодом тестов. Настройка передаёт эту возможность агенту, так что проверка идёт параллельно с разработкой.
Всё это доступно и в дашборде TestSprite — обычно это более удобный путь, если вы работаете не в терминале. Подробности о CLI — в репозитории CLI.
Три проверки, которые стоит завести с первого дня
Зарегистрируйтесь, а затем войдите снова. Здесь сгенерированные приложения ломаются чаще, чем где-либо ещё, и именно с этого начинает реальный пользователь.
Создайте что-нибудь, перезагрузите страницу, убедитесь, что оно на месте. Одна эта проверка ловит самый частый и самый неловкий сбой.
Сделайте то единственное, ради чего существует ваше приложение, — под совершенно новой учётной записью. Если у постороннего человека это работает, у вас уже что-то есть.
Как описать баг, чтобы исправление действительно попало в цель
Когда что-то не так, первое желание — написать «это сломано». Агенту это даёт очень мало, и в ответ вы получите правку, которая чинит что-то соседнее.
Три предложения работают гораздо лучше, и технический словарь не нужен ни для одного из них. Что вы делали, по порядку. Чего вы ожидали. Что произошло вместо этого. «Я заполняю форму и нажимаю сохранить, я жду, что новый элемент появится в списке, а список остаётся пустым, пока я не перезагружу страницу» — это по-настоящему хороший баг-репорт, и он указывает прямо на дефект.
Эти же три предложения и есть та проверка, которая у вас остаётся. Записанные один раз, они могут прогоняться заново после каждого следующего изменения — так вы не даёте одной и той же проблеме вернуться.
В каком порядке проверять
Есть последовательность, которая находит проблемы быстрее, чем бессистемные клики, и занимает она около десяти минут.
Начните с выхода из аккаунта и зарегистрируйтесь как совершенно новый пользователь: этим путём вы сами пользовались меньше всего. Затем выполните то единственное, ради чего существует ваше приложение, до самого конца — и перезагрузите страницу, прежде чем чему-либо поверить. Потом сделайте то же самое неправильно: оставьте обязательное поле пустым, впишите текст там, где нужно число, загрузите что-нибудь абсурдное. Затем удалите что-нибудь и убедитесь, что оно действительно исчезло, а не просто спрятано.
Каждый из этих четырёх шагов занимает минуту-другую и соответствует одной из групп сбоев, на которых спотыкаются сгенерированные приложения. Порядок здесь важен: сломанная регистрация делает всё последующее непроверяемым, а люди регулярно тратят час на функцию, до которой никто не может добраться.
Когда вы готовы показать приложение другим
Прежде чем приложение попадёт куда-то по-настоящему, сделайте так, чтобы проверки запускались автоматически при каждом изменении, а не тогда, когда вы о них вспомните. Два способа это сделать:
Подключите репозиторий из дашборда — и прогоны будут стартовать с того деплоя, который вы и так делаете, либо вместо этого добавьте отдельный шаг в свой собственный workflow.
Как TestSprite проверяет за вас
Вы обычным языком описываете, что должно быть верно, а кликает TestSprite. Не нужны ни код тестов, ни фреймворк, ни терминал: создайте проект в дашборде, укажите в нём своё приложение и опишите, как выглядит работающая версия.
Четыре группы сбоев с этой страницы — ровно то, что он покрывает. Он регистрируется как новая учётная запись, создаёт что-нибудь и перезагружает страницу, чтобы убедиться, что данные сохранились, отправляет некорректные данные, чтобы проверить, что приложение об этом сообщает, и проходит тот же сценарий от лица второго пользователя, чтобы поймать предположения о правах доступа, зашитые в вашу собственную сессию.
Что действительно важно, когда вы продолжаете писать промпты: проверки остаются. Каждое изменение проверяется на фоне всего, что работало до него, — именно это разрывает круг, в котором починка одного тихо ломает другое.
Нужно ли для этого уметь программировать?
Нет. Проверки описываются обычным языком и выполняются на приложении через его интерфейс — так же, как им пользовался бы человек.
Почему приложение работает у меня, но не у других?
Обычно дело в правах доступа или во владении данными. У учётной записи, в которой приложение собирали, есть записи и доступы, которых у новой нет. Тестирование от лица второго пользователя выявляет это сразу.
Тестировать до новых промптов или после?
И то и другое, но второе важнее. Именно проверка, существовавшая до вашей последней инструкции, показывает, сломала ли эта инструкция что-нибудь.
Что делать, если исправление каждый раз ломает что-то другое?
Это сигнал, что проверки должны идти непрерывно, а не в самом конце. Каждое изменение проверяется на фоне всего, что работало до него.
Это относится только к Lovable?
Нет. Те же сбои встречаются во всём, что сгенерировано быстро, чем бы оно ни было создано. Пользователи Lovable сталкиваются с ними раньше, потому что раньше выкатывают продукт.
Вы не можете сделать ревью кода. Вы можете проверить поведение.
Большинство багов в коде Lovable — это сохранения, которые не сохраняются, отсутствующие пустые состояния и вещи, работающие только в той учётной записи, где их собирали. Проверьте сначала эти три, а затем сделайте проверки автоматическими, прежде чем показывать приложение другим.