ChatGPT в работе тестировщика: как и когда использовать
Я в тестировании уже полтора года и в последнее время активно использую ChatGPT в своей работе. К сожалению, мое с ним взаимодействие не сразу принесло плоды. Поэтому я решил переложить свой опыт проб и ошибок в написание гайда, который подскажет читателям блога ЛАНИТ на Хабре, как и зачем применять ChatGPT в задачах инженера функционального тестирования.
Вы найдете примеры промптов, которые можно применять на разных этапах тестирования, а также ознакомитесь с плюсами и минусами использования ChatGPT. Гайд включает практические рекомендации по составлению промптов и затрагивает важные аспекты обеспечения конфиденциальности данных.
Надеюсь, это поможет вам оптимизировать рабочие процессы и повысить продуктивность.
Зачем использовать ChatGPT?
ChatGPT может стать полезным инструментом в работе функционального
тестировщика. Он подойдет как новичкам, так и тем, кто давно в профессии. Начинающие легко смогут выделить паттерны и алгоритмы, которые помогут в дальнейшей работе, а также станут чуть самостоятельнее в решении некоторых вопросов.
Рассмотрим пример. Сотруднику необходимо протестировать поле ввода адреса электронной почты. Он придумал набор тестов на ввод допустимых символов в поле электронной почты. Однако тестировщик сомневается, какой набор символов можно вводить в данное поле. Не пропустит ли он ряд символов, которые важно протестировать для этой формы? Тут как раз поможет ChatGPT с нужным запросом:
Можно возразить, что это способна сделать и поисковая система, но вопрос в эффективности работы. Поисковая система ориентируется на ключевые слова и с простыми запросами справится не хуже. Но когда дело доходит до сложных вопросов, которые требуют данные для конкретной системы, ChatGPT вырывается вперед.
Принцип его работы построен на диалоге, имитирующем человеческое общение. Например, вы вводите запрос »2+2». Поисковая система будет искать по ключевым словам, то есть отдельно »2»,»+» и »2». Нейросеть сразу ответит »4».
Для опытных специалистов, думаю, объяснять пользу ChatGPT не нужно. Например, когда требуется решить узкоспециализированную задачу, а для этого нужно прочитать десятки гайдов с разрозненной информацией, которые зачастую написаны на иностранном языке. В таком случае ChatGPT становится незаменимым инструментом. Особенно если вы еще и ограничены во времени.
Примеры использования ChatGPT на разных этапах тестирования
Использовать ChatGPT можно с самых первых шагов тестирования продукта: с этапа планирования до пострелизного обслуживания продукта и формирования отчетов.
Планирование тестирования
На этапе планирования ChatGPT поможет получить сложные формулы для таблиц Excel и Google. Таблицы помогают собрать обширную информацию по срокам, рискам и даже графику работ. Всё это можно автоматизировать благодаря подсказкам и получать необходимые данные в реальном времени:
Анализ требований
При анализе требований часть вопросов к аналитику проекта можно сократить и разобраться в работе той или иной функциональности с помощью ChatGPT. Это позволит значительно сэкономить время и человеческие ресурсы.
Например, в требованиях написано, что система поддерживает ввод времени в формате Cron. Благодаря запросу, ChatGPT не только рассказал, что это такое, но и как этот формат работает.
Проектирование тестов
При проектировании тестов ChatGPT станет прекрасным помощником функциональным тестировщикам и автоматизаторам. Он способен писать целые тесты, но подобным сценарием я бы не рекомендовал пользоваться. В этом случае живого человека ничто не заменит. ChatGPT хорошо справляется с базовыми задачами, но если у вас сложный продукт, где есть множество взаимодействующих друг с другом элементов, то живой тестировщик будет работать эффективнее.
На запрос «примеры тест-кейса для формы авторизации логин/пароль» ChatGPT придумал варианты для разных сценариев.
Позитивные сценарии:
успешная авторизация,
запоминание пользователя.
Негативные сценарии:
неверный логин,
неверный пароль,
пустые поля (в том числе отдельно для логина и пароля).
Проверка безопасности:
Проверка верстки страницы авторизации:
Да, запрос был не самым детальным, но повторюсь, что полностью полагаться на этот инструмент не стоит. Это хорошая база, которую можно использовать как стартовую точку для написания набора тестов и корректировки их набора.
ChatGPT прекрасно умеет работать с языками программирования, а значит, это развязывает руки автоматизаторам в написании скриптов для своих тестов. Можно получить помощь в разработке скриптов с нуля или оптимизировать уже существующий код. В общем, все ограничено вашей фантазией.
Составление документации и инструкций
Часть нашей работы — это составление документации и инструкций. Поскольку ChatGPT — это генеративная нейросеть, то она способна на основе введенных в нее данных выдавать готовое решение. Естественно, это решение нужно вычитать и отредактировать, но ChatGPT поможет с базой и, вполне вероятно, позволит обратить внимание на нюансы в документах, о которых вы не подумали или могли забыть.
Анализ результатов тестирования
ChatGPT позволяет проанализировать полученные результаты тестирования. В систему можно загрузить целый массив данных и попросить сделать выводы. Если используется сторонняя система сбора и анализа данных, то у чата можно попросить совета по настройке той или иной функции и формулы для таблиц Google и Excel.
Плюсы и минусы использования ChatGPT
В первую очередь не переоценивайте потенциал инструмента. Проведём аналогию с дрелью. С ней гораздо эффективнее делать отверстия в кирпичной стене, чем работать вручную. Однако сама дрель без помощи человека способна только собирать пыль. Прежде всего, вы должны хорошо разбираться в процессах, которые происходят на вашем проекте, и на основе этих знаний выстраивать взаимодействие с нейросетью.
Плюсы работы с ChatGPT
Доступность. В отличие от наставника/коллеги/лида/аналитика ChatGPT доступен вам постоянно. Можно обратится к нему в любое время и мгновенно получить ответ.
Владение профессиональной информацией. Нейросеть обладает широким спектром знаний в области тестирования, и информация постоянно обновляется. У меня ещё не было ни одного вопроса, на который ChatGPT не смог бы ответить.
Самообучение. С помощью ChatGPT легко обучаться. Вы можете задавать бесконечное количество дополнительных вопросов, и система просто и лаконично ответит на них.
Делегирование рутины. ChatGPT позволяет настроить в автоматизированном режиме дополнительные инструменты для рутинных задач. Сам он может выполнять расчёты и отчёты в автоматическом режиме.
Вдохновение. Нейросеть позволяет генерировать новые идеи на основе ваших запросов. Это помогает в начале работы или, если есть потребность, взглянуть на задачу/проблему под другим углом.
Индивидуальный подход. ChatGPT отвечает не унифицированными фразами, а конкретным значением ровно под ваш запрос. В рамках одной темы можно вести целые диалоги: задавать новые вопросы, вводить новые данные и добиваться нужного результата с учётом ранее полученных ответов.
Теперь о минусах использования ChatGPT
Некорректный результат. ChatGPT ориентируется на набор какой-то информации, которая не всегда достоверна, к тому же бот может неправильно понять ваш запрос и, как следствие, выдать неправильный результат.
Игнорирование контекста. ChatGPT может не всегда учитывать контекст. Он не знает, что вы работаете над проектом А, изучая функцию Б, которая работает по правилам В. Если у ChatGPT нет контекста, он выдаст неверную информацию. Иногда нейросеть может не учитывать предыдущие сообщения. Этот момент нужно иметь в виду.
Неактуальность данных. Не всегда есть доступ к самой передовой версии, а если есть, то это не гарантирует актуальные данные. Когда решение задачи требует информации из областей, которые обновляются часто, велика вероятность получить не самые свежие сведения.
Дезинформация. Есть шанс получить недостоверную информацию, так как нейросеть берёт данные из открытых источников, а объемы информации настолько велики, что произвести ручную модерацию физически невозможно. Если от полученных данных зависит важная часть работы, то их желательно перепроверить.
Отсутствие конфиденциальности данных. У нас нет полноценного доступа к механизмам работы нейросети, поэтому мы не можем быть на 100% уверенными в полной конфиденциальности передаваемых данных.
Как эффективно использовать ChatGPT?
Рекомендации ниже помогут наиболее точно и качественно использовать ChatGPT в рабочих задачах.
Используйте максимально конкретный запрос
Для формулировки запроса используйте все, даже самые мельчайшие детали, которые вы можете предоставить системе. Чем конкретнее запрос, тем точнее ответ.
Например, вам нужна формула для Google Таблиц, чтобы высчитать нужную дату. В расчёт должны идти только рабочие дни. Его нужно начать с текущей даты и прибавить к ней значение из ячейки F4.
Сравните два ответа чата.
Так делать не надо:
В чем проблема этого запроса?
В промпте не обозначили, что расчёт начинаем с текущих суток. Нет указания на ячейку, откуда мы берём дополнительные данные, которые нужно прибавить к текущим суткам. Работа происходит в русской версии Google Таблиц, то и формула нужна на русском языке.
Полученные данные придется обрабатывать: подставлять свои переменные и заменять их на актуальные значения.
Пример хорошего запроса:
Здесь мы просто копируем готовый результат и вставляем в ячейку. Не требуется никаких доработок, и вы сэкономили часть времени, которое можно посвятить другим задачам.
Указывайте дополнительный контекст
Например, вы тестируете поле ввода даты рождения и собираетесь подготовить чек-лист проверок для него. Если ввести запрос без учета того, что поле отвечает за дату рождения, то ответ получится совершенно неточным.
Но если мы указываем контекст, то получаем нужный результат.
Структурируйте запрос
Для получения комплексного ответа структурируйте запрос с помощью разделения его на подпункты.
Прописывайте желаемый формат ответа
ChatGPT способен выдавать ответ в удобном для вас формате. Если нужна таблица вместо поисковой выдачи, то он может это сделать.
Задавайте уточняющие вопросы
Если с первой попытки не удалось получить нужный ответ, но вы понимаете, что вектор поиска верный, пишите уточняющие вопросы. В соответствии с этим нейросеть выдаст нужные данные.
Указывайте ограничения
Например, на решение текущей задачи вам выделено всего два часа. Вы понимаете, что пройти весь набор тестовых сценариев в указанное время невозможно. Чат способен работать с подобным условием и выводить релевантные результаты в соответствии с вашими ограничениями.
Пример написания промпта с учетом вышеуказанных рекомендаций
Давайте подробнее разберем один из примеров, связанных с непосредственной работой инженера по тестированию. Представим, что мы тестируем форму обратной связи. Она состоит из трех частей:
поле ввода заголовка обращения,
поле ввода текста обращения,
форма добавления файла через кнопку «Добавить файл».
Для заголовка допустим ввод любых символов, ограничение на ввод ― 100 символов.
В форму обращения тоже можно вводить любые символы, но ограничение по вводу ― не более 1000 символов.
Наконец, в форму приложения файла можно добавлять только картинки в формате jpg размером не более 5 Мб.
В своем запросе я собираю всю необходимую информацию и формирую из этого один целостный запрос:
Напиши набор тестов для тестирования формы обратной связи, вводные следующие:
Первое поле ввода для текста с любыми символами. Количество допустимых символов ― не более 100.
Второе поле ввода для текста с любыми символами. Количество допустимых символов ― не более 1000.
Третья форма добавления файла. Поддерживаемый формат ― jpg, размер ― не более 5 мегабайт.
Все поля и формы являются обязательными для заполнения. Сделай позитивные и негативные тесты отдельно. Результат сделай в виде таблицы.
В ответ я получаю следующее сообщение:
Это неплохой первоначальный набор, от которого мы можем отталкиваться, чтобы получить необходимые результаты. Например, здесь я понимаю, что в выборку не попали проверки на различные спецсимволы, которые допустимы для полей ввода заголовка и текста обращения. В этом случае я бы дополнил запрос следующим образом:
В первое и второе поля ввода допустим ввод любых спецсимволов и языков. Дополни таблицу проверками на ввод любых спецсимволов и одним примером на английском языке.
В дополнение к положительным тестам я получаю следующие позитивные проверки:
За несколько минут работы мы получили хорошую вводную информацию для начала составления тестовой модели. Рутинная задача, на которую могло бы уйти полчаса-час, выполнена значительно быстрее. Думаю, вы обратили внимание, что набор тестов далеко не полный. Например, в полях ввода можно было бы проверить ввод максимально возможного количества валидных символов без пробела.
Как показывает практика, верстка на этом часто ломается, что говорит о не самой лучшей адаптивности интерфейса под вводимые значения. Поскольку ChatGPT умеет работать с дополнительными запросами, то можно эту вводную отправить в нейросеть и добиться необходимой выдачи. Полученную поисковую выдачу вы можете использовать не только как референс для тестовой модели, но и как проверочный материал, чтобы максимально снизить влияние человеческого фактора. Написанную тестовую модель можно сравнить с ответом нейросети и убедиться, что все возможные сценарии тестирования учтены. Выбор варианта использования за вами.
Вопрос конфиденциальности
Коснёмся именно этого аспекта в работе с ChatGPT, так как многие из нас работают на проектах, которые не подразумевают распространение информации о них. Также проекты могут содержать конфиденциальные данные: пользовательская информация учетных записей, токены доступа, финансовая информация, контакты, геолокации и т.д. Как в этом случае подходить к тестированию сервисов?
ChatGPT собирает информацию о введенных данных только в рамках текущей сессии. Это значит, что информация не передается третьим лицам, а сам бот анализирует введенные запросы только в текущей сессии. Однако не стоит обманываться и пренебрегать конфиденциальностью. Рекомендации тут будут ровно такие, как и при обычной цифровой гигиене пользования сервисами.
Не указывайте личные данные
Не загружайте запросы с данными, которые содержат ФИО, контактный телефон, адрес, номера карт и банковских счетов, логины и пароли, ключи и токены авторизации и т.п.
Не пишите уникальный программный код продукта в запросе нейросети. Несмотря на заверения компании об отсутствии сбора информации о сессиях в чат-боте, невозможно быть полностью уверенным в безопасности своих данных.
Используйте обобщенные данные
Если запрос всё-таки подразумевает передачу данных, описанных выше, то можно заменить их несуществующими, сохранив тем самым структуру запроса. Вместо точных данных передавать лишь обезличенную и общую информацию, которая никак не позволит идентифицировать тестируемый вами продукт или получить несанкционированный доступ и вмешательство.
Вот один из примеров. У нас есть токен для авторизации на сервисе. Нам нужно узнать, как получить доступ через Postman, используя токен.
Да, безусловно. В данном случае мы получим не самый точный ответ, однако будем полностью уверены, что доступ к сервису не получат третьи лица.
А применяя правила, описанные выше, мы можем улучшить этот запрос, добавив к нему конкретное описание метода, который будем использовать для авторизации. Это позволит получить более точные данные, максимально приближенные к нашему пожеланию и продолжающие сохранять конфиденциальность токена авторизации.
Заключение
ChatGPT, в отличие от поисковой системы, способен точнее выдавать ответ на поисковый запрос с учетом всех вводимых данных.
ChatGPT поможет решить узкоспециализированную задачу в сжатые сроки.
ChatGPT можно использовать с самых первых шагов тестирования продукта, начиная с планирования и заканчивая пострелизным обслуживанием продукта и отчетами.
Использование чат-бота может быть полезным для решения рутинных задач, получения новых идей и вдохновения. Однако важно подходить к его использованию критически и проверять полученные результаты.
Следование рекомендациям, данным в этом гайде, поможет вам быстрее и эффективнее выстроить работу с ChatGPT.
И, конечно, не передавайте чат-боту конфиденциальные данные, а работая с ними, заменяйте информацию на обобщенную.
Чтобы еще раз доказать полезность и возможности чата, упомяну, что в написании данного гайда мне помог сам ChatGPT. Используя полученные данные и перерабатывая их под свои нужды, в итоге получилось это руководство. Используйте его как отправную точку в работе и отличные результаты не заставят себя долго ждать.
Примеры промптов в гайде для решения повседневных задач тестировщика:
для создания сложных формул для таблиц Excel и Google:
— Напиши формулу для Google таблиц на русском языке для расчета даты от текущей с прибавлением числа из определенной ячейки, учитывая только рабочие дни.
— Формула для расчета количества рабочих дней на русском языке в Google таблицах, начиная с текущей даты с прибавлением значения из другой ячейки F4.
для написания набора тестов и корректирования их набора:
— Примеры тест-кейса для формы авторизации логин/пароль.
— Какие тесты формы авторизации стоит провести в первую очередь, если у меня есть только 2 часа.
для анализа полученных результатов тестирования:
— Всего пройдено 1387 тестов, из них 983 успешно. Какой процент неуспешных тестов?для составления чек-листов:
— Чек-лист проверок поля ввода для даты рождения.
— Напиши чек-лист позитивных и негативных проверок формы авторизации. Приведи список в виде таблицы отдельно позитивных и негативных проверок.
для получения обобщенных данных, если работаете с конфиденциальными данными:
— Как можно авторизоваться на сервисе через Postman.