ПЛАН МЕРОПРИЯТИЙ

ИЮНЬ  ИЮЛЬ АВГУСТ  

Конференции 

  Олимпиады  

    Конкурсы    

 Публикации  

Хусаинова Э.Р. Автоматизация тестирования с использованием инструментов искусственного интеллекта // Science Time. 2023. № 7(114). С. 33-40.

Статья: Хусаинова Э.Р. 2023-07.pdf

Полный выпуск: Science Time. Выпуск № 7 (2023).pdf




АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ

ИНСТРУМЕНТОВ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА

 

Хусаинова Эльвира Робертовна,

инженер по автоматизации тестирования,

Deutsche Telekom ITTC, Венгрия, г. Будапешт

 

E-mail: elechka.de@gmail.com 

 

Аннотация. В статье рассматриваются возможности и перспективы применения инструментов искусственного интеллекта (ИИ) в автоматизации тестирования программного обеспечения. Проведен комплексный анализ архитектурных, методологических и практических аспектов внедрения ИИ в процессы обеспечения качества, включая CI/CD-конвейеры. Отмечены ключевые подходы, применяемые на различных уровнях тестирования. Рассматриваются проблемы интерпретируемости ИИ-решений, подготовки обучающих выборок, а также вопросы этической обработки пользовательских данных. Делается вывод о необходимости комплексного внедрения DataOps и XAI-подходов для устойчивого развития интеллектуального тестирования.

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

 

Актуальность исследования

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

Внедрение искусственного интеллекта (ИИ) в процессы автоматизации тестирования открывает новые возможности для повышения эффективности и точности тестирования. ИИ способен анализировать большие объемы данных, предсказывать потенциальные дефекты и автоматически адаптировать тестовые сценарии к изменениям в программном обеспечении. Такие возможности особенно актуальны в условиях Agile и DevOps-подходов, где требуется быстрая и непрерывная интеграция и доставка программных продуктов.

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

Цель исследования

Целью данного исследования является анализ возможностей и перспектив использования инструментов искусственного интеллекта в автоматизации тестирования программного обеспечения.

Материалы и методы исследования

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

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

Результаты исследования

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

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

В условиях внедрения методологий DevOps и Agile возрастает потребность в непрерывной интеграции и доставке программного продукта (CI/CD), что требует автоматизации процессов тестирования. Однако традиционные средства автоматизации, такие как Selenium, Appium и TestNG, хотя и повышают производительность тестирования, зачастую оказываются недостаточными для адаптивного и интеллектуального анализа поведения системы. Именно в этом контексте актуализируется применение инструментов искусственного интеллекта (ИИ) в автоматизации тестирования.

Определение понятия искусственного интеллекта во многих источниках сводится к тому, что искусственный интеллект (ИИ) – это способность технического устройства или робота, управляемого компьютерной системой, выполнять задачи, подлежащие решению рациональным человеческим интеллектом. Такие устройства или системы должны обладать свойствами, характерными для человеческого разума [1, с. 50].

Уже в 2017 г., благодаря опросам, проведённым Dell Technologies и institute for the Future, выяснилось, что примерно 1% всех компаний использует у себя искусственный интеллект. После проведения анкетирования директоров крупных компаний было установлено, что увеличилось число применяемых преимуществ искусственного интеллекта, а именно – почти 37% предприятий задействуют его преимущества. Вполне логично видеть показатель в 90% респондентов, которые заявляют об использовании искусственного интеллекта у себя к 2022 г., согласно опросу Cognilytica [2, с. 60].

ИИ в области тестирования ПО включает в себя использование алгоритмов машинного обучения (ML), обработки естественного языка (NLP), логического вывода и анализа поведения пользователей для создания, адаптации и оптимизации тестовых сценариев. В отличие от традиционной автоматизации, ИИ способен выявлять закономерности в коде, анализировать логи, предсказывать уязвимости и самостоятельно формировать новые тест-кейсы.

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

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

Практические преимущества ИИ включают:

1. Скорость. В среднем время прохождения полного тест-ранна сокращается на 40-60%;

2. Адаптивность. Self-healing тесты автоматически адаптируются к изменившейся верстке;

