Генерирую автотесты
QArelia | Blog about QA 🧩В этой статье я хотел немного поделиться своими мыслями про инструменты, которыми я пользовался для генерации автотестов. Их в целом пока что не так много, но потихоньку уже нарабатывается какой-то опыт использования и есть что рассказать =)

Chat GPT и другие
В целом я его использую как помощника по конкретным вопросам.
Это может быть какой-то кусок кода, с целью улучшить и что-то сделать с ним.
Это могут быть какие-то вопросы, а какой вариант лучше или как вообще сделать такое.
Обычно он справляется за 1-2 запроса. Чтобы прямо надолго мы утыкались и он не понимал, это нужно что-то большое ему скормить, тогда возможно он не так поймёт, но это скорее редкость. Если чётко сформулировать, то и ответ будет довольно быстро получен.
Для IDE мне удобно использовать плагин CodeGPT:
https://plugins.jetbrains.com/plugin/21056-codegpt
Он уже +- может опираться на мой контекст, подсказки некоторые иногда применяю.
Как-нибудь можно накидать каких-то полезных примеров, всё очень разнообразно.
Postman
https://www.postman.com/product/postbot/
Такой небольшой помощник Postbot помогает прямо в постмане сгенировать автотесты для запроса:

И эти тесты после запроса запускаются:

Можно пофиксить тесты, кнопка "Fix test", но в моём случае тест просто тупо удалился:

Как говорится, нет тестов - нет проблем ;)))
Я попробовал ещё нагенерировать тестов, он начал дублировать некоторые тесты, где-то просто чуть добавил проверок для конкретных полей и их типы, на структуру.
В целом это небольшое бот, который поможет накидать простых тестов для запроса.
Explyt
Совсем недавно я узнал, что есть такая штука для генерации тестов:
https://explyt.com/
Из описания мы узнаём, что инструмент умеет собирать контекст. Он проанализирует, какой фреймворк используется, JUnit/TestNG, Gradle/Maven и т.д..

Я пробовал использовать на примере API и Web автотестов. В моём случае нет контекста приложения, поэтому автотесты генерируются тяжело.
Плагин может установить зависимости, но, в основном это библиотека для моков Mockito, что в моём случае не актуально.
Интересен момент с фиксами ошибок компиляции, но как будто бы он действует только в рамках тестового класса и не может создавать что-то в других папках:

После всей "магии" мы видим окно настроек для генерации последующих тестов:

Он определил, где находятся файлы с тестами, какой фреймфорк используется, как фреймворк для моков (в моём случае не актуален).
Автоматически предлагается выбрать другой класс, на основе которого можно будет сгенерировать похожие тесты, плюс указать какие-то дополнительные вводные:

Тут же можно подправить описания каких-то сценариев:

После генерации код вставляется в таком виде в код, выделяется регион комментарием:

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

При нажатии на кнопку "Run and fix failing tests" они почему-то все закоменчиваются и не запускаются:

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