Что ИИ улучшит в функциональном тестировании приложений
Что ИИ улучшит в функциональном тестировании приложений

Андрей Воротягин: «Micro Focus — едва ли не единственный разработчик проприетарного инструментария для тестировщиков, хорошо "уживающийся" с сообществом Open Source».


16:10 29.04.2021  (обновлено: 21:01 02.05.2021)   |   2223 | 

Рубрика Партнерский материал



Как искусственный интеллект изменяет парадигму функционального тестирования и какие преимущества дает командам, отвечающим за качество ПО.

Использование искусственного интеллекта в функциональном тестировании приложений позволит существенно сократить и время, и трудозатраты, а заодно привлечь к подготовке тестов широкий круг бизнес-пользователей. Кроме того, уверен Андрей Воротягин, ведущий архитектор решений Micro Focus в России и СНГ, применение ИИ-инструментария позволит снизить стоимость вхождения в технологии автоматизированного функционального тестирования ПО.

Что стоит за применением искусственного интеллекта в функциональном тестировании?

В первую очередь это требование рынка. Участникам процессов DevOps сегодня необходимо чаще вносить изменения в код, выпускать релизы и, как следствие, чаще тестировать ПО в реальных средах. Кроме того, командам, отвечающим за качество ПО, приходится чаще вносить изменения в скрипты для тестирования.

Прежний инструментарий, в котором не было механизмов ИИ, базируется на физических свойствах объектов. Например, к числу свойств объектов графического пользовательского интерфейса (GUI) относятся идентификатор (название), стиль, тип (класс) и пр. Инструментарий определяет уникальный объект по перечню его свойств. И если, скажем, идентификатор меняется, прежние автоматизированные скрипты перестают работать. Такой подход реализован и в более ранних версиях продуктов Micro Focus, и в популярных фреймворках с открытым кодом — например, в Selenium и Selenide. Поэтому инженерам, отвечающим за качество ПО, приходится больше времени тратить на изменение регрессионной модели — постоянно что-то в ней «подкручивать».

Если скрипт «упал», приходится разбираться, в чем причина: то ли скрипт плохой, то ли пакет регрессионного анализа нашел какой-то дефект. И чем больше «упавших» скриптов, тем больше времени уходит на выяснение причин произошедшего.

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

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

Какие преимущества дает встраивание ИИ в инструментарий тестировщиков?

Первое — это ускорение создания скриптов. Есть инструменты, позволяющие использовать один из языков для написания скриптов (например, именно так сделано в Micro Focus UFT). Однако существуют инструменты, которые не предполагают ручного программирования и основаны на использовании визуальных средств, — такие утилиты могут применять бизнес-пользователи. Второе ключевое преимущество — легкость поддержки: дилемма причин «падения» скрипта по-прежнему существует, но дефектов становится существенно меньше. Эти два преимущества наиболее сильно влияют на трудозатраты и быстроту воспроизведения дефектов.

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

В каких операциях тестирования уместно использовать ИИ? Что именно он позволяет автоматизировать?

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

Какова в самых общих чертах архитектура инструментария для функционального тестирования со встроенным ИИ?

Как правило, механизмы ИИ представляют собой надстройку над проверенным временем ядром — так, по крайней мере, сделано в UFT. Подобная архитектура позволяет наращивать функционал (дескриптивные возможности распознавания, OCR и пр.) по мере развития технологий. Кроме того, это помогает сохранить инвестиции тем, кто уже приобрел продукт и на его основе сформировал собственную «экосистему» наработок — тестов, скриптов и пр. Мы считаем данную возможность одним из конкурентных преимуществ нашего инструментария. В разработках стартапов, которые изначально строились на механизмах ИИ, используется, по сути, лишь технология распознавания образов.

Можно ли использовать ИИ в задачах роботизации бизнес-процессов (RPA)?

Роботизация бизнес-процессов опирается на технологии, которые встраивались в инструментарий еще лет 20 назад, задолго до появления RPA. На текущий момент RPA-инструментарий использует все методики продуктов, предназначенных для тестирования GUI и API, в том числе технологии с ИИ. Продукт Micro Focus RPA в этом смысле не является исключением и поддерживает все фреймворки для работы с графическими и программными интерфейсами, в том числе на основе ИИ. Мы добавили полную поддержку моделей на основе нейронных сетей и в этот наш продукт. Уже сейчас предоставляем возможность кастомизации роботизированных процессов на основе Python SDK. Модели на основе нейронных сетей также предварительно обучены на наборах данных наших заказчиков. Поэтому в этом плане ИИ, встроенный в RPA, дает дополнительное преимущество и этой технологии.