3. Покрытие. AI-инструменты способны генерировать сценарии, охватывающие до 90% пользовательских маршрутов.

Искусственный интеллект – это не система, но он реализован в системе. Вообще говоря, это обобщающий термин, используемый для отрасли компьютерных наук. Он означает способность приобретать и применять знания, а также действовать естественно, как человек. Например, планирование, решение проблем и рассуждение [5, с. 29].

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

В таблице 1 представлены сравнительные характеристики традиционной автоматизации и ИИ-автоматизации.

 

Таблица 1

Сравнительные характеристики

традиционной автоматизации и ИИ-автоматизации

Критерий

Традиционная автоматизация

Автоматизация с использованием ИИ

Создание тестов

Требует ручного написания скриптов с использованием языков программирования и фреймворков (например, Selenium, JUnit)

Автоматическая генерация тест-кейсов на основе анализа требований, пользовательских историй и исторических данных

Обслуживание тестов

Высокие затраты на поддержку: любые изменения в интерфейсе или логике приложения требуют ручного обновления тестов

Самовосстанавливающиеся тесты: ИИ автоматически адаптирует тесты к изменениям в приложении, снижая необходимость в ручном вмешательстве

Гибкость и адаптивность

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

Высокая адаптивность: ИИ способен обучаться на основе новых данных и адаптировать тесты к изменениям в приложении

Обнаружение дефектов

Основано на заранее определенных сценариях; может не выявлять неожиданные ошибки или аномалии

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

Требования к ресурсам

Требует усилий QA-инженеров для написания и поддержки тестов

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

Скорость выполнения

Зависит от объема тестов и может быть ограничена из-за необходимости ручного вмешательства при изменениях

Более высокая скорость за счет параллельного выполнения тестов и автоматической адаптации к изменениям

Затраты на внедрение

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

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

 

Применение ИИ-инструментов требует перестройки не только технической инфраструктуры, но и подходов к построению процессов тестирования, включая DataOps, ML Ops и TestOps парадигмы.

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

Рисунок ниже отражает динамику роста внедрения ИИ в автоматизацию тестирования на протяжении последних лет (по данным аналитики Deloitte и DevOps Institute).

 

Рис. 1 Рост применения ИИ в автоматизации тестирования

 

Кроме архитектурных аспектов, в фокусе внимания исследователей находятся и метрики оценки эффективности ИИ в тестировании. Стандартные показатели дополняются новыми метриками:

1. Defect Detection Rate (DDR) – метрика, которая показывает, насколько эффективно искусственный интеллект выявляет ошибки или проблемы в программном обеспечении во время автоматизированного тестирования.

2. Test Scenario Diversity Score (TSDS) – степень уникальности сгенерированных тестов.

3. Self-healing Effectiveness Ratio (SHER) – коэффициент успешного автоматического восстановления тестов после изменений в коде.

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

Отдельно стоит отметить практику объединения ИИ с RPA (Robotic Process Automation), что позволяет автоматизировать не только тестирование, но и процессы управления дефектами, логирования и составления отчётности. Примером может служить связка UiPath с AI Builder от Microsoft, применяемая в крупных корпоративных системах для автоматизации end-to-end процессов тестирования.

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

Подход к внедрению ИИ-инструментов на каждом из уровней отличается как по архитектуре, так и по целям.

ИИ в тестировании программного обеспечения использует следующие ключевые типы моделей:

1. Supervised learning – обучение с учителем применяется в задачах предсказания дефектов. Например, модели классификации (Logistic Regression, Random Forest, XGBoost) обучаются на метках багов в истории проекта и могут оценивать вероятность дефекта для новых компонентов.

2. Unsupervised learning – используется для кластеризации сценариев использования и выявления аномального поведения пользователя. Такие модели применяются в динамическом тестировании, например, для автоматического выделения edge-case сценариев.

3. Reinforcement learning – перспективный подход, при котором агент обучается генерировать эффективные тест-кейсы, максимизируя покрытие или количество найденных багов. Эта техника применяется в исследовательских проектах, таких как DeepTest от IBM Research.

4. Natural Language Processing (NLP) – используется в генерации тест-кейсов из требований, описанных на естественном языке. Например, система может распознать фразу «пользователь должен получить письмо с подтверждением» и автоматически построить проверку этого поведения.

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

 

