chatgpt
October 21

ChatGPT в работе тестировщика: как и когда использовать

Привет! Меня зовут Сергей Зубов, я в тестировании уже полтора года и в последнее время активно использую ChatGPT в своей работе.

В гайде рассмотрим, как и зачем применять ChatGPT в задачах инженера функционального тестирования. Вы найдете примеры промптов, которые можно применять на разных этапах тестирования, а также ознакомитесь с плюсами и минусами использования ChatGPT. Гайд включает практические рекомендации по составлению промптов и затрагивает важные аспекты обеспечения конфиденциальности данных.

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

Содержание гайда:

Зачем использовать ChatGPT?

Примеры использования ChatGPT на разных этапах тестирования

Плюсы и минусы использования ChatGPT

Как эффективно использовать ChatGPT?

Вопрос конфиденциальности

Примеры промптов в гайде для решения повседневных задач тестировщика

Заключение

Зачем использовать ChatGPT?

ChatGPT может стать полезным инструментом в работе функционального тестировщика. Он подойдет как новичкам, так и опытным тестировщикам. Те, кто делает первые шаги, легко смогут выделить паттерны и алгоритмы, которые помогут в дальнейшей работе. Смогут меньше загружать наставника вопросами и выработать подход, который позволяет решать проблемы самостоятельнее.

Рассмотрим пример. Сотруднику дали протестировать форму электронной почты. Он придумал набор тестов на ввод допустимых символов в поле электронной почты. Однако тестировщик сомневается, какой набор символов можно вводить в данное поле. Не пропустит ли он ряд символов, которые важно протестировать для этой формы? Тут как раз поможет ChatGPT с нужным запросом:

Промпт: какие символы можно вводить в адрес электронной почты?

Можно возразить, это же сделает и поисковая система, но вопрос в эффективности работы. Поисковая система ориентируется на ключевые слова, и с простыми запросами справится не хуже. Но когда дело доходит до сложных вопросов, которые требуют данные для конкретной системы, ChatGPT вырывается вперед.

Принцип работы ChatGPT построен на диалоге, который имитирует человеческое общение. Например, вы вводите запрос «2+2». Поисковая система будет искать по ключевым словам, то есть отдельно «2», «+» и «2». Нейросеть сразу ответит «4».

Для опытных сотрудников, думаю, объяснять пользу ChatGPT не нужно. Например, когда требуется решить узкоспециализированную задачу, а для решения нужно прочитать десятки гайдов с разрозненной информацией, которые часто написаны на иностранном языке. В таком случае ChatGPT становится незаменимым инструментом. Особенно если вы еще и ограничены во времени.

Промпт: как загрузить в гитлаб через командную строку в реестр пактов репозитория пакет с типом Debian.

Примеры использования ChatGPT на разных этапах тестирования

Использовать ChatGPT можно с самых первых шагов тестирования продукта: с этапа планирования тестирования до пострелизного обслуживания продукта и формирования отчетов. Ниже рассмотрим примеры использования чата на разных этапах тестирования.

1. Планирование тестирования

На этапе планирования чат поможет получить сложные формулы для таблиц Excel и Google. Таблицы помогают собрать обширную информацию по срокам, рискам и даже графику работ. Всё это можно автоматизировать благодаря подсказкам чата и получать необходимые данные в реальном времени:

Промпт: напиши формулу Google таблиц на русском языке для расчета даты от текущей с прибавлением числа из определенной ячейки, учитывая только рабочие дни.

2. Анализ требований

При анализе требований часть вопросов к аналитику проекта можно сократить и разобраться в работе той или иной функциональности с помощью чата. Это позволит значительно сэкономить время и человеческие ресурсы.

Например, в требованиях написано, что система поддерживает ввод времени в формате Cron. Благодаря запросу чат не только рассказал, что это такое, но и как этот формат работает.

Промпт: что такое формат времени Cron и как вводить время в этом формате.

3. Проектирование тестов

При проектировании тестов чат станет прекрасным помощником и функциональным тестировщикам, и автоматизаторам. ChatGPT способен писать целые тесты, но подобным сценарием я бы не рекомендовал пользоваться. В этом случае живого человека ничто не заменит. Чат хорошо справляется с базовыми задачами, но если у вас сложный продукт с множеством взаимодействий элементов друг с другом, то тестировщик будет работать эффективнее чата.

