Генерирую автотесты

Генерирую автотесты

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 помогает прямо в постмане сгенировать автотесты для запроса:

Postbot

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

Результаты тестов

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

Postbot пофиксил тест просто удалив его

Как говорится, нет тестов - нет проблем ;)))

Я попробовал ещё нагенерировать тестов, он начал дублировать некоторые тесты, где-то просто чуть добавил проверок для конкретных полей и их типы, на структуру.

В целом это небольшое бот, который поможет накидать простых тестов для запроса.

Explyt

Совсем недавно я узнал, что есть такая штука для генерации тестов:
https://explyt.com/

Из описания мы узнаём, что инструмент умеет собирать контекст. Он проанализирует, какой фреймворк используется, JUnit/TestNG, Gradle/Maven и т.д..

Шаг 1. сбор контекста, описание сценариев

Я пробовал использовать на примере API и Web автотестов. В моём случае нет контекста приложения, поэтому автотесты генерируются тяжело.

Плагин может установить зависимости, но, в основном это библиотека для моков Mockito, что в моём случае не актуально.

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

Шаг 5. исправление ошибок компиляции

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

Окно с настрокайми для генерации тестов

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

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

Дополнительные вводные для генерации

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

Редактирование сценариев

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

Сгенерированный код тестов

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

Можно починить/запустить тесты

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

Закоментил код

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

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




Report Page