Таблица 2

ИИ на разных уровнях тестирования

Уровень тестирования

Роль ИИ

Примеры применения

Unit tests

Выявление функций без тестов, генерация на основе AST

Diffblue Cover (анализ Java-кода)

Integration tests

Анализ API-взаимодействий, генерация контрактов

RESTler от Microsoft (автоматическое API fuzzing)

System tests

Генерация пользовательских сценариев на основе логов

Functionize, Mabl

Acceptance tests

Преобразование требований в тест-кейсы с использованием NLP

Gherkin-based генераторы

 

Современные средства в сфере информационных технологий позволяют активизировать и развить точность использования интеллектуальной составляющей профессиональных алгоритмов [3, с. 280].

Тестовые оркестрации с участием ИИ перестают быть «инструментами поддержки» и превращаются в полноценные модули в CI/CD-цепочках. Типовая архитектура включает следующие уровни:

– слой наблюдаемости – сбор логов, трассировок, метрик;

– слой хранилищ – централизованное хранилище исторических данных о тестировании;

– слой обработки данных – предобработка и фиче-инжиниринг для обучения моделей;

Inference Layer – применение уже обученных моделей в реальном времени (например, при каждом новом коммите в Git);

– Orchestration Engine принятие решений о запуске и приоритизации тестов.

В современных компаниях практикуется использование Kubernetes-платформ для разворачивания микросервисной архитектуры тестирования с отдельными сервисами:

– API-сервис предсказаний (в контейнере с моделью);

– сервис очередей;

– сервис дашбордов;

– MLflow-сервер для управления экспериментами.

Одной из ключевых проблем внедрения ИИ в CI/CD является подготовка валидных и этически допустимых наборов данных для обучения моделей. Здесь вступает в силу методология DataOps, заимствованная из практик Data Science. Она предполагает:

– версионирование тестовых данных (через DVC, DeltaLake);

– деперсонализацию и анонимизацию логов пользователей (важно для GDPR);

– генерацию synthetic data для редких сценариев (например, edge-case UI-потоков).

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

Компании, такие как Tonic.ai и Mostly AI, специализируются на генерации синтетических данных, которые близки к реальным по структуре и статистическим свойствам, но не содержат конфиденциальной личной информации.

Некоторые преимущества использования синтетических данных в тестировании:

1. Устранение рисков, связанных с конфиденциальностью. Использование реальных данных для тестирования может привести к раскрытию конфиденциальной информации пользователей.

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

3. Масштабируемость. Синтетические данные позволяют создавать разнообразные сценарии, которые могут возникнуть в будущем, что позволяет приложению адаптироваться к новым требованиям.

Выводы

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

Несмотря на высокие технологические возможности, повсеместное внедрение ИИ сталкивается с рядом ограничений: от высокой стоимости внедрения и нехватки квалифицированных специалистов до проблем интерпретируемости моделей и необходимости соблюдения стандартов конфиденциальности. Эти вызовы требуют внедрения explainable AI-подходов, прозрачных стратегий управления данными и адаптации процессов тестирования к новым парадигмам DevTestOps.

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

 

Литература:

 

1. Ефимова С.А. Развитие искусственного интеллекта // Цифровая наука. – 2020. – № 6. – С. 49-58.

2. Журавлев И.А., Кузнецов А.А. // Переход на искусственный интеллект и его влияние на сотрудников компании / Наука и бизнес: пути развития. – 2021. – № 1(115). – С. 60-63.

3. Масюк Н.Н., Васюкова Л.К., Бушуева М.А., Диденко П.С. Нейроные сети как прорывная цифровая технология в инновационном бизнесе // Азимут научных исследований: экономика и управление. – 2019. – Т. 8, № 4(29). – С. 279-283. – DOI 10.26140/anie-2019-0804-0062.

4. Тулфоров Д.М. Внедрение искусственного интеллекта в тестирование программного обеспечение // Наука третьего тысячелетия: материалы Международной (заочной) научно-практической конференции. – 2020. – С. 184-189.

5. Чомаев Ш.У.А. Искусственный интеллект: понятие, задачи области применения // Актуальные исследования. – 2021. – № 30(57). – С. 28-30.