На запрос «примеры тест-кейса для формы авторизации логин/пароль» чат придумал тест-кейсы для разных сценариев:

Позитивные сценарии:

  • успешная авторизация,
  • запоминание пользователя.

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

  • неверный логин,
  • неверный пароль,
  • пустые поля (в том числе отдельно для логина и пароля).

Проверка безопасности:

  • SQL-инъекция,
  • XSS-уязвимость.

Проверка верстки страницы авторизации:

  • наличие элементов интерфейса.
Промпт: примеры тест-кейса для формы авторизации логин/пароль.

Да, запрос был не самым детальным, но повторюсь, что полностью полагаться на этот инструмент не стоит. Это хорошая база, которую можно использовать как стартовую точку для написания набора тестов и корректирования их набора.

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

4. Составление документации и инструкций

Часть нашей работы — это составление документации и инструкций. Так как ChatGPT — это генеративная нейросеть, она способна на основе введенных в неё данных выдавать готовое решение. Естественно, это решение нужно вычитать и отредактировать, но чат поможет с базой и, вполне вероятно, позволит обратить внимание на нюансы в документах, о которых вы не подумали или могли забыть.

Промпт: напиши инструкцию на основе тест-кейсов выше.

5. Анализ результатов тестирования

С помощью чата можно проанализировать полученные результаты тестирования. В систему можно загрузить целый массив данных и попросить сделать выводы. Если используется сторонняя система сбора и анализа данных, то у чата можно попросить совета по настройке той или иной функции и формулы для таблиц Google и Excel.

Промпт: всего пройдено 1387 тест-кейсов, из них 983 успешно. Какой процент неуспешных тестов?

Плюсы и минусы использования ChatGPT

В первую очередь не переоценивайте потенциал инструмента. Проведём аналогию с дрелью. С ней гораздо эффективнее делать отверстия в кирпичной стене, чем работать вручную. Однако сама дрель без помощи человека способна только собирать пыль. Прежде всего, вы должны хорошо разбираться в процессах, которые происходят сейчас на вашем проекте, и отсюда уже выстраивать ваше взаимодействие с нейросетью.

Плюсы работы с ChatGPT:

  1. Доступность. В отличие от наставника/коллеги/лида/аналитика чат доступен вам постоянно. Можно обратится к нему в любое время и мгновенно получить ответ.
  2. Владение профессиональной информацией. Нейросеть владеет широким спектром знаний в области тестирования, и информация постоянно обновляется. У меня ещё не было ни одного вопроса, на который так или иначе чат не смог бы ответить.
  3. Самообучение. С помощью чата легко обучаться. Вы можете задавать бесконечное количество дополнительных вопросов, и система просто и лаконично ответит на них.
  4. Делегирование рутины чату. Чат позволяет настроить в автоматизированном режиме дополнительные инструменты для рутинных задач. Сам чат может выполнять расчёты и отчёты в автоматическом режиме.
  5. Вдохновение. Нейросеть позволяет генерировать новые идеи на основе ваших запросов. Это помогает в начале работы или если есть потребность взглянуть на задачу/проблему под другим углом.
  6. Индивидуальный подход. Чат отвечает не унифицированными фразами, а конкретным значением ровно под ваш запрос. В рамках одной темы можно вести целые диалоги: задавать новые вопросы, вводить новые вводные и добиваться нужного результата с учётом ранее полученных ответов.

Теперь о минусах использования ChatGPT:

  1. Некорректный результат. Чат ориентируется на набор какой-то информации, которая не всегда достоверна, к тому же бот может неправильно понять ваш запрос и, как следствие, выдать неправильный результат.
  2. Неучитывание контекста. ChatGPT может не всегда учитывать контекст. Он не знает, что вы работаете над проектом А, изучая функцию Б, которая работает по правилам В. Если у чата нет контекста, он выдаст неверную информацию. Иногда нейросеть может не учитывать предыдущие сообщения, этот момент нужно иметь в виду.
  3. Неактуальность данных. Не всегда есть доступ к сам передовой версии чата. Даже если доступ есть, это не гарантирует актуальные данные. Когда решение задачи требует данных из областей, которые обновляются часто, велика вероятность получить не самые свежие сведения.
  4. Дезинформация. Есть вероятность получить недостоверную информацию, так как нейросеть берёт данные из открытых источников, а объемы информации настолько велики, что произвести ручную модерацию физически невозможно. Если от полученных из чата данных зависит важная часть работы, то их желательно перепроверить.
  5. Отсутствие конфиденциальности данных.  У нас нет полноценного доступа к механизмам работы нейросети, поэтому мы не можем быть на 100% уверенными в полной конфиденциальности передаваемых данных.

