ИИ не спит и не ест: как нейронка помогает тестировщикам

Как искусственный интеллект помогает контролировать качество ПО

ИИ не спит и не ест: как нейронка помогает тестировщикам

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

Но всё предугадать невозможно: программа всё равно может сломаться, потому что тестировщик — обычный человек. 

Но что, если тестировать будет искусственный интеллект, которому не хочется спать, есть и отдыхать? Сегодня поговорим о том, как ИИ помогает тестировать программы.

Что хорошо и что не очень в профессии тестировщика

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

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

Многим может показаться, что порой тестирование — однообразное занятие, когда нужно придумать и проверить много похожих сценариев поведения пользователей и взаимодействия с другими программами. Такой сценарий называется test case или теcт-кейс. Два почти идеально похожих тестовых кейса могут привести к разным результатам, поэтому проверять надо всё и тщательно.

На тестировщиков ложится серьёзная ответственность, которая может быть тяжёлой психологически. Это потому, что тестировщики находятся в конце пути развития программы перед выходом в релиз. Во многом от них зависит успешная работа сервиса. С одной стороны, это может быть напряжённо, с другой — наоборот, здорово.

Ещё тестировщику нужны внимательность и умение нестандартно мыслить. Эти качества можно развить, но в начале без них сложно. Это зависит от человека: кому-то интересно искать баги и ошибки, а кому-то хочется заниматься созданием собственных программ.

Поэтому многим тестировщикам уже можно брать себе в помощники инструменты AI.

Что такое AI-тестирование

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

ИИ-инструменты для разных этапов тестирования сегодня используют 80% компаний:

Что такое AI-тестирование
Источник: rainforestqa.com

В идеальном мире эти системы учатся на данных, замечают аномалии, предсказывают риски и могут самостоятельно адаптировать тесты под изменения в коде. В реальности ИИ-инструменты могут сильно помочь, но использовать их нужно осмотрительно. 

Как ИИ понимает и улучшает тестирование

Сначала разработчики подключают ИИ к своему сервису.

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

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

Получается, что люди умеют учитывать бизнес-контекст и простые результаты опытов, а машина мыслит строго логически — по законам, которые сама установила.

Ключевые отличия AI-тестирования от традиционных методов

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

Преимущества внедрения ИИ в процесс тестирования

Есть несколько плюсов, которые даёт правильно настроенный механизм тестирования с участием искусственного интеллекта.

1. Автоматизирует там, где не справляется человек

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

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

2. Повышает точность и снижает «человеческий фактор»

С одной стороны, тут тоже только плюсы:

  • ИИ снижает влияние человеческих усталости и небрежности.
  • Точнее сравнивает версии интерфейса или результатов тестов.
  • Не пропускает мелких закономерностей и возможностей для ошибки.

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

3. Прогнозирует риски и предвидит ошибки 

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

Но это будут только предположения — как и у человека. Поэтому полезно эти гипотезы изучать, а внедрять в дело только после анализа.

Полезный блок со скидкой

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

Бесплатные курсы в Практикуме тоже есть — по всем специальностям и направлениям, начать можно в любой момент, карту привязывать не нужно, если что.

Сферы применения ИИ в тестировании

Вот несколько примеров, что именно даёт автоматизация QA.

1. Генерирует тестовые данные и сценарии

Без ИИ тестировщик придумывает сценарии сам: «Что может сделать пользователь в этом месте? Что произойдёт, если в форму ввести имейл длиной 1000 символов? Что будет, если закрыть приложение и открыть снова?»

Генерация тестов из головы может быть долгой и сложной. ML-модель проанализирует интерфейс, логи, код и примеры поведения пользователей — и сама предложит варианты тестов. В этом направлении модели показывают хорошие результаты, например могут найти сценарии, которые не заметил QA.

2. Ищет UI-аномалии

Искусственный интеллект умеет быстро находить визуальные проблемы: пропавшие иконки, закрытие одного элемента другим, расхождения в вёрстке на разных экранах. Если в приложении для ноутбуков и настольных мониторов всё в порядке, а на телефоне элементы слиплись или разъехались, модель это увидит.

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

3. Проводит регрессионное тестирование автономно и анализирует последствия изменений кода

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

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

Популярные инструменты и платформы для AI-тестирования

В большинстве случаев платформы AI-тестирования работают так: тестировщики и разработчики готовят тесты (да, можно тоже с помощью ИИ) и подключают сервис. Система тестирования становится частью системы компании, запускает сценарии, собирает ответы от программного интерфейса приложения, делает скриншоты и анализирует результаты всего исследования.

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

