#explyt — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #explyt, aggregated by home.social.
-
Релиз Explyt Spring: SQL, Docker-Compose, Debugger
Всем привет! На связи команда
-
Нейросети в Spring-разработке: убираем рутину, а не интеллект
Всем привет, на связи команда Explyt. Как известно наша компания предоставляет целую экосистему плагинов для IDEA: это и плагин для поддержки Spring, а также Explyt плагин для написания кода, генерации тестов и интеграции с AI. И нам пришла в голову идея - а почему бы не расширить функциональность Spring плагина с помощью AI ассистента, который есть в Explyt . И если вы используете оба наши плагина, то у вас появятся дополнительные возможности для Spring, позволяющие достаточно хорошо решать типовые задачи, которые возникают в процессе работы, с помощью AI, о которых мы подробно расскажем далее.
-
Не LLM едиными: генерируем юнит-тесты из реального исполнения на лету
Представьте себе: вы отлаживаете новый баг в сложном многослойном приложении (например, на Spring). Чтобы воспроизвести проблему, приходится взаимодействовать со всей системой end-to-end: отправлять запрос на эндпоинт или что-то кликать в UI. Юнит-теста, который бы изолировал нежелательное поведение до уровня злополучного сервиса или утилиты, нет. А хотелось бы, чтобы он был: во-первых, воспроизводить баг было бы проще (особенно если UI кликает QA, а не вы), а во-вторых, его потом можно было бы легко превратить в регрессионный и улучшить стабильность системы. Тем временем все данные, нужные для воспроизведения бага в изоляции, есть. В окне отладчика видно, что приходит в метод, и в каком состоянии находится сервис перед тем, как все пойдёт не так. Мы в Explyt RnD решили, что нечего добру пропадать, и научились перехватывать это состояние, а потом генерировать юнит-тест, который в точности его воспроизводит. Сегодня расскажу о пройденном исследовательском пути, о том, как попробовать нашу экспериментальную фичу в плагине для IntelliJ IDEA, и о том, что у неё под капотом (спойлер: не только LLM).
https://habr.com/ru/companies/explyt/articles/947856/
#автоматизация_тестирования #spring #java #юниттесты #интеграционные_тесты #llm #intellijidea #kotlin #explyt #тестирование_вебприложений
-
Explyt Spring Plugin: поддержка Quarkus
Всем привет! На связи команда Explyt Spring. На этот раз как следует из названия будем говорить о поддержке Quarkus . На первый взгляд может показаться странным, причем тут Spring плагин и Quarkus. Но если разобраться более детально, то Spring также имеет поддержку Java EE аннотаций и к тому же поддержка Dependency Injection является одной из сильной сторон нашего плагина. Да и логика DI в Quarkus сильно проще чем в Spring, можно убедиться в этом прочитав официальную документацию , поэтому можно легко переиспользовать все наши текущие наработки и добавить поддержку Quarkus DI в наш плагин. И это также позволило переиспользовать для него многие другие наши “фичи”, о чем будет рассказано ниже.
-
Кто сильнее в синтезе тестов? Сравниваем GPT-4.1, DeepSeek, Qwen на своем бенчмарке
Выбор LLM для синтеза тестов В этом обзоре мы обсудим сравнение различных современных языковых моделей (LLM) на задаче синтеза тестов. Все измерения проводились на внутреннем бенчмарке компании Explyt, который включает в себя как закрытые, так и open source проекты на языках Java и Kotlin, с использованием Spring и без. В качестве метрик используются формальные метрики, например, покрытие строк тестируемого класса/метода, число запускаемых тестов, число компиляционных ошибок, мутационное покрытие, так и LLM-as-judge метрики такие, как сложность/полезность/детальность тестовых сценариев, соответствие тестового метода сценарию на естественном языке и много других. Эксперименты проводились поверх Explyt Test плагина для IntelliJ Idea, к которому подключались разные модели и измерялось качество синтеза тестов на бенчмарке. Для более точной градации мы используем попарное сравнение разных моделей друг с другом. GPT-4o vs. GPT-4.1 Начнем с хорошего базового варианта gpt-4o и сравним ее с новой моделью gpt-4.1 от OpenAI. На нашем внутреннем бенчмарке gpt-4.1 генерирует более сложные, детальные и полезные сценарии (согласно LLM-as-judge метрикам) в отличие от ее предшественницы gpt-4o, которая в основном тестирует happy-path сценарии. Также gpt-4.1 лучше имплементирует запрошенное в сценариях поведение, метрика показывает: 0.86 vs 0.66 (c p-value = 0.0006). По формальным метрикам таким, как среднее покрытие кода (coverage) и число запускаемых тестовых классов, модели примерно похожи, без статистически значимого отличия. По цене gpt-4.1 дешевле, но так как она больше тратит токенов, то цена на нашем бенчмарке примерно совпадает с gpt-4o.
https://habr.com/ru/companies/explyt/articles/917640/
#explyt #языковые_модели #llm #llmмодели #ai_for_programmers #ml #ai #сравнение #генерация_тестов #автоматизация_тестирования
-
Explyt Spring Plugin. Патчим байткод Spring или как мы улучшили распознавание контекста приложений
Всем привет! Одной из уникальных особенностей нашего плагина, является практически стопроцентное понимание контекста Spring приложений. Где мы максимально нативным способом, через публичное Spring Boot Api, смогли получить доступ к контексту приложения и использовали эту информацию у себя в плагине для поддержки Spring Dependency Injection и навигации к “бинам”. Но время не стоит на месте, и мы сделали еще один шаг в сторону улучшения распознавания Spring Context, путем модификации текущего байт-кода Spring через параметр jvm: -javaagent, который позволил избавиться нам от большинства недостатков текущего подхода, кому интересно узнать детали реализации, то добро пожаловать под кат.
-
Explyt Spring plugin. Поддержка *.http файлов в IntelliJ IDEA Community
Всем привет. В предыдущей статье мы рассказывали о нашей версии HTTP клиента, которая основана на генерации OpenAPI файлов по Spring-контроллерам и Swagger UI в качестве готового интерфейса пользователя для работы с запросами. В комментариях к ней писали, что поддержка http файлов весьма актуальна, так как они используются во многих существующих проектах. Мы решили изучить этот вопрос подробнее и вот что из этого вышло…
-
Explyt Spring Plugin — наша версия HTTP-клиента для IntelliJ IDEA
Всем привет! Как следует из названия статьи, речь пойдет о HTTP-клиентах для IntelliJ IDEA, да, опять). В последнее время было несколько публикаций на эту тему, и мы бы хотели подробно рассказать о нашем взгляде на эту проблему и нашей реализации. А также поговорить о плюсах и минусах текущих решений для IDEA. Ранее мы уже рассказывали о нашем плагине для Spring - о том как у нас реализована поддержка Dependency Injection в частности, теперь настала очередь HTTP client'а.
-
Не играй в догонялки со Spring — Explyt Spring plugin для IDEA Community
Введение Всем привет. После моей предыдущей статьи о Maven плагине, где я предложил новый подход к реализации и создал свою версию для IDEA (вместо того чтобы писать свой мини-мавен, я делегировал всю основную работу ему посредством Maven плагина), меня пригласили работать над Spring плагином в IT-стартап Explyt. Компания занимается автоматической генерацией тестов на базе AI и формальных методов. В процессе работы столкнулся с проблемами, похожими на те, которые решал в своем Maven плагине. У меня возникло некое дежавю, и я подумал: почему бы не использовать подобный подход, чтобы доработать и улучшить Dependency Injection Explyt Spring плагина? Текст для тех, кто работает со Spring-плагинами и хочет разобраться, как эффективно применять готовую логику Спринга для новых задач. Заходите под кат, подробно поделюсь своим кейсом, покажу код, расскажу про итерации и объясню логику.