Привет, Радар! Мы в BugBuster AI создаем инновационную платформу для автоматизации E2E тестирования веб-приложений. Это серия практико-ориентированных статей, где мы показываем, как с помощью естественного языка можно автоматизировать тестовые сценарии на реальных сайтах. Сегодня мы автоматизируем тест-кейс на случайно выбранном сайте – его подскажет нам ChatGPT.
Выбор сайта
Зададим простой запрос в ChatGPT – не промпт, а обычный текстовый запрос: «Выбери в интернете случайный, но реальный сайт, где пользователь может что-то получить». Добавим ограничение: сайт не должен синтезировать речь. Давайте посмотрим, что предложит чат.

В ответ мы получили сайт под названием InspiroBot – простой сервис, где пользователь без регистрации получает случайную вдохновляющую цитату в виде изображения.

Давайте посмотрим, как он работает. На сайте есть кнопка Generate – при ее нажатии генерируется новое изображение с цитатой. Это и будет объектом нашего тестирования.

Чтобы проверить цитату, предлагаем скопировать ее с изображения и ввести в поисковик. Таким образом, мы узнаем, встречается ли она в интернете – то есть оценим ее релевантность.
Создание тест-сьюта и тест-кейса
Приступим к автоматизации. Создадим тест-сьют, назовем его, например, «Практика».

В нем создадим тест-кейс – «Генерация цитат».

Укажем URL-адрес тестируемого сайта. Скопируем его и вставим.

Первое действие – нажать кнопку Generate. Но мы не хотим использовать прямое название кнопки. Вместо этого опишем ее по иконке. Иконка очень напоминает значок обновления или перезагрузки.

Поэтому так и напишем: «Нажать на кнопку с иконкой перезагрузки».

После нажатия появляется индикатор загрузки. Его тоже стоит учесть. Подождем появления полосы загрузки.
Затем дождемся загрузки самой картинки.

Далее добавляем шаг: «Скопировать цитату с картинки». Сама картинка не имеет уникального описания, и на странице может быть несколько изображений. Поэтому уточним: «Скопировать цитату с картинки, расположенной в центре страницы». Посмотрим, хватит ли этого описания.

Скопировав цитату, мы откроем поисковик – мы решили использовать Яндекс. Скопируем URL и добавим шаг: «Открыть страницу».

Это действие откроет новую вкладку. Само тестируемое приложение останется в первой вкладке, а поисковик – во второй.
Далее нужно вставить цитату с картинки в поле поиска, и нужна проверка. В итоге мы хотим получить поисковую выдачу по этой цитате. Ожидаемый результат — это отдельный тип шага. Он отмечен желтой лампочкой. В ожидаемом результате напишем: «Поисковая выдача соответствует запросу». Конкретизируем: «Встречаются сниппеты, содержащие цитату в поле поиска». Формулировки должны быть такими, чтобы система по результатам проверки могла ответить true или false.

Запуск теста
Все готово. Запускаем. Открывается браузер, переходим по указанному URL. Мы открыли тестируемое приложение, нажали на кнопку Generate – и не ошиблись: это действительно иконка перезагрузки. Ждем появления полосы загрузки – она появилась. Теперь ждем саму картинку.

Картинка загружена, цитата на ней видна. Мы копируем цитату – система определила это как операцию чтения (read). Открываем страницу yandex.ru – вкладка открылась.
Вставляем цитату в поисковое поле: Lock up your guns when you feel sad. Это точная цитата с картинки. Но тест-кейс упал. Почему? Система BugBuster объясняет: «На скриншоте отсутствует поисковая выдача и сниппеты, которые должны содержать текст запросы ‘LOCK UP GUNS WHEN YOU FEEL SAD’. Видны только элементы интерфейса, информация о погоде (+27°), курсы валют (USD 78.47, EUR 92.28) и местоположение (Амстердам). Поэтому невозможно проверить соответствие поисковой выдачи запросу».

В ожидаемом результате указано, что в выдаче должны быть сниппеты с цитатой, но на скриншоте нет ни поисковой выдачи, ни сниппетов. Все понятно: мы вставили текст, но не отправили запрос. Тест упал упал из-за отсутствия выдачи – это логично. Обратите внимание, что система описала свои рассуждения в красном блоке.
Выдача появляется только после нажатия на Enter. Поэтому, чтобы результаты поиска отобразились, добавим шаг «Нажать на клавишу “Enter”» и запустим тест-кейс снова.

Что говорит платформа BugBuster? «Анализ показывает, что поисковая выдача полностью соответствует запросу ‘The world doesn’t need you to be more girly’: 1. Все результаты содержат ключевые слова ‘girly’ и связанные темы 2. В сниппетах присутствуют прямые цитаты, например: – “Being girly can be a challenge, especially if you are a tomboy by nature” – “I like both athletic girls and girly girls. It depends on their personality” – “Every girl needs to be girly and sophisticated” 3. Присутствуют как текстовые результаты, так и изображения, связанные с темой. Результаты поиска релевантны запросу и включают множество цитат, что полностью соответствует проверяемому условию».

Видно, что результаты релевантны: есть текстовые цитаты, изображения, тематические материалы. Условие выполнено. Теперь система описала свои рассуждения в зеленом блоке.
Инверсия проверки
Теперь проверим обратное: изменим ожидаемый результат на «Поисковая выдача не соответствует запросу, не встречаются сниппеты, содержащие цитату в поле поиска».

Ранее мы убедились, что при корректной настройке тест проходит, а при пустой выдаче – падает. Теперь проверим, как платформа BugBuster отреагирует на противоречащую проверку.
Мы заявили, что выдача не должна соответствовать запросу, хотя на самом деле она релевантна. Посмотрим, как BugBuster это оценит. Шаги не менялись.
Все проходит стабильно. Открылся Яндекс, цитата вставлена. И, как и ожидалось, выдача релевантна. Тест-кейс упал – напомним, мы сделали его обратным: ожидаем, что результаты не содержат текст запроса.

BugBuster сообщает: «Утверждение неверно по следующим причинам: 1. Поисковая выдача полностью соответствует запросу, так как все результаты содержат вариации фразы ‘no sane person would/will’. 2. В результатах представлены релевантные статьи, обсуждающие различные ситуации, где используется эта фраза: – о финансовых активах и казначейских облигациях – о банковской системе – о политических решениях – о судебных делах 3. Результаты логически связаны с темой запроса и содержат схожие конструкции ‘no sane person would/will’».
Система BugBuster проанализировала выдачу, увидела соответствие и правильно отреагировала на ошибочное ожидание – тест упал.
***
Хотите автоматизировать тест-кейсы так же быстро и просто — на естественном языке, без написания кода и с мгновенной проверкой результатов? Вы можете начать уже сегодня. Зарегистрируйтесь на BugBuster AI, чтобы получить бесплатный доступ к платформе и познакомиться с новым подходом к системам управления и автоматизации тестирования — интуитивным, эффективным и доступным для всей команды.
Напишите в комментариях, если хотите, чтобы мы протестировали ваш сервис или кейс.
⭐️ Эту статью написал «Друг Радара». Вы можете добавить свою статью или обсудить ее идею с нами в боте. Редакция Блогов Product Radar бережно сохранила авторский стиль, орфографию и пунктуацию.