Какой-то из этих инструментов или их сочетание может улучшить жизнь тестировщика, сделав его тесты более надежными, эффективными, стабильными.
Модульное тестирование
Язык: Java
Описание: AI-инструмент, автоматически генерирующий модульные тесты Java-кода. Используется symbolic reasoning и машинное обучение, чтобы «понять» поведение кода и создать соответствующие тесты.
2. Randoop:
Язык: Java
Описание: инструмент автоматического создания модульных тестов для Java. Генерирует тесты, создающие рендомные последовательности вызовов методов, таким образом обнаруживает и тестирует различные пути в коде.
3. Evosuite:
Язык: Java
Описание: инструмент, использующий «генетические» алгоритмы автоматической генерации JUnit-тестов. Нацелен на максимальное покрытие кода и может быть интегрирован в процессы сборки.
4. GitHub Copilot:
Язык: Множество (поддерживает все реально используемые языки типа Python, JavaScript и т. д.)
Описание: GitHub Copilot — инструмент завершения/дополнения кода на основе искусственного интеллекта, который вполне реально помогает писать код, включая и тестовый. Он не особо ориентирован на юнит-тесты, но может помочь в тестировании повторяющихся частей кода, включая тест-кейсы.
Язык: .NET
Описание: Клиентская библиотека Azure OpenAI для .NET — адаптация REST API OpenAI, предоставляет идиоматический интерфейс и хорошую интеграцию в экосистеме Azure SDK. Может подключаться как к ресурсам Azure OpenAI, так и к другим эндпойнтам.
Функциональное тестирование
Этот сегмент ИИ-рынка довольно широкий.
1. Testim:
Описание: Платформа, использует машинное обучение для создания и поддержки функциональных тестов. Позволяет создавать тест-кейсы codeless-автоматизацией и поддерживает практики непрерывного тестирования.
Фичи: Codeless-автоматизация тестирования, создание тестов на основе ML-обучения, самовосстанавливающиеся (self-healing) тесты.
2. Functionize:
Описание: Использует адаптивную обработку языка (ALP) для автоматизации функционального тестирования. Динамически генерирует и поддерживает тест-кейсы, адаптируясь к изменениям в приложении.
Фичи: Динамическая генерация тест-кейсов, само-восстановление упавших тестов, поддержка веб- и мобильных приложений.
3. mabl:
Описание: Интеллектуальная тест-платформа, использующая машинное обучение для автоматизации функциональных тестов. Нацелена на быстрое создание и поддержку тестов, адаптируясь к изменениям в приложении.
Фичи: Автономное создание тестов, самовосстановление, непрерывное тестирование.
4. Applitools:
Описание: Специализируется на визуальном тестировании, обеспечивая визуальную верификацию веб- и мобильных приложений. Использует искусственный интеллект для обнаружения визуальных различий.
Фичи: Визуальное тестирование, визуальная ML-проверка.
5. Accelq:
Описание: Инструмент AI-тестирования, автоматизирующий написание и планирование тестов, а также их выполнение. Подходит для тестирования пользовательского интерфейса, мобильных устройств, API и десктопных программ, покрывая всю сферу QA.
Фичи: Возможность автоматизированной генерации тестов, интуитивно понятная панель управления, функции предиктивного анализа и управления тестами на протяжении жизненного цикла, API и мониторинг тестов.
6. Sauce Labs:
Описание: Предоставляет облачную платформу тестирования, поддерживающую функциональное тестирование веб- и мобильных приложений. Тестирование на реальных устройствах и параллельное выполнение.
Фичи: Low Code тесты на основе искусственного интеллекта.
Описание: Самый применяемый в QA инструмент с открытым исходным кодом может сочетаться с ИИ плагинами и фреймворками для «совершенствования» функционального тестирования. ИИ можно использовать, например, для «смарт-локаторов» элементов, самовосстанавливающихся тестов и т. д.
Фичи: Тестирование в Selenium как обычно, но с поддержкой искусственного интеллекта, что иногда существенно упрощает задачи.
Примеры: testRigor, Parasoft Selenic, Healenium.
Нагрузочное тестирование
1. LoadRunner (Micro Focus):
Описание: Широко используемый инструмент тестирования производительности, возможности ИИ для анализа и корреляции данных о производительности. Использует машинное обучение для прогнозирования и выявления потенциальных проблем.
2. NeoLoad (Neotys):
Описание: Инструмент тестирования производительности, использующий ИИ для автоматической корректировки тестовых сценариев на основе ML-аналитики в режиме реального времени. Адаптируется к изменениям поведения пользователей и кода приложения во время тестирования.
3. BlazeMeter (CA Continuous Testing):
Описание: Решение для тестирования производительности с ИИ-аналитикой. Использует ML-обучение для получения информации о результатах тестирования и предлагает рекомендации по оптимизации производительности приложений.
4. AppDynamics (Cisco):
Описание: AppDynamics, вероятно, самая применяемая в мире платформа мониторинга производительности приложений, использующая ИИ для анализа данных о производительности приложений. Это помогает выявлять проблемы с производительностью и оптимизировать приложения в режиме реального времени.
5. Dynatrace:
Описание: Инструмент мониторинга производительности, использующий ИИ для автоматического анализа проблем. Помогает проследить влияние проблем с производительностью и проактивно оптимизировать приложения.
6. SmartMeter.io:
Описание: Инструмент тестирования производительности с открытым кодом, использующий машинное обучение для автоматической корректировки тестовых сценариев на основе аналитики в реальном времени. Поддерживает создание сценариев и выполнение тестов производительности.
7. RadView:
Описание: Интегрированный искусственный интеллект, предиктивная аналитика сценариев тестирования производительности. Может повысить точность и эффективность тестов.
Инструменты тестирования безопасности
1. Fortify (Micro Focus):
Описание: Комплексный пакет тестирования безопасности приложений, включающий статическое тестирование безопасности приложений (SAST) и динамическое (DAST). Машинное обучение повышает точность обнаружения уязвимостей.
Описание: Использует ИИ для встраивания тестирования безопасности непосредственно в процесс разработки. Выявляет уязвимости, в том числе в библиотеках с открытым кодом, и предоставляет разработчикам фидбек в режиме реального времени.
3. WhiteHat Security (NNT):
Описание: ИИ-решения для тестирования безопасности. Сочетают в себе методики статического и динамического тестирования для выявления уязвимостей и оценки общего уровня безопасности веб-приложений.
4. Checkmarx:
Описание: Платформа тестирования безопасности, включающая статическое, динамическое и интерактивное тестирование. Использует искусственный интеллект и машинное обучение для выявления уязвимостей и определения приоритетности, предоставляет подсказки.
5. Veracode:
Описание: Облачная платформа, использующая ML для анализа и определения приоритетности уязвимостей. Статическое, динамическое тестирование и software composition analysis (SCA).
6. Rapid7 (AppSpider):
Описание: Инструмент динамического тестирования безопасности (DAST), который использует ИИ для автоматического выявления уязвимостей в веб-приложениях. Позволяет выявить потенциальные угрозы и слабые места.
Описание: Инструмент статического тестирования (SAST), который использует анализ на основе ИИ для выявления и определения приоритетности критических уязвимостей в исходном коде в процессе разработки.
8. Appknox:
Описание: Платформа тестирования безопасности мобильных приложений, использующая ИИ для выявления и устранения уязвимостей в мобильных приложениях. Обеспечивает автоматизированное сканирование, дает подсказки разработчикам.
Инструменты генерации тестовых данных
1. Java Faker
Описание: Библиотека является портом Ruby’s faker gem (а также библиотеки Perl’ Data::Faker) для генерации тестовых данных. Полезна при разработке нового проекта, когда нужны красивые данные для демонстрации.
АПДЕЙТ: aldx пишет, «Java Faker уже давно не поддерживается, но у него есть живой форк Datafaker.«
Ок, Datafaker — ссылка. Обзор на Хабре здесь.
2. MockNeat
Описание: Библиотека генерации реалистично выглядящих рендомных данных. Генерирует имена, адреса, имейлы и подобное.