Как стать автором
Обновить

ChatGPT: новый инструмент в борьбе с багами. Как можно использовать AI для повышения качества тестирования

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров32K
Всего голосов 22: ↑20 и ↓2+18
Комментарии23

Комментарии 23

Вроде интересно, но вот напрягает снимать очки, чтобы разобрать мелкий текст на картинках с ответами бота)

В текстовом виде в статье было бы дружественные к пользователям с неидеальным зрением, читающим с телефона. Да, chatGPT?

ага, про мобилки действительно не подумал, виноват

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

В SQL я не силен, но нужно срочно составить запрос и достать нужную информацию:

Ваша постановка задачи априори неполна, так что для нее нельзя построить однозначно правильный ответ. Но вы почему-то считаете полученный ответ верным.

Вы не указали боту, какие колонки являются в таблицах ключами. Вы не указали, что id в обеих таблицах — это тот же самый id (а в общем случае для суррогатного ключа это совсем даже не очевидно). То есть, я вот например, считаю JOIN ON t1.id = t2.id недопустимым, и человек, решая задачу, должен был бы сначала уточнить, что так можно. То что колонка в обеих таблицах называется одинаково — ни разу не повод для того, чтобы строить по ней JOIN.

Дальше больше — group by name, серьезно? То есть у нас вроде как есть id, робот по ним делает JOIN, но при этом мы группируем по имени, игнорируя тот факт, что однофамильцы бывают в природе? Не говоря уже о том, что запрос выведет все группы по всем именам, у которых есть пара во второй таблице. А в задаче (неявно, то есть это тоже дефект постановки вопроса) предполагается, что результатом будет одна строка.

Если бы это было реальное интервью на знание SQL, к человеку с таким ответом были бы вопросы. И много.

очень подробный разбор кейса с SQL)

статья не про то чтобы научить делать запросы скл, а для того чтобы смотивировать кого-то обратить внимание на возможности чатгпт

в скл я действительно не силен и задача высосана из пальца, это очевидно

Для ясности — я совершенно согласен, что результат получен очень интересный. Но как по мне, на сегодня совершенно непрактичный.

То есть, вы чуть меня недопоняли — я как раз в основном про ChatGPT. SQL тут вторичен. Вот вы, к примеру (это касается нас всех, смотря какая задача), не понимаете, правильный ли ответ, и не можете это (легко) проверить. Но результату доверяете. Я же в частном случае вижу, что он сомнительный. Есть ли возможности применения инструмента, которому вы не можете всегда доверять? Для меня на сегодня такой инструмент неприменим. Для кого-то в иной ситуации — возможно может использоваться. Где границы — вот что интересно.

И второй фактор — тут уже предлагали тестировать на ChatGPT свои базы и запросы. Как по мне, это упирается в простой фактор — у нас вот в компании за вынос наружу данных сотрудника уволят, и правильно сделают. А теперь расскажите мне, как вы будете применять на внутренних приватных данных инструмент, который имеет место только в облаке? Который вы не контролируете, и не знаете, куда он завтра ваши данные сольет? А ведь ему как минимум нужно будет показать вашу реальную схему данных, а возможно и сами данные. Пока не будет версии ChatGPT, работающей на своем железе, для меня ни о каком реальном применении к реальным данным вообще речи быть не может.

Вот смотрите, я недавно показывал код, который он мне «написал» по моему запросу: habr.com/post/712390/#comment_25166598

Если посмотреть серьезно, то это вообще не код, а фигня. Оно просто не работает. Но выглядит поначалу тоже правдоподобно. Ну как же, скала, спарк, все как просили :)

Я уже не говорю о том, что когда я его спросил, кто такой Буратино, ответ был просто шедевральный:

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


А когда я намекнул, что это не народная сказка, он быстро согласился, и выдал очередной перл:
Алексей Толстой действительно придумал Буратино. Буратино появился в первой книге Толстого «Детство Буратино» в 1892 году. Затем Толстой написал другие книги о Буратино, включая «Возвращение Буратино», «Буратино и его друзья» и «Последние приключения Буратино». Все эти книги стали популярными и привлекли внимание многих читателей. В наше время Буратино достаточно известен и пользуется большой популярностью.


Верим, верим :))) В продакшн. Срочно!

Врет он будь здоров!

Я как-то спрашивал его, почему Jenkins так называется (простой ответ: из-за спора с Oracle пришлось сменить название Hudson на то, что выиграло в соответствующем голосовании), ответы были один лучше другого:

  • Так звали почившего кота автора

  • Так звали поныне живущего пса автора

  • Так звали дворецкого автора, когда он учился в университете

Еще бы узнать, где оно это берет? Я вот пользуюсь дженкинсом с тех самых пор, как его звали Хадсон, и не знаю, в честь кого новое название. Все что я знаю — это то, что это имя означает примерно "Джонкинс", а точнее, ребенок Джона (а еще точнее, Маленького Джона, того самого).

