Искусственный интеллект преобразит тестирование софта
Такой результат показало исследование State of DevOps Russia 2024, которое провела команда "Экспресс 42″ при стратегической поддержке Deckhouse совместно с Yandex Cloud, HeadHunter, Avito Tech, Т-Банком, JUG Ru Group и OTUS. Оно прошло в форме опроса, в котором приняли участие более 4000 ИТ-специалистов из российских компаний.
Как показал опрос, 44% компаний применяют искусственный интеллект (ИИ) в ходе разработки и тестирования программного обеспечения (ПО). Инструменты с ИИ наиболее активно используются для автоматизации тестирования кода, выявления аномалий в данных, управления конфигурациями систем и инцидентами. 47% респондентов отметили положительное влияние ИИ на эффективность процессов, связанных с разработкой и тестированием ПО.
Технический директор ООО "БСС" (BSS) Дмитрий Свалов считает этот результат обоснованным и даже несколько заниженным: "Эта оценка выглядит вполне обоснованной, учитывая современные тенденции в индустрии. ИИ-инструменты активно внедряются для автоматизации рутинных задач и повышения эффективности разработки и эксплуатации ПО. Стоит отметить, что фактический процент использования ИИ, прежде всего в тестировании, может быть даже выше, так как сотрудники часто применяют ИИ по собственной инициативе для решения рабочих задач, что не всегда отражается в официальных исследованиях".
Генеральный директор ООО "Базис" Давид Мартиросов видит тенденцию, что ИИ сможет не только дорабатывать и проверять, но и писать программный код, пусть и несложный на первых порах: "В будущем роль таких помощников вырастет, и они смогут составить полноценную конкуренцию разработчикам. Аналогичные тенденции существуют в эксплуатации действующих информационных систем, где ИТ-специалисты выполняют понятный набор функций, часть которых уже может взять на себя ИИ. В перспективе похожие тенденции мы увидим в других сферах - например, в промышленности, где ИИ может взять и уже берет контроль качества производства и т д. Сдерживающим фактором являются трудности с доступом к специализированному оборудованию для работы с нейронными сетями и ИИ. При этом важно, как решится вопрос с доступом к специализированному оборудованию для работы с ИИ: пока в этой области лидируют западные страны, однако китайские партнеры уже предлагают аналоги. Есть надежда, что Россия также не останется в стороне и представит отечественные аппаратные решения, что даст цифровизации страны существенный толчок".
Руководитель отдела .NET ICL Services Ибрагим Габидуллин сравнил применение ИИ для задач DevOps с делегированием задач от опытных к начинающим сотрудникам: "Как показывает практика, какие-то задачи упрощаются и ускоряются, но при этом тратится время на ревью того, что сделал ИИ. Например, это можно сравнить с тем, когда руководитель дал задачу Junior-сотруднику, а Senior-сотрудник проверяет и редактирует эту задачу после джуна. В целом в таком подходе происходит экономия около 30% времени Senior-сотрудника. Часть DevOps-задач - это разработка скриптов, и тут как раз на помощь приходят всякого рода GPT-нейросети".
По оценке руководителя отдела тестирования IW Group Игоря Бессараба, ИИ хорошо подходит для автоматизации рутинных процессов: написания тестовой модели по готовой документации, декомпозиции аналитики на задачи, юнит-тестов для разработки: "Все, что является рутинной операцией, можно и нужно передавать ИИ. Пока остается вопрос о безопасности данных, но в ближайшее время это будет решено. Основной эффект от применения ИИ - сокращение трудозатрат. По средним оценкам, применение ИИ может сократить до 30% трудозатрат команды, исключая рутинные и трудоемкие процессы".
Руководитель экспертно-аналитического отдела российского разработчика программного обеспечения ООО "АЛМИ Партнер" (ALMI Partner) Елена Куц назвала 44% ориентировочной оценкой: "Реальное применение ИИ может быть как выше, так и ниже этого показателя. Многие компании внедряют разнообразные процессы, основанные на ИИ. Например, автоматизированные тесты, аналитику данных, машинное обучение для принятия бизнес-решений. Оценка применения ИИ в рамках DevOps также зависит от конкретной отрасли и региональных особенностей. Например, компании, работающие в финансовой сфере и здравоохранении, где требуется высокая степень надежности и производительности ПО, могут более активно внедрять ИИ в DevOps-процессы по сравнению с организациями из других отраслей. Внедрение ИИ существенно сокращает трудозатраты во многих сферах деятельности, что ведет к повышению производительности и эффективности работы в несколько раз. Благодаря применению алгоритмов машинного обучения и нейронных сетей, ИИ способен выполнять множество повторяющихся задач значительно быстрее и точнее, чем человек".
"Сценариев применения ИИ в рамках DevOps много, и они не ограничиваются тестированием кода. Среди актуальных задач: генерация тест-кейсов, помощь в миграции несложных пайплайнов и маскировании (обезличивании) данных. ИИ-инструменты могут повысить эффективность написания кода - они помогают исправлять ошибки, оптимизировать циклы и код, написанный разработчиком, искать функции, способные привести к дефекту в решении, на этапе сборки. Технологии также можно применять для поиска уязвимостей в ИБ и анализа пул-реквестов. В отличие от человека, который может что-то пропустить или не заметить, ИИ проверяет абсолютно все и дает больше качественных замечаний для улучшения производительности и эффективности системы. Основной эффект внедрения ИИ - повышение качества и скорости написания кода. Точную оценку сокращения трудозатрат в разработке дать сложно, однако некоторые компании заявляют, что внедрение ИИ позволило сократить затраты бизнеса на создание ПО на 30-40%", - отметил руководитель стрима "Инженерные инструменты" платформы "Сфера" Евгений Калашников.
По оценке ведущего менеджера продукта Softline Digital Максима Милкова, возможные сценарии использования ИИ не ограничиваются тестированием кода, управлением конфигурациями и выявлением аномалий в данных: "ИИ может быть интегрирован в различные бизнес-процессы, значительно улучшая их эффективность и производительность. Например, это может быть анализ данных и прогнозирование, допустим, предсказание спроса на продукты и услуги. Также это может быть автоматизация бизнес-процессов, когда необходимо обработать документы или упростить систему учета. ИИ-технологии находят широкое применение в сферах маркетинга, обслуживания клиентов, кибербезопасности, управления персоналом и оптимизации ресурсов. Выигрыш при этом может достигать десятков процентов".
Как отметил Дмитрий Свалов, ИИ в DevOps может использоваться для широкого спектра задач, в том числе выходящих за рамки тестирования кода, управления конфигурациями и выявления аномалий: "Например, ИИ может быть задействован для оперативного реагирования на инциденты и принятия решений по их устранению путем управления инфраструктурой. Однако в таких случаях важно соблюдать осторожность и установить ограничения для поддержания высокого уровня безопасности".
Директор отделения автоматизированного тестирования IBS Денис Воденеев назвал сферами, где успешно применяется ИИ-помощь в написании кода, рефакторинг, подготовку тестовых данных: "На текущий момент доказанная польза в рамках наших проектов, где возможно его использование (а по большей части инструменты облачные), направлена на специалистов уровня middle+. Это связано с тем, что они могут самостоятельно верифицировать результат работы ИИ и максимизировать полезный эффект его применения в рамках рутинных задач. Для проектов, где невозможно применение инструментов вне контура, мы готовим собственный инструментарий с использованием ИИ для тестирования, который будет возможно развернуть локально у заказчика и который не требует подключения к интернету для работы. По нашей оценке, у специалистов уровня middle+ эффективность повысилась на 30% без потери качества. Также это позволило сократить размер рабочей команды и оптимизировать задачи специалистов на местах. Думаю, не секрет, что любому специалисту намного интереснее решать нетривиальные задачи, вместо понятных, но трудоемких, тем самым и мотивация ребят тоже повышается, что, по моему мнению, также позитивно влияет на сроки и качество исполнения проекта".
Руководитель отдела разработки Content AI Александр Субботин среди задач, с которыми успешно справляется ИИ, назвал анализ результатов тестов и генерирование скриптов: "Мы стараемся применять ИИ везде, где это возможно. Например, используем ML/ИИ для генерации тестовых данных, для анализа результата тестов, в частности тестов качества. Также применяем ИИ для написания кода, скриптов, тестов, тестовых сценариев. Для этого мы дообучаем на наших данных локальные LLM-модели".
Руководитель направления по работе с финансовым сектором группы "Рексофт" Алексей Лебедев считает, что ИИ-инструменты можно эффективно использовать на каждом этапе разработки ПО при условии, что специалисты обучены работе с этой технологией: "В перспективе ИИ сможет выполнять почти все задачи по разработке ПО. До этих пор ИИ будет все больше усиливать команды и специалистов всех профилей: помогать аналитикам разрабатывать требования, архитекторам - создавать и улучшать архитектурные решения, разработчикам - писать и отлаживать код, тестировщикам - составлять стратегию и сценарии тестирования, создавать автоматизированные тесты, эмулировать пользователей системы, специалистам ИБ - управлять рисками и выявлять уязвимости, Dev/Sec/Data/ML/LLM/Ops-специалистам - разворачивать и эксплуатировать системы. Со временем команды разработки будут становиться меньше, так как людям проще будет совмещать несколько ролей при поддержке ИИ. В итоге даже один человек сможет создавать и поддерживать решения, управляя командой высокоэффективных ИИ-агентов. Если сегодня ИИ-агент действует на уровне начинающего практика, то через год он сможет конкурировать с опытными специалистами. В 2024 г., по прогнозам ассоциации "РУССОФТ", измеряемый эффект от использования генеративного ИИ в разработке ПО будут иметь около 20% российских ИТ-компаний, выигрыш составит до 20%".
По оценке директора по продуктам Axiom JDK Сергея Лунегова, ИИ для тестирования применяют 50% Java-разработчиков. "ИИ хорошо справляется в ситуации, когда необходимо перебрать миллиард различных вариантов работы кода или библиотеки, чтобы обнаружить ошибку или уязвимость. ИИ идеален, например, для фаззинга, одного из самых эффективных методов динамического тестирования, который входит в требования сертификации ФСТЭК и активно используется нашей командой в рамках промышленного процесса разработки безопасного ПО, - такие сценарии применения ИИ, по оценке эксперта, преобладают. - ИИ очень удобен и хорошо подходит для решения типовых задач, тем не менее нужен квалифицированный инженер, чтобы сформировать корректный запрос и оценить качество решения от ИИ. Типовыми задачами могут быть: запрос на создание кода, реализующего определенный алгоритм, запрос образца конфигурации сервера, базы данных и т. п. ИИ хорошо справится с задачами, которые часто встречаются в работе многих людей и которые много обсуждают. У ИИ бесконечное количество вариантов использования. И это может значительно сократить трудозатраты, но внедрять ИИ нужно под бдительным надзором".
Генеральный директор Setere Group Олег Ивченков выразил сомнение в процентах сторонников использования ИИ: "Наш опыт показывает, что в разработке и тестировании самое надежное применение ИИ - в части составления поздравлений сотрудников с днем рождения. В остальном перепроверка займет больше времени, чем изначальная работа людей над задачей. Мы в продуктах за надежность переживаем сильно, и это пока никак не подводило".
Коммерческий директор компании "Девелоника" (ГК Softline) Роман Смирнов считает, что связка "нейросеть + специалист-человек" уже дает прирост в производительности, но до повсеместного использования еще далеко, поэтому проводить разработку софта только усилиями нейросети - сложно и скорее даже невозможно: "Существуют неточности и некорректные значения, которые ИИ может выдать при генерации кода, есть ограничения, связанные с высокими требованиями безопасности и конфиденциальности на проектах, и много других сложных вопросов. GPT, какой бы она ни была, не напишет вам готовую ERP-систему, однако поможет сильно сократить время на разработку, если правильно применять инструмент обученными сотрудниками. Опираясь не только на представленные данные, но и на наше исследование, проведенное в 2024 г., мы можем говорить о сокращении трудозатрат на 20-50%. Результат во многом зависит от направления и специфики работ, а также от выбора применяемого инструмента".
Дмитрий Свалов назвал главными препятствиями для внедрения сложности, связанные с интеграцией ИИ с текущим инструментарием, невозможность передачи ИИ всего контекста задачи и точечный характер его применения на данный момент - в итоге стабильное сокращение трудозатрат возможно на 5-7%, хотя в ряде случаев сокращение может достигать 30-50%, н такие результаты пока не гарантированы. Наилучших результатов, по его мнению, удается достичь при решении задач в тестировании ПО. Но в целом, как подчеркнул Дмитрий Свалов, потенциал применения ИИ огромен, подтверждая известную истину, что новые технологии переоцениваются в краткосрочной перспективе и недооцениваются в долгосрочной.
Алексей Лебедев оценивает долю задач, которую доверяют ИИ, на уровне 5-10%: "Здесь важно учитывать интерпретацию термина "используют". Если речь о специалистах DevOps, которые используют ИИ-инструменты, например phind.com, в качестве консультанта по технологиям и помощника при отладке, то оценка исследования совпадает с тем, что мы наблюдаем на рынке. Около 40% компаний, действительно, проводят эксперименты с внедрением ИИ в разные этапы жизненного цикла ПО. Но при этом ИИ пока не является базовой технологией для разработчиков, и, если под "использованием" понимать ИИ-инструменты, встроенные в автоматизированные пайплайны, на данный момент процент внедрений меньше".
Сергей Лунегов предупреждает, что ИИ плохо справится с задачами, требующими много креатива, а также нетиповыми, о которых мало написано в интернете.
Тимлид команды DevLab "КОМПАС-3D" "АСКОН" Валентина Дмитриева назвала главным препятствием для внедрения ИИ недоверие: "Существует недоверие к сторонним API для языковых моделей из-за проблем безопасности. Это одна из причин, по которой многие компании еще не внедрили ИИ в DevOps-процессы. Так, внедрение LLM осуществляют либо open-source-проекты, либо крупные компании, которые могут развернуть такие модели на on-prem-инфраструктуре для целей, например, ревью кода".
Эффект, по оценке представителя "АСКОН", может быть значительным, хотя объективно измерить его сложно: "На конференциях представители бизнеса, внедряющего ИИ, сообщают о приросте производительности разработки на 5-30%. Также отмечается, что с внедрением больших языковых моделей программисты пишут больше юнит-тестов, что, хоть и не влияет напрямую на производительность, улучшает качество программного продукта".
По наблюдениям директора департамента перспективных проектов ИИ холдинга "Т1" Ильи Кулакова, во многих компаниях использование ИИ находится на стадии экспериментов, и утверждать, что процессы ИИ покрывают 44% задач DevOps, было бы неверно, хотя применяют ИИ для задач DevOps много компаний. По его оценке, главный эффект от внедрения ИИ - сокращение количества ошибок: "Успешный результат интеграции ИИ в DevOps требует квалифицированных специалистов в команде, инфраструктуры и готовности адаптироваться к новым технологиям. Для применения ИИ необходимо выполнение двух условий: первое - задача должна подвергаться "роботизации", быть формализованной, рутинной и часто повторяющейся, и второе - необходимо иметь набор "чистых" данных для обучения модели. Если последнее условие выполняется, то на текущем этапе развития ее можно решать средствами ИИ. Стоит также иметь в виду, что ИИ в большей степени сокращает ошибки, а не трудозатраты, особенно ошибки, допускаемые молодыми специалистами на этапе внедрения и при последующем использовании. Также ИИ упрощает работу с документами. Разрабатываемые процессы регламентируются большим количеством нормативных требований, которые необходимо учитывать при разработке документации. У молодых специалистов не хватает знаний и опыта, и ИИ может помочь в выявлении недоработок и ошибок".