Как эффективно использовать ChatGPT?

Рекомендации ниже помогут наиболее точно и качественно использовать ChatGPT в рабочих задачах.

1. Используйте максимально конкретный запрос

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

Например, вам нужна формула для Google Таблиц, чтобы высчитать нужную дату. В расчёт должны идти только рабочие дни. Расчёт нужно начать с текущей даты и прибавить к ней значение из ячейки F4.

Сравните 2 ответа чата.

Так делать не надо:

Промпт: формула для расчета количества рабочих дней в google таблицах с прибавлением значения из другой ячейки.

В чем проблема этого запроса?

В промпте не указали, что расчёт начинаем с текущих суток. Нет указания на ячейку, откуда мы берём дополнительные данные, которые требуется прибавить к текущим суткам. Так как работа происходит в русской версии Google Таблиц, то и формула нужна на русском языке.

Полученные данные придется обрабатывать: подставлять свои переменные и заменять их на актуальные значения.

Пример хорошего запроса:

Промпт: формула для расчета количества рабочих дней на русском языке в Google таблицах начиная с текущей даты с прибавлением значения из другой ячейки F4.

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

2. Указывайте дополнительный контекст

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

Промпт: чек-лист проверок поля ввода.

Но если мы указываем контекст, то получаем нужный результат:

Промпт: чек-лист проверок поля ввода для даты рождения.

3. Структурируйте запрос

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

Промпт: 1. Какие языки программирования поддерживает Gitlab. 2. Выбери три самых популярных их них.

4. Прописывайте желаемый формат ответа

ChatGPT способен выдавать ответ в удобном для вас формате. Если нужна таблица вместо поисковой выдачи, то чат может это сделать.

Промпт: напиши чек-лист позитивных и негативных проверок формы авторизации. Приведи список в виде таблицы отдельно позитивных и негативных проверок.

5. Задавайте уточняющие вопросы

Если с первой попытки не получилось получить нужный ответ, но вы понимаете, что вектор поиска нужный, пишите уточняющие вопросы. В соответствии с этим нейросеть выдаст нужные данные.

Промпт: формула для Google таблиц на русском языке суммы всех ячеек. Расскажи, что значит каждый параметр в формуле.

6. Указывайте ограничения

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

Промпт: какие тесты формы авторизации стоит провести в первую очередь, если у меня есть только 2 часа.

Пример написания промпта с учетом вышеуказанных рекомендаций

Давайте подробнее разберем один из примеров, связанных с непосредственной работой инженера по тестированию. Представим, что мы тестируем форму обратной связи. Она состоит из 3 частей:

  • поле ввода заголовка обращения,
  • поле ввода текста обращения,
  • форма добавления файла через кнопку «Добавить файл».

Для заголовка допустим ввод любых символов, ограничение на ввод — 100 символов.

В форму обращения тоже можно вводить любые символы, но ограничение по вводу уже не более 1000 символов.

Наконец, в форму приложения файла можно добавлять только картинки в формате jpg размером не более 5 Мб.

В своем запросе я собираю всю необходимую информацию и формирую из этого один целостный запрос:

Напиши набор тестов для тестирования формы обратной связи, вводные следующие:

Первое поле ввода для текста с любыми символами. Количество допустимых символов не более 100.

Второе поле ввода для текста с любыми символами. Количество допустимых символов не более 1000.

Третья форма добавления файла, поддерживаемый формат jpg, размер не более 5 мегабайт.

Все поля и формы являются обязательными для заполнения. Сделай позитивные и негативные тесты отдельно. Результат сделай в виде таблицы.

В ответ я получаю следующее сообщение:

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

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

В дополнение к положительным тестам я получаю следующие позитивные проверки:

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