Откуда — понятно, все слова взяты из интернета :) Но с количеством параметров, исчисляющихся сотнями миллионов, думаю, мы никогда не узнаем, как именно оно приходит к генерации той или иной последовательности слов.

А так: First, we rename the project - the choice for a new name is Jenkins, which we think evokes the same sort of English butler feel as Hudson

Ну и чисто в качестве развлечения: задал тот же вопрос GPT-4: уже смогло упомянуть спор с Ораклом (таки новость попала в выборку?), но все еще выдумывает:

As a result, Kawaguchi and the community decided to change the name of the project to "Jenkins" as an homage to a key contributor to the Hudson community, who had passed away earlier that year, whose last name was Jenkins.

Когда спросил, кого же так звали, какое полное имя, то каждый раз было смешно:

  • оказывается фамилия Дженкинс была у человека, которого звали Andrew Bayer

  • The person who passed away and was honored by naming Jenkins after him was Kohsuke Kawaguchi's friend and fellow contributor to the Hudson community, whose full name was Kohsuke Kawaguchi. He was known by the nickname "Kohsuke-san" to distinguish him from the project's creator, who is also named Kohsuke Kawaguchi.

  • бесконечный цикл (кажется, я остановил генерацию после 20 итерации) с добавлением в ответ строки "Kohsuke Kawaguchi's colleague, " :)

Midjourney в каком месте помог со статьей?

обложка

сори, увидел. С мобилы обложка не отображалась

Странно что чатГПТ ответил вам в пункте номер 6 - Конечно, я могу вам помочь! У него же вроде как нет доступа в интернет. Мне он ответил следующее:

К сожалению, я не могу получить ссылку на сайт, чтобы найти эти элементы для вас. Однако, я могу объяснить, как вы можете найти локаторы XPATH для этих элементов самостоятельно.

Вероятно, он был обучен когда-то и "видел" гитхаб сайт. Из чего можно сделать вывод что его знания не актуальны. И см. комментарий о том, что ему нельзя верить выше

странно, я вставлял ссылки на сторонние сайты не из числа самых известных и он с ними работал, по поводу доверия согласен, доверять машинам пока рано (да и вообще стоит ли :)

Если у него спросить прямо - Сходи на этот сайт и скажи что там в заголовке, например, то он ответит, что у него нет доступа в интернет. А если он выдает вам то что написано на сайте, то это только потому, что в процессе обучения ему "скормили" этот сайт(как он сам тоже отвечает). Про доверие это да...

Про интернет можно в бинге спросить

Про то, что эти кейсы скорее для формы регистрации, а не авторизации уже написали. Добавлю, что как-то все простенько - без фантазии. Что еще можно проверить (Целесообразность во внимание брать не будем. Нам же нужно сломать форму регистрации, раз уж задача дошла до тестирования?)

  • Где происходит верификация? Фронт/бэк? Нужна проверка и там и там, но, обязательно она должна быть на бэке (фронту, как известно - верить нельзя)

  • Из предыдущего пункта сразу напрашивается проверка - а могу ли я вообще ввести в поле что-то некорректное? Если могу - могу ли отправить - или фронт как-то покажет мне ошибку - подсветит или напишет?

  • А если отправить миллион символов?

  • А если отправить картинку, видео, и т.д.?

  • Пустую строку проверили, а NULL, NaN, undefined, true, false?

  • SQL-инъекция?

  • Race condition - попробовать одновременно зарегистрировать двух пользователей с одинаковыми логинами?

  • А если такой логин уже есть в системе?

  • А можно ли использовать логин admin, administrator и т.д.?

  • Et cetera

А если достать провод интернета и ввести?

А если вводить без клавиатуры?

А что если компьютер находится на улице?

Замечание правильное, фанатизма в этих проверках явно не хватает)

Ввод без клавиатуры? Прекрасный кейс. Часто забывают про ctrl+c - ctrl+v

Дело не в фанатизме, а в профессионализме

Привет, спасибо за статью. А можешь дать ссылку на бота got , которого ты использовал? Я нашла в телеге и у него ограничение по запросам в день.

Привет, спасибо тебе за комментарий!

Я делал напрямую, через https://openai.com/blog/chatgpt

Нужно купить виртуальный номер, я брал филиппины за 22.5₽ и зарегаться на сайте через впн, там нужна почта и номер для подтверждения

Можешь написать в телегу я подскажу подробнее @Neznayuusername

SQL запрос просто порвал, мало того то он не корректный абсолютно( нельзя применять having к колонкам, которые не отобразили в селекте, так и having id = MAX(id) так же абсолютно не верный синтаксис, он ничего не выдаст, короче не понятно как чатгпт такое выдал, непонятно как автор такое пропустил, но урок можно отсюда вынести, на чатГПТ надейся, а сам не плошай.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории