Представьте, что тестирование программного обеспечения можно упростить? Проводить его без многочисленных обсуждений, вопросов, баг-репортов и метрик?
Нам обещали, что искусственный интеллект рано или поздно послужит решением всех проблем, связанных с тестированием. Особенно обещали это те, кто сами никогда не тестировали и кто полагает, что тестировщики почти только и занимаются тем, что прокликивают все подряд с целью нахождения несоответствий требованиям.
Хотя я и сам заявлял, что ИИ наступает и в этом направлении и (в конце концов) навсегда изменит сферу тестирования, мы еще к этому не пришли — и даже пока не приблизились. Но это не значит, что мы не можем использовать инструменты ИИ в качестве вспомогательных инструментов.
Важным моментом является поиск подходящих инструментов, которые помогают получить точную информацию о тестируемых системах. Четкое и прозрачное донесение этого до лиц, принимающих решения, имеет основополагающее значение для нашей профессиональной зрелости.
Настало время использовать искусственный интеллект в тестировании. В этой статье представляем 13 ресурсов для изучения и эффективного использования.
Что такое искусственный интеллект?
Прежде чем использовать какую-либо технологию искусственного интеллекта в тестировании (или же тестировать приложения со встроенным ИИ), полезно изучить хотя бы основы. Перечислим несколько доступных ресурсов для изучения темы.
Что такое искусственный интеллект — для тех, у кого нет времени разбираться
В этом пятиминутном видеоролике независимый консультант Радж Рамеш (Raj Ramesh) дает одно из лучших описаний искусственного интеллекта как дисциплины компьютерных наук, которые я когда-либо слышал. Свой рассказ он иллюстрирует с помощью простых визуализаций, так что суть запоминается быстро и легко. Рамеш кратко и по сути описывает понятия машинного обучения, нейронных сетей, обработки естественного языка (NLP) и многое другое.
Чтобы понимать на начальном уровне эту область и дисциплины в ней, не обязательно быть математиком или глубоко разбираться в компьютерных науках.
Объяснение машинного обучения для самых маленьких
Если вы хотите получить четкое представление о машинном обучении, вам поможет это видео Энджи Джонс (Angie Jones), Senior Developer Advocate в Applitools. Джонс не только рассказывает, что такое машинное обучение; она также демонстрирует, насколько оно может быть глупо.
Если вы задействуете искусственный интеллект в тестировании, обязательно посмотрите этот ролик. Тот факт, что вы используете ИИ, вовсе не означает, что он делает именно то, что вы думаете, или даже то, что хотите.
Постепенное введение в нейронные сети
Data scientist Дэвид Фумо (David Fumo) предлагает подробный обзор нейронных сетей и руководство по созданию первой нейронной сети на Python. Соберитесь — материал для изучения в интенсивном режиме.
Использование искусственного интеллекта для тестирования
После ознакомления с основами можно перейти к полезным ресурсам для применения ИИ специально для тестирования.
Как искусственный интеллект меняет тестирование
Технический карьерный коуч и бывший Developer Advocate Радж Субраманиан (Raj Subramanian) рассказал об ИИ и его влиянии на тестирование на конференции Selenium в Чикаго в 2018 году. В своем выступлении Радж делится своей точкой зрения на то, как искусственный интеллект влияет на автоматизацию тестирования, особенно на использование Selenium, и где, по мнению Раджа, ИИ будет главенствовать в будущем.
Машинное обучение и его влияние на тестировщиков
В 2016 году я участвовал в конференции, на которой пять руководителей компаний упомянули, что ИИ возьмет на себя тестирование. Я хотел понять, правы ли они, поэтому провел небольшое исследование и составил это выступление, которым я впоследствии поделился на нескольких конференциях в США и Канаде в 2017 году и позже.
Как можно доверять ИИ-ботам?
Краеугольным камнем тестирования является доверие. Чтобы тестирование имело ценность, мы должны доверять результатам тестирования. Как нам доверять искусственному интеллекту?
Тарик Кинг (Tariq King), главный научный сотрудник в test.ai, ответил на этот вопрос на конференции Automation Guild в 2019 году в своем выступлении «Test Machina».
Знакомство с искусственным интеллектом
Как уже упоминалось, чтобы эффективно использовать ИИ в тестировании, его нужно изучить. Перечислим несколько приложений и инструментов. Хотя они и не имеют ничего общего с тестированием, они могут помочь понять, что делает ИИ.
Нарисуй за 20 секунд
В выступлении, описанном выше, Радж использует этот забавный инструмент от Google. В нем пользователю предлагается нарисовать определенный заданный объект за 20 секунд. В это же время искусственный интеллект, обученный на многочисленных рисунках других пользователей, пытается угадать, какой именно объект вы нарисовали.
Игра — это отличный способ с чем-то познакомиться, и данный инструмент отлично подходит для этой цели.
Teachable Machine
Teachable Machine — еще один эксперимент от компании Google. Сайт позволяет попробовать обучающие модели для машинного обучения: классифицировать образцы видео, фотографий или звуков для обучения алгоритмов машинного обучения. И опробовать, как это работает.
Конечно, я не мог пройти мимо! Сайт позволяет использовать собственную видеокамеру для записи изображений. Так, я создал изображения с несобранным кубиком Рубика, частично собранным кубиком и собранным кубиком, все под разными углами. Затем я разделил изображения на две группы — решенные и нерешенные.
Он проделал отличную работу по классификации новых изображений кубика в новых конфигурациях. Конечно, как тестировщик, я не мог не попытаться запутать его, что я и сделал.
Teachable Machine отлично подходит для быстрой настройки машинного обучения и проведения с ним экспериментов. Изучите, как искусственный интеллект может работать на вас или против вас. Если вы сейчас проводите тестирование с поддержкой ИИ или рассматриваете эту идею, это ресурс — хороший способ познакомиться с плюсами и минусами машинного обучения.
Машинное обучение — самая безграничная область для исследовательского тестирования, которую я только встречал.
Знай свои инструменты.
WEKA
WEKA — это среда Waikato для анализа знаний, созданная и поддерживаемая Новозеландским университетом Waikato. Ее можно использовать для изучения данных с помощью машинного обучения. Можно использовать разные алгоритмы машинного обучения, настраивать их и обучать на датасетах.
WEKA был первым инструментом, который помог мне начать понимать машинное обучение. Не судите его по пользовательскому интерфейсу — там есть, куда расти — его мощь намного превышает внешний вид.
Вот лучшее описание с сайта WEKA:
Рабочая среда WEKA — это коллекция алгоритмов машинного обучения и инструментов предварительной обработки данных, включающая практически все алгоритмы, описанные в книге. Она разработана таким образом, чтобы вы могли быстро и гибко опробовать существующие методы на новых наборах данных. Она обеспечивает обширную поддержку всего процесса интеллектуального анализа экспериментальных данных, включая подготовку входных данных, статистическую оценку схем обучения и визуализацию входных данных и результатов обучения.
Митапы (точнее, митап)
Я был поражен, обнаружив только один митап по искусственному интеллекту в тестировании. Может быть, настало время провести подобный в вашем городе?
AI в тестировании и Testing AI Meetup — Санта-Клара, Калифорния
Митапы — отличный способ учиться, а поскольку из-за пандемии большинство встреч теперь виртуальные, к ним можно присоединиться из любого места.
Единственный митап по искусственному интеллекту, которую я нашел, проводился в Санта-Кларе, Калифорния. В прошлом месяце они говорили о «Создании развертываемого классификатора багов Jira с использованием Tensorflow». Жду продолжения с нетерпением.
Инструменты ИИ
Большинство инструментов искусственного интеллекта являются коммерческими по нескольким причинам. Количество усилий, вложенных командами в создание инструментов ИИ для тестирования, огромно, а отдача для клиентов может во много раз перевесить цену. Кевин Сурас (Kevin Surace), технический директор Appvance, объяснил, что инструмент искусственного интеллекта его компании состоит примерно из 4 миллионов строк кода, и на его разработку ушло около 250 000 инженерных часов.
Я считаю, что в ближайшие несколько лет на рынке появится больше инструментов с открытым исходным кодом для помощи в тестировании, основанных на искусственном интеллекте. А пока перечислим несколько инструментов, которые есть в нашем распоряжении уже сейчас.
Классификаторы Test.AI
Классификаторы Test.ai используют машинное обучение для сопоставления элементов на веб-странице; доступны на нескольких языках.
TensorFlow
Хотите использовать обученное API для реализации собственной идеи тестирования? TensorFlow — один из популярных API для быстрого внедрения моделей машинного обучения. TensorFlow позволяет как экспертам, так и новичкам легко создавать модели машинного обучения.
3. AGENT
AGENT — это аббревиатура от «AI Generation and Exploration in Test». Этот генератор ботов для тестирования сайтов можно найти в репозиториях Тарика Кинга на GitHub (Tariq King).
AGENT, используя обучающие данные AGENT-X, самостоятельно учится исследовать веб-сайт и оценивать его действия, поля и формы. AGENT развертывает один или несколько агентов исследования и тестирования для изучения веб-приложения и применения потоков тестирования по мере распознавания тестируемых шаблонов.
Поделитесь в комментариях, какие инструменты искусственного интеллекта для тестирования используете вы.
Всех желающих приглашаем на открытое занятие «Install Selenoid cluster». На открытом уроке рассмотрим разворачивание Selenoid кластера с использованием Docker и разберем, как организовать балансировку нагрузки между Selenoid инстансами. Регистрация по ссылке.