Искусственный интеллект в пайплайне: роль генеративных инструментов в аналитике, разработке и тестировании

В разработке ИТ-продуктов ИИ-инструменты применяются сегодня повсеместно. Сейчас их использование подразумевается практически по умолчанию — и даже если нет прямой директивы к ним прибегать, это все равно происходит на всех этапах разработки, поскольку данная технология значительно ее ускоряют. Благодаря ИИ программисты быстрее пишут код, тестировщики — эффективнее обнаруживают ошибки, а аналитикам он за секунды подсказывает решение сложной задачи, которая ранее отняла бы часы. О роли генеративных технологий на каждом этапе пайплайна (основной последовательности разработки ПО), рассказывает директор департамента разработки и внедрения систем искусственного интеллекта BIA Technologies Михаил Красильников.

Искусственный интеллект в пайплайне: роль генеративных инструментов в аналитике, разработке и тестировании

Роль аналитика в пайплайне

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

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

После тестирования также может подключаться аналитик — допустим, для так называемого сплит-тестирования. Оно заключается в том, что две версии продукта сопоставляются, чтобы выяснить, какая из них выглядит привлекательнее для аудитории. К примеру, обновляется мобильное приложение: перед запуском новый интерфейс становится доступен не всем пользователям сразу, а только небольшой части. На этой выборке оценивается реакция: повышается ли активность пользователей, как они реагируют на новый функционал и т.п. Если реакция негативная, то приложение может отправиться на дополнительную доработку.

Нейросеть как инструмент аналитика

Говоря об использовании ИИ аналитика, мы в первую очередь будем иметь в виду аналитика, работающего с данными. Для получения информации из базы данных и ее визуального представления аналитик составляет транзакт-SQL-запросы: тем самым он может получить сведения в удобном формате, например, как таблицу Excel. Далее следует анализ или настройка отчета. Например, аналитик может сделать так, чтобы он автоматически формировался по запросу бизнес-пользователя.

В написании упомянутых SQL-запросов могут помочь генеративные инструменты: сегодня есть модели, которые эффективно решают эту задачу. Требуется лишь составить как можно более точный запрос: какие данные и за какой период нужно выдать, в каком виде представить результат и т.п. Кроме того, подобные модели могут прописывать скрипты, отвечающие за визуализацию. Они очень экономят время аналитика, которое можно направить на решение других задач. Благодаря ИИ запросы могут составлять даже пользователи, которые не знакомы с языком программирования, на котором они пишутся.

Если же говорить о том, как ИИ помогают аналитикам, которые составляют ТЗ на доработку программного кода, то здесь речь пойдет о возможности повысить скорость и точность решения этой задачи. Правда, для этого обычно требуется дообучить модель на основе данных, накопленных в самой компании. Это могут быть ТЗ по предыдущим задачам, опыт пользователей и другие текстовые описания.

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

Генеративные модели как инструмент разработчика

Какой код считается хорошим? Во-первых, он должен быть читаемым, хорошо масштабироваться, допускать возможность изменений без особых усилий. Сегодня даже такой код умеет писать нейросеть — по сигнатуре функции, написанной разработчиком, он способен продолжить или дополнить код. Даже в программные редакторы уже внедряются подобные инструменты на основе ИИ. Они умеют обнаруживать ошибки, проверять значения переменных, запускать код удаленно, обеспечивать доступ к системе контроля версий, тем самым оптимизируя процесс создания ПО.

Как пример ИИ-помощника в написании кода можно упомянуть GitHub Copilot. Он умеет дописывать код с помощью автодополнения, подсказывает, на что обратить внимание во время проверки и т.п. Он часто предлагает удачные решения, которые сам разработчик мог бы искать достаточно долго путем серфинга интернет-ресурсов, общения с коллегами или собственными опытами.

ИИ как инструмент тестировщика

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

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

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

Таковы основные сценарии использования нейросетевых инструментов в пайплайне на данный момент, но, по всей вероятности, спектр возможностей будет только расширяться. Насколько сильно и стоит ли ждать новых революционных скачков, пока неизвестно, но уже не вызывает сомнений, что технология прочно вошла в арсенал разработки и стала ее неотъемлемой составляющей.

реклама
разместить
Начать дискуссию