Многие современные системы ИИ требуют предварительного обучения на массивах данных. Как этот вопрос решается в реалиях тестировщиков? Нужно ли им «натаскивать» алгоритмы ИИ на собственных данных?

В соответствии с подходом, принятым в Micro Focus, наши заказчики получают готовую модель, обученную на реальных данных команд тестировщиков. Пока что мы не предоставляем возможность самостоятельно наполнять и обучать модели на основе нейронных сетей, но в перспективе планируем ее предоставить. Кроме того, мы обеспечиваем заказчиков инструментарием для обратной связи — с его помощью они могут передать нам данные, на которых модель ошибается или не работает. Такие данные мы используем для дальнейшего обучения и отладки модели. Например, если какой-то графический интерфейс не распознался, заказчик может передать нам его изображение (закрасив, если нужно, все конфиденциальное) — и мы обучим нашу модель распознавать такой элемент. В настоящее время механизм ИИ в UFT поддерживает тестирование интерфейсов мобильных и веб-приложений, обеспечивая распознавание по пикселям и выявление текстовых фрагментов.

Очень часто пакет инструментов тестировщиков представляет собой причудливый набор из свободно распространяемых и проприетарных продуктов. Каким образом ИИ встраивается в такой замысловатый и разнородный ландшафт?

Micro Focus — едва ли не единственный разработчик проприетарного инструментария для тестировщиков, хорошо «уживающийся» с сообществом Open Source. Наш подход строится на том, чтобы предоставить тестировщикам дополнительный инструментарий, который поможет им решить насущные проблемы. Например, они могут запускать Selenium-тесты непосредственно из UFT Developer и при этом использовать все возможности распознавания, существующие в UFT.

Наша компания — сторонник повторного использования предпочитаемых тестировщиками технологий. В мире создано великое множество самых разных пользовательских интерфейсов и инструментов для их поддержки. Мы предлагаем тестировщикам фреймворк, который позволит им пользоваться и проприетарными продуктами, и решениями с открытым кодом, как реализовано в решении ALM Octane.

На какую пользу от применения ИИ в процессах функционального тестирования можно рассчитывать? В чем она будет состоять?

Во-первых, можно сократить силы и время на создание и отладку скриптов, а также повысить стабильность их работы. Во-вторых, инструментарий визуального создания скриптов и механизмы распознавания естественного языка (NLP) позволяют привлечь к созданию тестов бизнес-пользователей: теперь они могут самостоятельно создавать интересующие их тесты и затем передавать их тестировщикам. Это даст возможность снизить нагрузку на них в ходе приемо-сдаточных испытаний, а также во время продуктивной или предпродуктивной эксплуатации ПО.

За счет чего будет окупаться ИИ-инструментарий для тестировщиков?

Сейчас многие заказчики используют инструментарий с открытым кодом (например, Selenium), в котором имеется встроенный механизм распознавания объектов на основе свойств. Для его применения необходимы знания объектно-ориентированных языков, таких как Java — одного из самых популярных языков для написания GUI-тестов. Чтобы начать применять технологию, нужен хотя бы один инженер-тестировщик, готовый писать код на Java для автоматизированных тест-кейсов и умеющий работать с фреймворком на основе Selenium.

Инструментарий со встроенным ИИ дает возможность снизить планку начальных требований к специалистам и, соответственно, уменьшить затраты на оплату их труда. В UFT вместо Java поддерживается VBScript, скоро появится и поддержка Python — наиболее популярного языка, применяемого как в бизнес-среде, так и в инженерной практике. Еще один фактор окупаемости ИИ-инструментария — экономия времени (и, соответственно, денег) на создание скриптов: нам не нужно тратить на их подготовку столько сил, как раньше. Третий фактор — снижение трудозатрат на дальнейшую поддержку скриптов: переделку, повторную отладку и пр. Таким образом, если мы возьмем две регрессионные модели: одну на основе ИИ и вторую без этого механизма, — то модель на базе ИИ окажется более выигрышной.

Подробнее о возможностях функционального тестирования интерфейсов на основе нейронных сетей можно узнать из записи вебинара.


Теги: Самое интересное Micro Focus Партнерский материал