ИИ — это не серебряная пуля, которая решит все ваши проблемы DevOps, хотя он покрывает элементы жизненного цикла программного обеспечения серебром, поскольку все больше элементов ИИ/МО внедряются в конвейеры крупных компаний по всему миру. Все это приводит к интересному разговору об AI/ML в DevOps.

В декабре 2018 года на ведущей европейской конференции DevOps в Хельсинки собралась группа экспертов по искусственному интеллекту. Мы взяли информацию от четырех из них, чтобы изучить использование AI/ML в DevOps.

«Что такое человеческое обучение в контексте тестирования программного обеспечения? Привлечение людей к тестированию без явного указания делать это. Это еще более сложная проблема, ребята, чем внедрение машинного обучения в наши программы». Инго Филипп, Tricentis, DEVOPS 2018

По мере развития индустрии ИИ перед DevOps будут возникать новые дилеммы.

SingularityNET — это децентрализованная сеть ИИ, которая закладывает основу для вычислений на основе агентов. Его основатель, доктор Бен Герцель, утверждает, что агентные вычисления делают тестирование интересным, если не сказать больше. Однажды ИИ может получать информацию от других агентов ИИ, и вы не знаете, как эти взаимодействия будут воспроизводиться во время создания кода. Таким образом, распределенный ИИ создает очень гибкую среду. Если большие участки кода могут динамически изменяться, это значительно усложняет, например, автоматизацию тестовых случаев.

Методологии и технологии DevOps должны использоваться группами специалистов по обработке и анализу данных, создающими ИИ в будущем, но как именно должен выполняться DevOps, неизвестно. Это смелый новый мир DevOps. Как сказал Герцель на DEVOPS 2018: «Я больше похож на того парня, который создает новые виды проблем для людей DevOps!»

DevOps для ИИ

Диего Ло Джудис из Forrester отмечает, что ИИ будет использоваться для тестирования систем ИИ. Сам ИИ должен быть протестирован и создан с использованием методологий с улучшенным ИИ, которые вышли на игровое поле DevOps. Подробнее о них ниже.

Более 37% компаний используют AI/ML для повышения качества

Согласно исследованию Forrester еще в 2016 году, чуть более трети компаний используют ИИ в тестировании ПО. ИИ можно использовать для оптимизации процесса тестирования, улучшения среднего времени устранения дефектов, оптимизации исправления дефектов и использования ИИ для тестирования систем ИИ.

Инго Филипп из Tricentis подробно рассказал о том, как AI/ML может снять с людей работу, когда дело доходит до тестирования: оптимизация стратегии тестирования, автоматизированный дизайн тестирования, автоматическое исследовательское тестирование, автоматическая диагностика дефектов. и анализ пользовательского опыта». Что касается лучших вариантов использования ИИ в тестировании программного обеспечения, согласно Tricentis, они описаны ниже.

Лучшее использование ИИ в тестировании программного обеспечения, по мнению Tricentis

  • Предотвращение избыточности: искусственный интеллект устраняет и предотвращает избыточность в портфелях тестовых наборов для достижения тех же результатов с точки зрения покрытия бизнес-рисков, но с меньшими усилиями.
  • Оптимизация покрытия рисков. ИИ сводит к минимуму количество необходимых тестовых случаев, выделяя риск каждого тестового случая, чтобы вы могли максимизировать покрытие рисков.
  • Ложное срабатывание: искусственный интеллект сокращает усилия, необходимые для анализа результатов, указывая, действительно ли неудачный тестовый набор обнаружил дефект в приложении или просто сломался из-за технических проблем с самим тестовым набором.
  • Отказоустойчивая автоматизация: имеется в виду RPA Tricentis, в котором используется автоматизация на основе моделей. Надежные боты, которые могут адаптироваться к изменениям за считанные минуты, а не дни. Существует пошаговое руководство по этому использованию ML в презентации Инго.
  • Проверка портфеля: ИИ отслеживает ненадежные тестовые наборы, неиспользованные тестовые наборы, тестовые наборы, не связанные с требованиями, непроверенные требования и т. д., чтобы выявить слабые места в тестовых портфелях.

Но не забывайте, что AI/ML требует много человеческих усилий: военные истории

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

Использовать ИИ непросто

Когда дело доходит до начала процесса автоматизации, Джере Ниеминен из Elisa подчеркивает, что если у вас нет четкого контроля над данными, которые вы получаете для анализа с точки зрения контроля качества, нет смысла продвигать проект вперед, пока вы этого не сделаете. Более того, автоматизация может стать огромным бременем для тестировщиков. Вам все еще нужно написать структуру, что является сложной задачей, особенно для нетехнических тестировщиков: точка зрения, сделанная Диего Ло Джудиче из Forrester.

Даже когда ваш AI / ML работает, понимание событий, на которые вы смотрите, может быть трудным. Ниеминен рекомендует создать процесс для понимания аномалий и улучшения набора данных, чтобы вы также получили представление об основной причине.

Необходимо человеческое суждение и точка зрения

Людям также необходимо давать здравые суждения и перспективы, потому что машинное обучение не может дать общую картину. В случае Элизы машинное обучение отслеживало до 800 миллионов строк журнала CDN. Однако это не дало целостного представления о том, как работала служба потоковой передачи Элизы, из-за предвзятости выживших. Некоторые сеансы могли не попасть в CDN: случаи, о которых ML ничего не знает, примеры плохого пользовательского опыта, которые провалились.

Вот пример того, как человеческая ошибка может проникнуть в автоматизированную систему. Джере Ниеминен рассказывает, как его команда пропустила аномалию в период Рождества, что привело к тому, что ML воспринял ее как новую норму и не уведомил их о будущих случаях. Это привело к тому, что им потребовалось больше времени, чтобы заметить, что у одного из их хранилищ возникли проблемы с производительностью.

Аугментация: святой Грааль DevOps с искусственным интеллектом

Мы установили, что люди по-прежнему необходимы для правильной работы ИИ и машинного обучения. В обозримом будущем AI/ML в DevOps будет состоять из дополнений: люди улучшат свою производительность благодаря AI/ML.

Это таит в себе огромный потенциал. Согласно глобальному онлайн-опросу программного обеспечения Agile, проведенному Forrester за третий квартал 2017 г., в 2017 г. 46% тестов по-прежнему выполнялись вручную, что ограничивает возможность частого развертывания кода.

Настройте AI/ML на работу, чтобы сэкономить ваше время, делая то, что у него получается лучше всего. Диего приводит в пример компанию, производящую серверы. Каждый раз, когда на рынок выводится новый сервер, у них есть триллион конфигураций для тестирования, поразительное количество, для завершения которого потребуется 17 лет. Что компания сделала, так это построила модель, чтобы рекомендовать 500 критически важных для бизнеса конфигураций, которые они могли протестировать, сохраняя при этом адекватный охват. Теперь тестирование заняло всего несколько дней.

Лучший лайфхак DevOps/AI — сначала разобраться со старой доброй человеческой глупостью.

Инго Филипп из Tricentis сказал об этом лучше всех: «Инструментом тестирования номер один является не компьютер, а человеческий мозг. Так что мой вам совет: не ждите, что искусственный интеллект решит сейчас все ваши проблемы при тестировании, сначала сделайте что-нибудь со своей природной тупостью!»

Вы можете бесплатно посмотреть все четыре доклада о DevOps и искусственном интеллекте, на которых основана эта статья.

Эта статья изначально была опубликована в Блоге Eficode.