Обзор некоторых решений для автономного тестирования

Mabl — одна из программ-лидеров на сегодня. Запускает тесты, корректирует их, анализирует выводы, делает визуальные отчёты и находит взаимосвязанные изменения в системе. Визуальный интерфейс важен при анализе тестирования, потому что сразу видно провалы в тестах и другие важные показатели.

ИИ не спит и не ест: как нейронка помогает тестировщикам
Источник: mabl.com

Testim — кросс-браузерный инструмент для автоматизации UI- и API-тестов. Тесты можно записывать через браузерное расширение, а команде в теории не нужно знание кода. 

На самом деле без специалистов-разработчиков тестирование и исправление системы провести сложно, но на небольших проектах возможно.

Ещё у проекта хорошая поддержка и подробная документация:

ИИ не спит и не ест: как нейронка помогает тестировщикам
Источник: help.testim.io

Applitools — платформа визуального тестирования. Сравнивает скриншоты интерфейсов и находит визуальные баги. Работает в разных браузерах, на разных устройствах и масштабах, умеет интегрироваться с другими инструментами.

ИИ не спит и не ест: как нейронка помогает тестировщикам

Инструменты для «умного» анализа производительности и безопасности

Эти ML-системы для поиска аномалий, прогнозирования перегрузок, выявления узких мест и автоматического анализа результатов нагрузочного тестирования. Получается один из плюсов внедрения ИИ: прогнозирование.

Пример — Dynatrace, мощная платформа для анализа производительности, поиска аномалий, ошибок, их причин и взаимосвязей разных компонентов. 

У платформы серьёзный набор функций, которые удобно представлены визуально:

ИИ не спит и не ест: как нейронка помогает тестировщикам
Источник: youtube.com

Судя по главной странице и рекламе, дела у компании идут неплохо:

ИИ не спит и не ест: как нейронка помогает тестировщикам
Источник: darktrace.com

Внедрение AI в тестирование: с чего начать

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

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

Пошаговый план для тест-менеджера

Сначала нужно ответить на вопрос, где тестирование тормозит. На какие этапы уходит больше всего времени? Когда плохо получается выявлять ошибки? Что говорят сами тестировщики? 

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

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

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

Какие команды и компетенции потребуются для работы с AI

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

Для внедрения и успешного использования нужно несколько типов специалистов.

QA-инженеры, которые умеют работать с ML-моделями, настраивать их под разные сценарии и проверять работу.

Разработчики, которые могут внедрить AI-тестирование в CI/CD-процесс, подготовить данные для обучения искусственного интеллекта и обеспечить стабильное надёжное окружение для тестов.

ML-специалист, который займётся выбором и обучением подходящей модели.

Аналитик или менеджер, который сможет посмотреть на результаты работы всей этой системы и сказать, сколько получается плюсов и минусов.

Ограничения и будущее AI-тестирования

Возможности ИИ-тестирования мы рассмотрели. Теперь попробуем понять ограничения и перспективы этих инструментов.

Какие задачи пока не под силу ИИ?

Машина не может сделать многие вещи, для которых нужно быть человеком.

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

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

Сделать точные выводы, которые не нуждаются в проверке. Пока что все заключения искусственного интеллекта требуют контроля.

Поэтому можно сказать, что ещё долгое время для AI-тестирования будет нужен опытный специалист для присмотра за искусственным интеллектом и направления его работы в нужном направлении.

Тренды и перспективы: что ждёт рынок в ближайшие 2–3 года

Предсказать что-то конкретное мы не можем, но предположить — можем.

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

Одновременно уже сейчас видно, что без AI-тестирования работать сложнее: как минимум нейросети и другие модели машинного обучения могут взять на себя рутинные обязанности и выполнять роль начинающего тестировщика. Поэтому можно сказать, что машины могут стать обеспечением роста для бизнеса.

Ещё ясно, что AI-test-программы автоматизации тестирования пользуются спросом и тоже растут. А значит, становятся лучше и полезнее.

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

Ищете первую работу в IT? Не теряйтесь в откликах!

Карьерный навигатор Яндекс Практикума:
• Проанализирует ваше резюме
• Построит персональный маршрут
• Подготовит к собеседованиям
• А с января подберёт вакансии

Бесплатно до 15 января!


Вам может быть интересно
easy