Как показывает практика, верстка на этом часто ломается, что говорит о не самой лучшей адаптивности интерфейса под вводимые значения. Поскольку чат умеет работать с дополнительными запросами, то можно эту вводную отправить в нейросеть и добиться необходимой выдачи. Полученную поисковую выдачу вы можете использовать не только как референс для тестовой модели, но и как проверочный материал, чтобы максимально снизить влияние человеческого фактора. Написанную тестовую модель можно сравнить с ответом нейросети и убедиться, что все возможные сценарии тестирования учтены. Выбор варианта использования за вами.

Вопрос конфиденциальности

Коснёмся именно этого аспекта в работе с ChatGPT, так как многие из нас работают на проектах, которые не подразумевают распространение информации о них. Также проекты могут содержать конфиденциальные данные: пользовательская информация учетных записей, токены доступа, финансовая информация, контакты, геолокации и т.д. Как в этом случае подходить к тестированию сервисов?

ChatGPT собирает информацию о введенных данных только в рамках текущей сессии. Это значит, что информация не передается третьим лицам, а сам бот анализирует введенные запросы только в текущей сессии. Однако не стоит обманываться и пренебрегать конфиденциальностью. Рекомендации тут будут ровно такие, как и при обычной «цифровой гигиене» пользования сервисами.

1. Не указывайте личные данные!

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

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

2. Используйте обобщенные данные.

Если запрос всё-таки подразумевает передачу данных, описанных выше, то можно заменить их несуществующими, сохранив тем самым структуру запроса. Вместо точных данных передавать лишь обезличенную и общую информацию, которая никак не позволит идентифицировать тестируемый вами продукт или получить несанкционированный доступ и вмешательство.

Вот один из примеров. У нас есть токен для авторизации на сервисе. Нам нужно узнать, как получить доступ через Postman, используя токен.

Промпт: как можно авторизоваться в сервисе через Postman.

Да, безусловно, в данном случае мы получим не самый точный ответ, однако будем полностью уверены, что доступ к сервису не получат третьи лица.
А применяя правила, описанные выше, мы можем улучшить этот запрос, добавив к нему точное описание метода, который мы будем использовать для авторизации. Это позволит получить более точные данные, максимально приближенные к нашему пожеланию и продолжающие сохранять конфиденциальность токена авторизации.

Примеры промптов в гайде для решения повседневных задач тестировщика

  • для создания сложных формул для таблиц Excel и Google:
Напиши формулу Google таблиц на русском языке для расчета даты от текущей с прибавлением числа из определенной ячейки, учитывая только рабочие дни.
Формула для расчета количества рабочих дней на русском языке в Google таблицах начиная с текущей даты с прибавлением значения из другой ячейки F4.
  • для анализа требований:
Что такое формат времени Cron и как вводить время в этом формате?
  • для написания набора тестов и корректирования их набора:
Примеры тест-кейса для формы авторизации логин/пароль.
Какие тесты формы авторизации стоит провести в первую очередь, если у меня есть только 2 часа.
  • для анализа полученных результатов тестирования:
Всего пройдено 1387 тестов, из них 983 успешно. Какой процент неуспешных тестов?
  • для составления чек-листов:
Чек-лист проверок поля ввода для даты рождения.
Напиши чек-лист позитивных и негативных проверок формы авторизации. Приведи список в виде таблицы отдельно позитивных и негативных проверок.
  • для получения обобщенных данных, если работаете с конфиденциальными данными:
Как можно авторизоваться на сервисе через Postman.

Заключение

  1. ChatGPT, в отличие от поисковой системы, способен точнее выдавать ответ на поисковой запрос с учетом всех вводимых данных.
  2. ChatGPT поможет решить узкоспециализированную задачу в сжатые сроки.
  3. ChatGPT можно использовать с самых первых шагов тестирования продукта, начиная с планирования тестирования и заканчивая пострелизным обслуживанием продукта и отчетами.
  4. Использование чат-бота может быть полезным для решения рутинных задач, получения новых идей и вдохновения. Однако важно подходить к его использованию критически и проверять полученные результаты.
  5. Следование рекомендациям, данным в этом гайде, поможет вам быстрее и эффективнее выстроить работу с ChatGPT.
  6. И конечно, не передавайте чат-боту конфиденциальные данные, а работая с ними, заменяйте информацию на обобщенную.

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

С вами был Сергей (@appblog32), инженер по тестированию, и обучающий центр ФТ.

Ставьте 👍/🔥/ 🎉, если вам интересны подобные материалы.