ФОРС – Центр разработки
Москва, Трифоновский тупик, д. 3
Москва, Графский переулок, д. 14, корп. 2
Новости и события
В данной статье представлен опыт автоматизированного и нагрузочного тестирования с использованием инструментов Claude Code и Claude Desktop, которое проводилось нами в рамках проекта по развитию и модернизации Единой информационной системы Мосжилинспекции (ЕИС МЖИ).
В части автотестирования на проекте применялся BDD-фреймворк на Java, использующий Selenide для тестирования Web UI, Cucumber для написания сценариев в стиле BDD и REST Assured для тестирования REST API. Автотесты формировались при помощи Claude Code на основе анализа пунктов требований бизнес-постановки (БП) по конкретным заявкам на доработку системы. На рабочей машине для Claude Code был предоставлен доступ к исходному коду и локальным репозиториям фреймворка автотестирования, а также к ранее написанным автотестам. После этого на основе предоставленной информации нейросеть сформировала файл claude.md, содержащий краткую информацию о структуре проекта, фреймворка и автотестов — своего рода файл навигации и правил для нейросети для дальнейшей работы. Далее в репозиторий был добавлен Word-файл с бизнес-требованиями, а Claude был дан запрос на формирование feature-файлов с автотестами по конкретным пунктам из предоставленной бизнес-постановки. С использованием скилла docx (предустановленный скилл от Anthropic для работы с docx-файлами) Claude Code проанализировал пункты требований БП и сформировал набор feature-файлов и фрагментов для автотестов.
Важно отметить, что так как нейросеть не имеет доступа к тестовому контуру системы, в сценариях содержалось множество неточностей, которые всё равно необходимо было вычитывать и корректировать вручную, сверяясь с реализацией в системе и требованиями заказчика. Полученные автотесты формально соответствовали ожидаемому результату, но необходима была доработка в части обеспечения соответствия фактической реализации функционала в системе. Тем не менее, качество полученных feature-файлов и фрагментов для автотестов было приемлемым, в большинстве из них использовались действительно существующие в проекте Cucumber-аннотации Java-методов и логичные шаги.
Общий объём работ был сокращён благодаря готовому перечню сценариев, которые нужно было лишь подправить под фактическую реализацию, что, конечно, намного удобнее, нежели писать их с нуля. К тому же, некоторые глобальные правки также можно было попросить внести нейросеть.
Интересно отметить, что Claude Code способен выполнять команды, связанные со сборкой проекта и запуском автотестов. В некоторых случаях это может помочь упростить процесс отладки или поиска решений для исправления возникающих ошибок.
При проведении нагрузочного тестирования в данном проекте использовался JMeter как основной инструмент написания и тестирования скриптов нагрузки. Далее на готовых скриптах прогоны выполняются рабочими машинами посредством запуска из CI/CD Git, а результаты (графики и метрики) анализируются с дашбордов Grafana.
При подготовке скриптов нагрузочного тестирования не представляется возможным дать Claude Code задачу сгенерировать скрипт, так как он полностью состоит из HTTP-запросов, которые необходимо записывать рекордером из браузера непосредственно с тестового стенда и тщательно конфигурировать. Claude Code не даёт такой возможности по причине того, что тестовый контур системы закрыт VPN Заказчика.
Однако Claude Code помогает в части отладки и проверки работоспособности скрипта. К примеру, ему удавалось прочитать jmx-файл скрипта (более 20 тысяч строк) и найти места, в которых не хватало подстановки необходимых переменных. При наличии сотен запросов в скрипте в трудночитаемом для человека JSON-формате Claude Code отлично справляется с этой задачей и быстро указывает места и запросы, в которых требуются доработки.
Также Claude Code в десятки раз быстрее выполняет рутинные задачи — например, по переименованию всех запросов в скрипте по порядку или добавлению корректной нумерации.
В свою очередь, инструмент Claude Desktop помогает в решении более тривиальных, но не менее трудоемких задач, а именно: написании XPath/JSONPath-локаторов, поиске простых ошибок и информации по техническим вопросам, анализе документации на соответствие требованиям и т.д.
Помимо описанных выше сценариев, инструменты на базе Claude применимы и к ряду смежных задач тестирования. Перечислим некоторые из них.
В части работы с тестовыми данными ИИ помогает генерировать наборы значений, в том числе граничные и негативные, готовить данные для параметризованных тестов и формировать примеры тел запросов в форматах JSON и XML. Это снижает риск упустить нетривиальные граничные случаи, что может случиться при ручном подборе.
В части анализа и отладки нейросеть хорошо справляется с разбором объёмных логов, стек-трейсов и ответов API, помогает локализовать причины падения тестов и объясняет незнакомые участки кода фреймворка. Последнее заметно ускоряет погружение в проект новых специалистов, поскольку позволяет быстро понять назначение и устройство уже написанных автотестов.
В части поддержки кода автотестов ИИ применим для рефакторинга и приведения к единому стилю, поиска дублирующихся шагов, подсказок по использованию уже существующих в проекте Cucumber-аннотаций и применения других вспомогательных средств. При этом важно подчеркнуть, что любой сгенерированный или изменённый код требует обязательной проверки человеком.
Опыт применения Claude Code и Claude Desktop на проекте ЕИС МЖИ показал, что ИИ-инструменты являются эффективным вспомогательным средством, которое ускоряет работу тестировщика, но не заменяет его. Наибольшую пользу они приносят при выполнении рутинных или трудоёмких операций: анализе объёмных и трудночитаемых файлов, подготовке черновиков сценариев и документации, генерации тестовых данных, рефакторинге и массовых однотипных правках.
Ключевым ограничением остаётся отсутствие доступа к закрытому тестовому контуру системы. Из-за этого нейросеть не может свериться с фактической реализацией функционала, и результаты её работы — будь то feature-файлы, скрипты или фрагменты кода — требуют обязательной ручной вычитки и доработки. Поэтому ответственность за корректность итогового результата всё же несёт человек.
Тем не менее, даже с учётом необходимости проверки общий объём и трудоёмкость работ заметно сокращаются: дорабатывать готовый материал удобнее и быстрее, чем создавать его с нуля. Поэтому оптимальной представляется модель, при которой ИИ используется как ассистент для ускорения рутины и первичной подготовки артефактов, а финальный контроль, верификация и принятие решений остаются за тестировщиком.
Москва, Трифоновский тупик, д. 3
Москва, Графский переулок, д. 14, корп. 2
Москва, Графский переулок, д. 14, корп. 2
Москва, ул. Авиамоторная, д. 8, стр. 12, 5 этаж
Москва, Трифоновский тупик, д. 3
Москва, Графский переулок, д. 14, корп. 2
Москва, Графский переулок, д. 14, корп. 2
Москва, ул. Авиамоторная, д. 8, стр. 12, 5 этаж
Благодарим за ваш запрос.
Мы обязательно
свяжемся с вами!
Благодарим Вас!
Регистрация
прошла успешно.