ChatGPT в качестве тестировщика.  Примеры использования

bb928481f4348a2dae274f165e04d31c.png

Всем Аллоха!

С вами на связи Терешин Андрей.
Данная статья это отражение моего доклада с конференции про использование ChathGPT в качестве тестировщика с SQA Days 32.Поехали!

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

Как можно использовать ChatGPT в тестировании

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

  • Проверка корректности работы пользовательского интерфейса: кнопок, текстовых полей ссылок и т. д. 

  • Проверка локализации: как различные тексты и сообщения отображаются на разных языках и в разных регионах.

  • Тестирование функций чата: отправка сообщений, получение ответов и хранение сообщений.

  • Тестирование машинного обучения: поможет убедиться, что алгоритмы и модели работают правильно и выдают правильный результат. 

  • Тестирование производительности — например, путем создания большого количества тестовых запросов и проверки времени отклика.

Также есть ряд рекомендаций по использованию данного инструмента в качестве тестировщика. Вот лучшие практики:    

  • Определить цели и требования тестирования — это нужно, чтобы убедиться, что ChatGPT правильно тестирует необходимые функциональные и нефункциональные аспекты ПО.

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

  • Проверить качество ответов: ChatGPT может генерировать ответы на запросы, но важно проверить качество этих ответов. Это можно сделать путем сравнения ответов нейросети с ответами, полученными от человека или с исходными данными.

Реальные кейсы

Пример 1. Генерация тест-кейсов на примере XML

Рассмотрим простой пример генерации тест-кейсов без определения их требований. Вводим запрос: напиши 10 тест-кейсов для тестирования xml (пример xml любой):

94600270f5cd2de480f67695e9c0cfb9.png

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

171277b731ab256142429f4f2f785569.png

Пример 2. Генерация положительных и негативных тест-кейсов для проектирования веб-формы с определением полей и представлением паттерна.

9b707bcbdf0740faf4996742f08d89aa.png

Пример 3. Создание тест-плана в рамках открытого диалога по ранее созданным тест-кейсам ChatGPT, так как учитывается контекст предыдущих запросов в рамках одного диалога. 

6131f0b6e956fcf351721ae29d97154b.png

Пример 4. Генерация тест-кейсов с использованием техники тест-дизайна.

5e229e879808cd32f8468259d49415fa.png

Пример 5.  Пример помощи для генерации автотеста при использовании определенного языка программирования и библиотеки с описанием тестируемого контроллера.

Запрос звучал так: Код автотеста на Java для тестирования контроллера с тремя полями ввода с использованием библиотеки RestAssured.

39463bebf79e4ff71b2556bf651ccb26.png

Этот пример можно адаптировать под конкретные требования вашего приложения и контроллера. 

Также ChatGPT можно попросить сгенерировать контроллер и создать автотест с последовательным описанием каждого шага.

Запрос: Создай контроллер с тремя полями ввода и написания автотест на Java с использованием библиотеки RetroFit c описанием действий.

e365c6000e89ea0bb161ec9c70e20dcd.png

Комментарии для адаптации сгенерированных тест-кейсов можно также запросить у ChatGPT в первичном запросе или после его генерации. 

Вот ответ нейросети: В этом примере мы используем библиотеку RetroFit для создания клиента REST API и вызова метода контроллера, который принимает три поля ввода. Мы проверяем, что ответ от контроллера имеет код 200 (успешный ответ), и что контроллер вернул ожидаемый результат. Обратите внимание, что мы используем интерфейс MyControllerInterface, который описывает REST API контроллера, и класс MyResponse, который описывает ожидаемый ответ от контроллера. Вы должны заменить «http://localhost:8080» на URL вашего сервера и изменить MyControllerInterface и MyResponse в соответствии с вашим контроллером. 

Пример 7. Решение задач SQL силами ChatGPT.

ChatGPT поможет написать SQL-запрос. Ниже описан пример задачи с описанием полей таблиц в БД и запроса пользователя для получения выборки данных. Такую задачу могут дать соискателям на собеседовании. 

970b769f2adce6c30a4af3147f9937df.png78debfd34ae83c21a07cda1e50cdf8b6.png

Как видим, сформированный ответ имеет емкое описание с комментарием на поставленный запрос .

Пример 8. Генерация тестовых данных.

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

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

956e59ccd67dec98801bd85d6c5de954.pngb20d1650a52517c4c0ed3a54bb847dc0.png

Перспективы использования 

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

Однако нужно учитывать, что чат-бот может быть недостаточно точным. Это, напротив, грозит появлением новых ошибок в процессе тестирования. Такая реакция связана с тем, что последние версии нейросети «обучены» пользователями — грубо говоря, машина постепенно социализируется, старается угодить собеседнику и в любом случае дать ответ, даже ошибочный. Подробнее о том, как это работает, читайте в экспертном материале на Хабре.

Чтобы избежать ошибок, важно проверять качество ответов — в этом случае ChatGPT может стать перспективным инструментом в помощь QA-специалисту. Для наилучшего результата его желательно использовать в сочетании с другими методами — например, как дополнение к ручному тестированию.  

Как получить доступ к ChatGPT

ChatGPT недоступен официально в России. Для его использования в РФ нужен VPN  и виртуальный номер телефона другой страны, его можно купить — подробности и пример регистрации в статье по ссылке. 

»!!! Помните, покупая смс на чужой номер, вы компрометируете безопасность своего аккаунта — в дальнейшем этот номер может купить другой пользователь. 

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

ИИ, RPA наступают на пятки уже сейчас. Крупный отечественные и зарубежные компании вносят свой вклад в их развитие и популяризацию.
Успевайте забежать в этот поезд! Не откладывайте на завтра знакомство с новыми инструментами!

© Habrahabr.ru