- BrainTools - https://www.braintools.ru -
Всем привет! Я продолжаю цикл статей про применение ИИ в тестировании. Мы уже разобрали shift-left: контекст [1], тестирование требований [2], генерацию тестовой документации [3], автотесты [4]и оптимизацию тестовой модели [5]. Но даже когда кейсы написаны, а автотесты готовы, остаётся задача, на которую может уходить довольно много времени — это подготовка тестовых данных для ручного тестирования.
Есть масса различных видов тестовых данных, которые могут понадобиться QA-инженеру:
наполнить тестовую БД клиентами с валидными реквизитами и связями между таблицами,
собрать коллекцию Postman по Swagger,
подготовить файл с десятками записей под конкретный сценарий, и т.п.
Я не буду разбирать досконально все возможные варианты, но покажу на паре примеров, как подойти к такой задаче с помощью ИИ-инструментов.
Минимальный набор на входе зависит от вашей задачи, но общая логика [6] одна:
Чёткая формулировка — что генерируем, куда попадёт результат, сколько записей или сценариев вам нужно.
Опорные артефакты — схема БД, OpenAPI/Swagger, пример логов, список полей с типами и правилами и т.п.
Ограничения — не предлагать реальные персональные данные, не добавлять в скрипты команды для удаления таблиц и т.п.
Формат результата – четкий формат того артефакта, который вы хотите получить на выходе.
Эталонный пример итогового документа, чтобы модель меньше фантазировала.
Чем точнее входные данные, тем меньше итераций вам придется сделать для получения нужного результата.
Кратко опишите агенту, что нужно сделать. В описании укажите:
что генерируем (клиенты, договоры, события, запросы API);
куда попадут данные (PostgreSQL, CSV, Postman, мок-сервер);
сколько записей или сценариев вам нужно;
какие ограничения важны (валидность по правилам, явно тестовый вид, без реальных email).
Пример формулировки: «Нужно наполнить тестовую БД клиентами: данные валидные, но ФИО — из вымышленных персонажей.»
Не заполняйте всё сразу самостоятельно — попросите агента перечислить, какие данные ему нужны для поставленной задачи.
Перед генерацией перечисли, какие данные и артефакты тебе нужны от меня,
и задай уточняющие вопросы, если чего-то не хватает.
Обычно агент запросит схему, объём, правила валидности, примеры, ограничения по безопасности и т.п.
Ответьте на вопросы агента и приложите файлы. Чем точнее вход — тем меньше правок после генерации.
Если задача регулярная и вы хотите повторять [7] генерацию таких данных — попросите ИИ написать универсальный промпт с плейсхолдерами.
Собери универсальный промпт-шаблон с плейсхолдерами, который я смогу переиспользовать.
Укажи, что куда подставлять.
Сохраните себе шаблон и в следующий раз, когда будете использовать, просто заполните все переменные. Не обязательно каждый раз править промпт руками: можно описать новую задачу и попросить ИИ скорректировать шаблон.
До генерации зафиксируйте, что именно вам нужно получить на выходе:
формат: SQL-файл, JSON, CSV, curl, коллекция Postman;
один файл или несколько;
нужны ли комментарии, пкраткая инструкция «как запустить» и т.п.
Запустите генерацию по согласованному промпту. Провалидируйте результат, прогоните его на тестовой среде.
Если что-то не так — опишите ошибку [8] и попросите исправить точечно, и внести правки в промпт, если это необходимо.
Сохраните в папке проекта:
финальный промпт;
сгенерированный артефакт (SQL, .json, .http).
В следующий раз не начинайте с нуля — берите шаблон и подставляйте новые вводные.
Пример стартового сообщения для агента:
Задача: [что генерируем]
Для чего: [БД / API / файл / Postman]
Объём: [сколько записей/запросов]
Какие данные: [чёткое описание]
Ограничения: [что нельзя]
Формат результата: [csv, json, коллекция Postman]
Сначала: перечисли, что тебе нужно от меня, и подготовь промпт-шаблон.
Потом: сгенерируй результат в формате [SQL / curl / JSON / ...].
В конце: кратко опиши, как проверить результат.
Одним из самых распространенных кейсов по подготовке тестовых данных является наполнение тестовых БД клиентами, товарами или другими сущностями. Если у вас есть API для создания таких сущностей, то задача не должна быть сложной. Но если вам приходится готовить такие данные вручную, да еще и задействовать несколько связанных таблиц сразу, то такая задача – потенциальный кандидат для применения ИИ.
ИИ-агент может сгенерировать нужное количество данных и подготовить SQL-скрипт для инсерта в нужную таблицу.
В промпте перечисляем таблицы, столбцы, типы данных и бизнес-правила. Пример:
Сгенерируй 50 записей для тестовой БД + ТОЛЬКО SQL скрипт для их вставки в таблицу. БД PostgreSQL
Название таблицы test_table
Названия столбцов и формат данных:
id - формат guid
number - формат integer
name - текстовый формат, строка должна начинаться со слов "Договор №" + любой номер от 1 до 100000
start_date - формат timestamp, в интервале от текущей даты до текущая дата минус 2 года
end_date - формат timestamp, не позднее текущей даты + 5 лет
object - массив объектов (от 1 до 5 объектов в массиве):
[
{"code": формат guid
"name": строка,
"address": любой адрес в России,
"isActive": true/false}
]
description - любая строка, не больше 64 символов
created - NOW()
updated - NOW()
На что смотрю я:
|
Область |
Что проверить |
|---|---|
|
Структура |
В |
|
Форматы |
|
|
Ограничения из промпта |
|
|
Безопасность |
Нет |
После проверки делаю пробный INSERT в таблицу на тестовом стенде. Если падает — возвращаюсь к агенту с текстом ошибки.
Пробный INSERT прошёл — запускаем полный скрипт. На всю задачу обычно уходит 5-10 минут.
С Postman еще проще, чем с БД. Для этой задачи промпт вообще не обязателен — достаточно простого объяснения в чате с агентом.
Сгенерируй мне коллекцию для постмана по этому сваггеру https://petstore.swagger.io/
и сохрани в текущей папке. Также сгенерируй файл с окружением со всеми необходимыми переменными.
На выходе получаете json файлы с коллекцией запросов и окружением. Импортируете в Postman — получаете работоспособные запросы с переменными окружения. Можно сразу попросить ИИ сгенерировать pre-request и post-request скрипты, если вам нужно сохранять какие-то атрибуты из ответов и передавать в другой запрос.
Если Swagger недоступен по URL (внутренний стенд, VPN, авторизация):
Переходите по ссылке со страницы Swagger на JSON-описание методов.
Сохраняете файл локально.
Даёте агенту задачу:
Сгенерируй мне коллекцию для постмана по этому файлу @openapi.json
и сохрани в текущей папке. Также сгенерируй файл с окружением со всеми
необходимыми переменными.
Результат аналогичный — файлы готовы к импорту.
Для Postman я обычно проверяю: все ли эндпоинты из спецификации попали в коллекцию, корректны ли пути и методы, заполнены ли переменные в environment (baseUrl, токены, если нужны). Один-два запроса прогоняю руками сразу.
|
Критерий |
Что проверить |
|---|---|
|
Задача |
Понятно, что генерируем, куда и сколько |
|
Входные данные |
Схема, правила и ограничения переданы агенту |
|
Формат вывода |
Согласован до генерации (SQL, curl, JSON и т.д.) |
|
Валидность |
Поля и связи соответствуют DDL или контракту API |
|
Безопасность |
Нет нежелательных |
|
Сохранение |
Промпт и артефакт лежат в папке проекта для повторного использования |
Генерация тестовых данных с ИИ работает, если:
чётко описать задачу и согласовать формат вывода до генерации;
передать схему и ограничения;
проверить результат на тестовой среде, начиная с одной записи;
сохранить промпт и артефакты для переиспользования.
В следующих статьях я расскажу про другие задачи, с которыми вам могут помочь ИИ-инструменты.
Продолжение следует!
Автор: alenameteneva
Источник [9]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/34524
URLs in this post:
[1] контекст: https://habr.com/ru/companies/rgs_it/articles/1041996/
[2] тестирование требований: https://habr.com/ru/companies/rgs_it/articles/1044980/
[3] генерацию тестовой документации: https://habr.com/ru/companies/rgs_it/articles/1047704/
[4] автотесты : https://habr.com/ru/companies/rgs_it/articles/1050208/
[5] оптимизацию тестовой модели: https://habr.com/ru/companies/rgs_it/articles/1055862/
[6] логика: http://www.braintools.ru/article/7640
[7] повторять: http://www.braintools.ru/article/4012
[8] ошибку: http://www.braintools.ru/article/4192
[9] Источник: https://habr.com/ru/companies/rgs_it/articles/1061318/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1061318
Нажмите здесь для печати.