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

Как установить в другие Idea-совместимые IDE

Чтобы подключить маркетплейс GigaIDE к другим IDE, совместимым с JB Idea Community, выполните следующие шаги:

  1. Откройте меню Help → Edit Custom VM Options.

  2. Добавьте строку:

    -Didea.plugins.host=https://gigaide.ru/marketplace

  3. Перезагрузите IDE

    Ручное редактирование конфигураций маркетплейс в настройках Idea-совместимой IDE.
    Ручное редактирование конфигураций маркетплейс в настройках Idea-совместимой IDE.
  4. Установите плагин Elements и снова перезагрузите IDE.

    Установка необходимых зависимостей
    Установка необходимых зависимостей

Важно: дополнительные ИИ-помощники (Documenting, Logging, Transnationality, Test Model, Auto Test) требуют установки плагинов GigaCode (для генерации контента) и Team (выполняет роль ядра).

Обратите внимание, что в сторонних IDE поддержка русского языка может быть ограничена.

И мы начнём с плагина, который не содержит ИИ‑функциональности, но делает IDE более интегрированной, выступая клиентом для систем управления тестированием (TMS).

TMS — интеграция с Test Management Systems

В чём польза? Когда значительная часть тестовых сценариев (но не все) автоматизирована, удобно иметь «единое окно», в котором видны и описания сценариев в TMS-системе, и соответствующий им код автотестов в IDE. Плагин устраняет необходимость просматривать и редактировать тестовые сценарии в TMS, а код тестов в другом приложении — в IDE.

Плагин TMS позволяет подключаться к следующим TMS‑системам:

Какие есть фишки:

  • Работа одновременно с несколькими проектами в разных TMS.

  • Настройка визуализируемых папок TMS-проекта

  • Прямая навигация между тестовым сценарием в TMS и автотестом в коде, если тест описан с использованием Allure framework

Test Model — управление тестовой моделью

Этот ИИ‑помощник устраняет разрыв между автотестами и тестовыми сценариями в TMS-системе. Первые «живут в коде» и часто специфицируются с помощью Allure framework, вторые — в TMS‑системе. При частичной автоматизации тестирования часть тестов будет описана в коде, все (автоматические и ручные) — в TMS‑системе. Так или иначе возникнет дублирование, неполное описание, расхождение описания в коде.

Как решает проблему:

  • Синхронизирует описания тестов между TMS и исходным кодом.

  • Формирует новые тестовые сценарии.

  • Определяет и корректирует приоритет теста с помощью предиктивной модели.

Важно: плагин Test Model работает в пакетном режиме и является расширением для TMS-систем. Перед его использованием необходимо загрузить тестовые сценарии через плагин TMS.

Auto Tests — управление тестовыми сценариями

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

Что делает плагин:

  • Находит методы, модульные тесты для которых дадут максимальное снижение плотности дефектов.

  • Пытается сгенерировать эти тесты и скомпилировать результат генерации (результат не гарантирован).

  • Находит избыточные тесты, слабо влияющие на качество, и предлагает отключить их (добавить аннотацию @Disabled).

Плагин работает в пакетном и inline-режиме. В inline-режиме он также проверяет актуальность существующих тестов при изменении кода.

Как это устроено внутри

Когда встаёт вопрос о том, нужен ли применительно к конкретному методу (функции) модульный тест, инструкция сбора логов в теле или определённый состав параметров транзакции @Transactional, то для ответа используют специальную предиктивную модель и what-if анализ.

Для каждой такой задачи построена своя предиктивная модель, которая связывает метрики качества ПО (например, плотность дефектов) с такими факторами, как наличие тестов, логов и т. д. Например, для Auto Tests модель анализирует 57 характеристик метода для определения важности теста для метода, включая его сигнатуру и цикломатическую сложность.

При пакетном запуске ИИ-помощник для каждого метода анализирует:

  • насколько снизится плотность дефектов, если добавить тест;

  • насколько она вырастет, если удалить существующий тест;

и отбирает методы с наибольшим потенциальным влиянием на проект. На основе этого анализа плагин либо генерирует новые тесты через GigaCode, либо помечает избыточные аннотацией @Deprecated.

Текущая поддержка: Java и Kotlin.

На этом на сегодня всё. Если у вас есть вопросы или предложения по функциональности, пишите в поддержку: https://gitverse.ru/support

Автор: Андрей Слекеничс, PO GIGA IDE