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

87 6 min

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Была ли статья полезной?